77 txs
103 calls
constructor
constructor(address _factory, address _WETH, address _stataFactory)
functions
factory
viewfunction factory() view returns (address)
stataFactory
viewfunction stataFactory() view returns (address)
WETH
viewfunction WETH() view returns (address)
addStataLiquidity
nonpayablefunction addStataLiquidity(address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB, uint256 liquidity)
addStataLiquidityAToken
nonpayablefunction addStataLiquidityAToken(address aToken, address token, uint256 amountATokenDesired, uint256 amountTokenDesired, uint256 amountATokenMin, uint256 amountTokenMin, address to, uint256 deadline) returns (uint256 amountAToken, uint256 amountToken, uint256 liquidity)
addStataLiquidityATokenETH
payablefunction addStataLiquidityATokenETH(address aToken, uint256 amountATokenDesired, uint256 amountATokenMin, uint256 amountETHMin, address to, uint256 deadline) payable returns (uint256 amountAToken, uint256 amountETH, uint256 liquidity)
addStataLiquidityATokens
nonpayablefunction addStataLiquidityATokens(address aTokenA, address aTokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB, uint256 liquidity)
addStataLiquidityETH
payablefunction addStataLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity)
addStataTokenLiquidity
nonpayablefunction addStataTokenLiquidity(address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB, uint256 liquidity)
addStataTokenLiquidityAToken
nonpayablefunction addStataTokenLiquidityAToken(address aToken, address token, uint256 amountATokenDesired, uint256 amountTokenDesired, uint256 amountATokenMin, uint256 amountTokenMin, address to, uint256 deadline) returns (uint256 amountAToken, uint256 amountToken, uint256 liquidity)
addStataTokenLiquidityATokenETH
payablefunction addStataTokenLiquidityATokenETH(address aToken, uint256 amountATokenDesired, uint256 amountATokenMin, uint256 amountETHMin, address to, uint256 deadline) payable returns (uint256 amountAToken, uint256 amountETH, uint256 liquidity)
addStataTokenLiquidityETH
payablefunction addStataTokenLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity)
addStataWETHLiquidity
payablefunction addStataWETHLiquidity(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity)
approveMax
nonpayablefunction approveMax(address[] underlyingTokens)
emergencyEtherTransfer
nonpayablefunction emergencyEtherTransfer(address to, uint256 amount)
emergencyTokenTransfer
nonpayablefunction emergencyTokenTransfer(address token, address to, uint256 amount)
removeStataLiquidity
nonpayablefunction removeStataLiquidity(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB)
removeStataLiquidityAToken
nonpayablefunction removeStataLiquidityAToken(address aToken, address token, uint256 liquidity, uint256 amountATokenMin, uint256 amountTokenMin, address to, uint256 deadline) returns (uint256 amountAToken, uint256 amountToken)
removeStataLiquidityATokenETH
nonpayablefunction removeStataLiquidityATokenETH(address aToken, uint256 liquidity, uint256 amountATokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountAToken, uint256 amountETH)
removeStataLiquidityATokens
nonpayablefunction removeStataLiquidityATokens(address aTokenA, address aTokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB)
removeStataLiquidityETH
nonpayablefunction removeStataLiquidityETH(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountToken, uint256 amountETH)
removeStataTokenLiquidity
nonpayablefunction removeStataTokenLiquidity(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB)
removeStataTokenLiquidityAToken
nonpayablefunction removeStataTokenLiquidityAToken(address aToken, address token, uint256 liquidity, uint256 amountATokenMin, uint256 amountTokenMin, address to, uint256 deadline) returns (uint256 amountAToken, uint256 amountToken)
removeStataTokenLiquidityATokenETH
nonpayablefunction removeStataTokenLiquidityATokenETH(address aToken, uint256 liquidity, uint256 amountATokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountAToken, uint256 amountETH)
removeStataTokenLiquidityETH
nonpayablefunction removeStataTokenLiquidityETH(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountToken, uint256 amountETH)
removeStataWETHLiquidity
nonpayablefunction removeStataWETHLiquidity(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountToken, uint256 amountETH)
events
No events.
errors
No errors.
creation bytecode
0x60e06040523480156200001157600080fd5b5060405162005c7338038062005c7383398101604081905262000034916200005c565b6001600160601b0319606093841b811660805291831b821660a05290911b1660c052620000c8565b60008060006060848603121562000071578283fd5b83516200007e81620000af565b60208501519093506200009181620000af565b6040850151909250620000a481620000af565b809150509250925092565b6001600160a01b0381168114620000c557600080fd5b50565b60805160601c60a05160601c60c05160601c615a176200025c6000398061053d528061097b5280610d4952806110d4528061117452806114325280611542528061181d528061192d5280611b765280611c865280611fdd528061221752806122a252806123df528061246a528061269c52806127ac52806129ad5280612c25528061300a5280613106528061352e52806138de5280613ba75280613cb95280613dc95280613ed25280613fe2528061414b52806141d652806144dd5250806101b5528061056a52806107b55280610dd65280610f2a5280610f5e5280610fe4528061157152806117745280611cb55280611d9252806122d15280612c525280612dbb5280612faa52806136405280613737528061376b52806137f152806139f05280613af85280613c34528061420552806142e252508061077f5280610bb15280610f08528061122a5280611a535280611d5c5280612b745280612e4652806130d65280613715528061409852806142ac528061438a528061451552806145ca528061465d5280614c5f5250615a176000f3fe6080604052600436106101a55760003560e01c8063a3d5b255116100e1578063e3423a0e1161008a578063eca23d9f11610064578063eca23d9f1461048c578063ee22101d146104ac578063eed88b8d146104bf578063fc2472d8146104df576101de565b8063e3423a0e1461042c578063e713a8b61461044c578063ebee36241461046c576101de565b8063c45a0155116100bb578063c45a0155146103e4578063cd317ce3146103f9578063d04ff08514610419576101de565b8063a3d5b25514610382578063ad5c4648146103a2578063bf2b969f146103c4576101de565b806351d03e2b1161014e5780636d4e91d4116101285780636d4e91d414610302578063785f7feb14610322578063830a7b07146103425780639d28690e14610362576101de565b806351d03e2b146102af5780635f7ff7c6146102c257806364a72a50146102e2576101de565b80631ee191501161017f5780631ee1915014610241578063311152fb14610261578063346ee3551461028f576101de565b80630170a886146101e35780630ce4b4461461020e57806316333e9f1461022e576101de565b366101de57336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101dc57fe5b005b600080fd5b6101f66101f1366004615280565b6104f4565b60405161020593929190615997565b60405180910390f35b34801561021a57600080fd5b506101f66102293660046151da565b610951565b6101f661023c366004615280565b610d09565b34801561024d57600080fd5b506101f661025c3660046151da565b6110aa565b34801561026d57600080fd5b5061028161027c366004615280565b61140a565b604051610205929190615989565b34801561029b57600080fd5b506101f66102aa3660046151da565b6117f3565b6101f66102bd366004615280565b611b4c565b3480156102ce57600080fd5b506102816102dd366004615169565b611fb5565b3480156102ee57600080fd5b506102816102fd366004615280565b6121d9565b34801561030e57600080fd5b5061028161031d366004615169565b6123a1565b34801561032e57600080fd5b5061028161033d366004615169565b612674565b34801561034e57600080fd5b506101f661035d3660046151da565b612983565b34801561036e57600080fd5b5061028161037d366004615280565b612be7565b34801561038e57600080fd5b506101dc61039d366004615129565b612e44565b3480156103ae57600080fd5b506103b7612fa8565b60405161020591906154c9565b3480156103d057600080fd5b506102816103df366004615169565b612fcc565b3480156103f057600080fd5b506103b76130d4565b34801561040557600080fd5b506101dc6104143660046152dd565b6130f8565b6101f6610427366004615280565b613504565b34801561043857600080fd5b50610281610447366004615280565b6138b6565b34801561045857600080fd5b50610281610467366004615280565b613b69565b34801561047857600080fd5b50610281610487366004615169565b613c91565b34801561049857600080fd5b506101f66104a73660046151da565b613ea8565b6101f66104ba366004615280565b61410b565b3480156104cb57600080fd5b506101dc6104da366004615255565b614388565b3480156104eb57600080fd5b506103b76144db565b600080600083428110156105235760405162461bcd60e51b815260040161051a906157d0565b60405180910390fd5b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f5890610592907f0000000000000000000000000000000000000000000000000000000000000000906004016154c9565b60206040518083038186803b1580156105aa57600080fd5b505afa1580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e2919061510d565b90506106f4818c836001600160a01b031663ef8b30f7346040518263ffffffff1660e01b8152600401610615919061592f565b60206040518083038186803b15801561062d57600080fd5b505afa158015610641573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066591906153c0565b8d8c6106725760006106ee565b856001600160a01b031663ef8b30f78e6040518263ffffffff1660e01b815260040161069e919061592f565b60206040518083038186803b1580156106b657600080fd5b505afa1580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee91906153c0565b8e6144ff565b60405163b3d7f6b960e01b81529096509094506001600160a01b0382169063b3d7f6b99061072690879060040161592f565b60206040518083038186803b15801561073e57600080fd5b505afa158015610752573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077691906153c0565b935060006107a57f0000000000000000000000000000000000000000000000000000000000000000838e614730565b90506107b38c3383896147a0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505060405163273cd89560e01b81526001600160a01b038616935063273cd895925061085b91508890859060009060019060040161595f565b602060405180830381600087803b15801561087557600080fd5b505af1158015610889573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ad91906153c0565b506040516335313c2160e11b81526001600160a01b03821690636a627842906108da908b906004016154c9565b602060405180830381600087803b1580156108f457600080fd5b505af1158015610908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092c91906153c0565b93508434111561094257610942338634036148a6565b50505096509650969350505050565b600080600083428110156109775760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6040518263ffffffff1660e01b81526004016109c591906154c9565b60206040518083038186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a15919061510d565b9050610b27818d836001600160a01b031663ef8b30f78f6040518263ffffffff1660e01b8152600401610a48919061592f565b60206040518083038186803b158015610a6057600080fd5b505afa158015610a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9891906153c0565b8d8d610aa5576000610b21565b856001600160a01b031663ef8b30f78f6040518263ffffffff1660e01b8152600401610ad1919061592f565b60206040518083038186803b158015610ae957600080fd5b505afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2191906153c0565b8d6144ff565b60405163b3d7f6b960e01b815291965094506001600160a01b0382169063b3d7f6b990610b5890889060040161592f565b60206040518083038186803b158015610b7057600080fd5b505afa158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba891906153c0565b94506000610bd77f0000000000000000000000000000000000000000000000000000000000000000838f614730565b9050610be58e3330896147a0565b610bf18d3383886147a0565b60405163273cd89560e01b81526001600160a01b0383169063273cd89590610c25908990859060009060019060040161595f565b602060405180830381600087803b158015610c3f57600080fd5b505af1158015610c53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7791906153c0565b506040516335313c2160e11b81526001600160a01b03821690636a62784290610ca4908b906004016154c9565b602060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf691906153c0565b9350505050985098509895505050505050565b60008060008342811015610d2f5760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f5890610d7e908e906004016154c9565b60206040518083038186803b158015610d9657600080fd5b505afa158015610daa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dce919061510d565b9050610e7e817f0000000000000000000000000000000000000000000000000000000000000000836001600160a01b031663ef8b30f78e6040518263ffffffff1660e01b8152600401610e21919061592f565b60206040518083038186803b158015610e3957600080fd5b505afa158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7191906153c0565b348d610aa5576000610b21565b60405163b3d7f6b960e01b815291965094506001600160a01b0382169063b3d7f6b990610eaf90889060040161592f565b60206040518083038186803b158015610ec757600080fd5b505afa158015610edb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eff91906153c0565b94506000610f4e7f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000614730565b9050610f5c8c3330896147a0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925061101e91508490899060040161551b565b602060405180830381600087803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611070919061534c565b61107657fe5b60405163273cd89560e01b81526001600160a01b0383169063273cd8959061085b908990859060009060019060040161595f565b600080600083428110156110d05760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6040518263ffffffff1660e01b815260040161111e91906154c9565b60206040518083038186803b15801561113657600080fd5b505afa15801561114a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116e919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6040518263ffffffff1660e01b81526004016111be91906154c9565b60206040518083038186803b1580156111d657600080fd5b505afa1580156111ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120e919061510d565b905061121e8c8c8c8c8686614933565b909650945060006112507f00000000000000000000000000000000000000000000000000000000000000008484614730565b905061125e8f33308a6147a0565b61126a8e3330896147a0565b60405163273cd89560e01b81526001600160a01b0384169063273cd8959061129e908a90859060009060019060040161595f565b602060405180830381600087803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f091906153c0565b5060405163273cd89560e01b81526001600160a01b0383169063273cd89590611325908990859060009060019060040161595f565b602060405180830381600087803b15801561133f57600080fd5b505af1158015611353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137791906153c0565b506040516335313c2160e11b81526001600160a01b03821690636a627842906113a4908c906004016154c9565b602060405180830381600087803b1580156113be57600080fd5b505af11580156113d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f691906153c0565b945050505050985098509895505050505050565b600080824281101561142e5760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588b6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561149857600080fd5b505afa1580156114ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d0919061510d565b6040518263ffffffff1660e01b81526004016114ec91906154c9565b60206040518083038186803b15801561150457600080fd5b505afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f587f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016115ac91906154c9565b60206040518083038186803b1580156115c457600080fd5b505afa1580156115d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fc919061510d565b905061160982828c614c55565b604051632f92828560e21b815291965094506001600160a01b0383169063be4a0a14906116419088908b903090600090600401615938565b6040805180830381600087803b15801561165a57600080fd5b505af115801561166e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169291906153d8565b604051632f92828560e21b81529096506001600160a01b038316915063be4a0a14906116c990879030908190600190600401615938565b6040805180830381600087803b1580156116e257600080fd5b505af11580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a91906153d8565b9450508885101561173d5760405162461bcd60e51b815260040161051a90615534565b8784101561175d5760405162461bcd60e51b815260040161051a90615773565b604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d906117a990879060040161592f565b600060405180830381600087803b1580156117c357600080fd5b505af11580156117d7573d6000803e3d6000fd5b505050506117e587856148a6565b505050965096945050505050565b600080600083428110156118195760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561188357600080fd5b505afa158015611897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bb919061510d565b6040518263ffffffff1660e01b81526004016118d791906154c9565b60206040518083038186803b1580156118ef57600080fd5b505afa158015611903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611927919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561199357600080fd5b505afa1580156119a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119cb919061510d565b6040518263ffffffff1660e01b81526004016119e791906154c9565b60206040518083038186803b1580156119ff57600080fd5b505afa158015611a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a37919061510d565b9050611a478c8c8c8c8686614933565b90965094506000611a797f00000000000000000000000000000000000000000000000000000000000000008484614730565b9050611a878f33308a6147a0565b611a938e3330896147a0565b60405163273cd89560e01b81526001600160a01b0384169063273cd89590611ac6908a908590600090819060040161595f565b602060405180830381600087803b158015611ae057600080fd5b505af1158015611af4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1891906153c0565b5060405163273cd89560e01b81526001600160a01b0383169063273cd895906113259089908590600090819060040161595f565b60008060008342811015611b725760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bdc57600080fd5b505afa158015611bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c14919061510d565b6040518263ffffffff1660e01b8152600401611c3091906154c9565b60206040518083038186803b158015611c4857600080fd5b505afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c80919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f587f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611cf091906154c9565b60206040518083038186803b158015611d0857600080fd5b505afa158015611d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d40919061510d565b9050611d508b348c8c8686614933565b90965094506000611d827f00000000000000000000000000000000000000000000000000000000000000008484614730565b9050611d908d33308a6147a0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b158015611deb57600080fd5b505af1158015611dff573d6000803e3d6000fd5b505060405163273cd89560e01b81526001600160a01b038716935063273cd8959250611e3791508a908590600090819060040161595f565b602060405180830381600087803b158015611e5157600080fd5b505af1158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8991906153c0565b5060405163273cd89560e01b81526001600160a01b0383169063273cd89590611ebe908990859060009060019060040161595f565b602060405180830381600087803b158015611ed857600080fd5b505af1158015611eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1091906153c0565b506040516335313c2160e11b81526001600160a01b03821690636a62784290611f3d908c906004016154c9565b602060405180830381600087803b158015611f5757600080fd5b505af1158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906153c0565b945085341115611fa557611fa5338734036148a6565b5050505096509650969350505050565b6000808242811015611fd95760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561204357600080fd5b505afa158015612057573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207b919061510d565b6040518263ffffffff1660e01b815260040161209791906154c9565b60206040518083038186803b1580156120af57600080fd5b505afa1580156120c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e7919061510d565b90506120f4818b8b614c55565b604051632f92828560e21b815291955093506001600160a01b0382169063be4a0a149061212c9087908a903090600090600401615938565b6040805180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d91906153d8565b945050878410156121a05760405162461bcd60e51b815260040161051a90615534565b868310156121c05760405162461bcd60e51b815260040161051a90615773565b6121cb8a8785614dd1565b505097509795505050505050565b60008082428110156121fd5760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f589061224c908d906004016154c9565b60206040518083038186803b15801561226457600080fd5b505afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229c919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f587f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161230c91906154c9565b60206040518083038186803b15801561232457600080fd5b505afa158015612338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235c919061510d565b905061236982828c614c55565b604051632f92828560e21b815291965094506001600160a01b0383169063be4a0a14906116419088908b903090600190600401615938565b60008082428110156123c55760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f5890612414908e906004016154c9565b60206040518083038186803b15801561242c57600080fd5b505afa158015612440573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612464919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6040518263ffffffff1660e01b81526004016124b491906154c9565b60206040518083038186803b1580156124cc57600080fd5b505afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612504919061510d565b905061251182828c614c55565b604051632f92828560e21b815291965094506001600160a01b0383169063be4a0a14906125499088908b903090600190600401615938565b6040805180830381600087803b15801561256257600080fd5b505af1158015612576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259a91906153d8565b604051632f92828560e21b81529096506001600160a01b038316915063be4a0a14906125d19087908b903090600190600401615938565b6040805180830381600087803b1580156125ea57600080fd5b505af11580156125fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262291906153d8565b945050888510156126455760405162461bcd60e51b815260040161051a90615534565b878410156126655760405162461bcd60e51b815260040161051a90615773565b50505097509795505050505050565b60008082428110156126985760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561270257600080fd5b505afa158015612716573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273a919061510d565b6040518263ffffffff1660e01b815260040161275691906154c9565b60206040518083038186803b15801561276e57600080fd5b505afa158015612782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a6919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561281257600080fd5b505afa158015612826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284a919061510d565b6040518263ffffffff1660e01b815260040161286691906154c9565b60206040518083038186803b15801561287e57600080fd5b505afa158015612892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b6919061510d565b90506128c382828c614c55565b604051632f92828560e21b815291965094506001600160a01b0383169063be4a0a14906128fb9088908b903090600090600401615938565b6040805180830381600087803b15801561291457600080fd5b505af1158015612928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294c91906153d8565b604051632f92828560e21b81529096506001600160a01b038316915063be4a0a14906125d19087908b903090600090600401615938565b600080600083428110156129a95760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1357600080fd5b505afa158015612a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4b919061510d565b6040518263ffffffff1660e01b8152600401612a6791906154c9565b60206040518083038186803b158015612a7f57600080fd5b505afa158015612a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab7919061510d565b9050612aea818d836001600160a01b031663ef8b30f78f6040518263ffffffff1660e01b8152600401610a48919061592f565b60405163b3d7f6b960e01b815291965094506001600160a01b0382169063b3d7f6b990612b1b90889060040161592f565b60206040518083038186803b158015612b3357600080fd5b505afa158015612b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6b91906153c0565b94506000612b9a7f0000000000000000000000000000000000000000000000000000000000000000838f614730565b9050612ba88e3330896147a0565b612bb48d3383886147a0565b60405163273cd89560e01b81526001600160a01b0383169063273cd89590610c259089908590600090819060040161595f565b6000808242811015612c0b5760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f5890612c7a907f0000000000000000000000000000000000000000000000000000000000000000906004016154c9565b60206040518083038186803b158015612c9257600080fd5b505afa158015612ca6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cca919061510d565b9050612cd7818b8b614c55565b604051632f92828560e21b81529095509093506001600160a01b0382169063be4a0a1490612d1090869030908190600190600401615938565b6040805180830381600087803b158015612d2957600080fd5b505af1158015612d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6191906153d8565b93505087841015612d845760405162461bcd60e51b815260040161051a90615534565b86831015612da45760405162461bcd60e51b815260040161051a90615773565b604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90612df090869060040161592f565b600060405180830381600087803b158015612e0a57600080fd5b505af1158015612e1e573d6000803e3d6000fd5b50505050612e2c86846148a6565b612e378a8786614dd1565b5050965096945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663094b74156040518163ffffffff1660e01b815260040160206040518083038186803b158015612e9d57600080fd5b505afa158015612eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed5919061510d565b6001600160a01b0316336001600160a01b031614612f055760405162461bcd60e51b815260040161051a906158f8565b6040516370a0823160e01b81526000906001600160a01b038516906370a0823190612f349030906004016154c9565b60206040518083038186803b158015612f4c57600080fd5b505afa158015612f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f8491906153c0565b9050818111612f935780612f95565b815b9150612fa2848484614dd1565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000808242811015612ff05760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f589061303f908e906004016154c9565b60206040518083038186803b15801561305757600080fd5b505afa15801561306b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308f919061510d565b905061309c818b8b614c55565b604051632f92828560e21b815291955093506001600160a01b0382169063be4a0a149061212c9087908a903090600190600401615938565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805b82811015612fa2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f5885858481811061313f57fe5b905060200201602081019061315491906150ea565b6040518263ffffffff1660e01b815260040161317091906154c9565b60206040518083038186803b15801561318857600080fd5b505afa15801561319c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c0919061510d565b91506001600160a01b038216156134fc578383828181106131dd57fe5b90506020020160208101906131f291906150ea565b6001600160a01b031663095ea7b38360006040518363ffffffff1660e01b815260040161322092919061551b565b602060405180830381600087803b15801561323a57600080fd5b505af115801561324e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613272919061534c565b5083838281811061327f57fe5b905060200201602081019061329491906150ea565b6001600160a01b031663095ea7b3836000196040518363ffffffff1660e01b81526004016132c392919061551b565b602060405180830381600087803b1580156132dd57600080fd5b505af11580156132f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613315919061534c565b50816001600160a01b031663a0c1f15e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561334f57600080fd5b505afa158015613363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613387919061510d565b6001600160a01b031663095ea7b38360006040518363ffffffff1660e01b81526004016133b592919061551b565b602060405180830381600087803b1580156133cf57600080fd5b505af11580156133e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613407919061534c565b50816001600160a01b031663a0c1f15e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561344157600080fd5b505afa158015613455573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613479919061510d565b6001600160a01b031663095ea7b3836000196040518363ffffffff1660e01b81526004016134a892919061551b565b602060405180830381600087803b1580156134c257600080fd5b505af11580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa919061534c565b505b6001016130fc565b6000806000834281101561352a5760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561359457600080fd5b505afa1580156135a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135cc919061510d565b6040518263ffffffff1660e01b81526004016135e891906154c9565b60206040518083038186803b15801561360057600080fd5b505afa158015613614573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613638919061510d565b905061368b817f0000000000000000000000000000000000000000000000000000000000000000836001600160a01b031663ef8b30f78e6040518263ffffffff1660e01b8152600401610e21919061592f565b60405163b3d7f6b960e01b815291965094506001600160a01b0382169063b3d7f6b9906136bc90889060040161592f565b60206040518083038186803b1580156136d457600080fd5b505afa1580156136e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370c91906153c0565b9450600061375b7f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000614730565b90506137698c3330896147a0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b1580156137c457600080fd5b505af11580156137d8573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925061382b91508490899060040161551b565b602060405180830381600087803b15801561384557600080fd5b505af1158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d919061534c565b61388357fe5b60405163273cd89560e01b81526001600160a01b0383169063273cd8959061085b9089908590600090819060040161595f565b60008082428110156138da5760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588b6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561394457600080fd5b505afa158015613958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397c919061510d565b6040518263ffffffff1660e01b815260040161399891906154c9565b60206040518083038186803b1580156139b057600080fd5b505afa1580156139c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e8919061510d565b9050613a15817f00000000000000000000000000000000000000000000000000000000000000008b614c55565b604051632f92828560e21b815291955093506001600160a01b0382169063be4a0a1490613a4d9087908a903090600090600401615938565b6040805180830381600087803b158015613a6657600080fd5b505af1158015613a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9e91906153d8565b94505087841015613ac15760405162461bcd60e51b815260040161051a90615534565b86831015613ae15760405162461bcd60e51b815260040161051a90615773565b604051632e1a7d4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90613b2d90869060040161592f565b600060405180830381600087803b158015613b4757600080fd5b505af1158015613b5b573d6000803e3d6000fd5b50505050612e3786846148a6565b6000808242811015613b8d5760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f5890613bdc908d906004016154c9565b60206040518083038186803b158015613bf457600080fd5b505afa158015613c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2c919061510d565b9050613c59817f00000000000000000000000000000000000000000000000000000000000000008b614c55565b604051632f92828560e21b815291955093506001600160a01b0382169063be4a0a1490613a4d9087908a903090600190600401615938565b6000808242811015613cb55760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015613d1f57600080fd5b505afa158015613d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d57919061510d565b6040518263ffffffff1660e01b8152600401613d7391906154c9565b60206040518083038186803b158015613d8b57600080fd5b505afa158015613d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dc3919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588c6040518263ffffffff1660e01b8152600401613e1391906154c9565b60206040518083038186803b158015613e2b57600080fd5b505afa158015613e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e63919061510d565b9050613e7082828c614c55565b604051632f92828560e21b815291965094506001600160a01b0383169063be4a0a14906125499088908b903090600090600401615938565b60008060008342811015613ece5760405162461bcd60e51b815260040161051a906157d0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6001600160a01b031663b16a19de6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f3857600080fd5b505afa158015613f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f70919061510d565b6040518263ffffffff1660e01b8152600401613f8c91906154c9565b60206040518083038186803b158015613fa457600080fd5b505afa158015613fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fdc919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f588e6040518263ffffffff1660e01b815260040161402c91906154c9565b60206040518083038186803b15801561404457600080fd5b505afa158015614058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061407c919061510d565b905061408c8c8c8c8c8686614933565b909650945060006140be7f00000000000000000000000000000000000000000000000000000000000000008484614730565b90506140cc8f33308a6147a0565b6140d88e3330896147a0565b60405163273cd89560e01b81526001600160a01b0384169063273cd8959061129e908a908590600090819060040161595f565b600080600083428110156141315760405162461bcd60e51b815260040161051a906157d0565b604051631daba1eb60e31b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed5d0f5890614180908e906004016154c9565b60206040518083038186803b15801561419857600080fd5b505afa1580156141ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d0919061510d565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ed5d0f587f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161424091906154c9565b60206040518083038186803b15801561425857600080fd5b505afa15801561426c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614290919061510d565b90506142a08b348c8c8686614933565b909650945060006142d27f00000000000000000000000000000000000000000000000000000000000000008484614730565b90506142e08d33308a6147a0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b15801561433b57600080fd5b505af115801561434f573d6000803e3d6000fd5b505060405163273cd89560e01b81526001600160a01b038716935063273cd8959250611e3791508a90859060009060019060040161595f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663094b74156040518163ffffffff1660e01b815260040160206040518083038186803b1580156143e157600080fd5b505afa1580156143f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614419919061510d565b6001600160a01b0316336001600160a01b0316146144495760405162461bcd60e51b815260040161051a906158f8565b604080516000808252602082019092526001600160a01b0384169083906040516144739190615422565b60006040518083038185875af1925050503d80600081146144b0576040519150601f19603f3d011682016040523d82523d6000602084013e6144b5565b606091505b50509050806144d65760405162461bcd60e51b815260040161051a90615591565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60405163e6a4390560e01b8152600090819081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e6a4390590614554908c908c90600401615501565b60206040518083038186803b15801561456c57600080fd5b505afa158015614580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145a4919061510d565b6001600160a01b03161415614655576040516364e329cb60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c9c6539690614601908b908b90600401615501565b602060405180830381600087803b15801561461b57600080fd5b505af115801561462f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614653919061510d565b505b6000806146837f00000000000000000000000000000000000000000000000000000000000000008b8b614ed4565b91509150816000148015614695575080155b156146a557879350869250612e37565b60006146b2898484614fbb565b90508781116146e657858110156146db5760405162461bcd60e51b815260040161051a90615773565b8894509250826117e5565b60006146f3898486614fbb565b9050898111156146ff57fe5b8781101561471f5760405162461bcd60e51b815260040161051a90615534565b9b979a509698505050505050505050565b600080600061473f8585615023565b915091508582826040516020016147579291906153fb565b6040516020818303038152906040528051906020012060405160200161477e92919061545b565b60408051601f1981840301815291905280516020909101209695505050505050565b60006060856001600160a01b03166323b872dd8686866040516024016147c8939291906154dd565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516148169190615422565b6000604051808303816000865af19150503d8060008114614853576040519150601f19603f3d011682016040523d82523d6000602084013e614858565b606091505b5091509150818015614882575080511580614882575080806020019051810190614882919061534c565b61489e5760405162461bcd60e51b815260040161051a906155ff565b505050505050565b604080516000808252602082019092526001600160a01b0384169083906040516148d09190615422565b60006040518083038185875af1925050503d806000811461490d576040519150601f19603f3d011682016040523d82523d6000602084013e614912565b606091505b50509050806144d65760405162461bcd60e51b815260040161051a9061565c565b600080614b488484866001600160a01b031663ef8b30f78c6040518263ffffffff1660e01b8152600401614967919061592f565b60206040518083038186803b15801561497f57600080fd5b505afa158015614993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149b791906153c0565b60405163ef8b30f760e01b81526001600160a01b0388169063ef8b30f7906149e3908e9060040161592f565b60206040518083038186803b1580156149fb57600080fd5b505afa158015614a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a3391906153c0565b8a614a3f576000614abb565b60405163ef8b30f760e01b81526001600160a01b038a169063ef8b30f790614a6b908e9060040161592f565b60206040518083038186803b158015614a8357600080fd5b505afa158015614a97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614abb91906153c0565b8a614ac7576000614b43565b60405163ef8b30f760e01b81526001600160a01b038a169063ef8b30f790614af3908e9060040161592f565b60206040518083038186803b158015614b0b57600080fd5b505afa158015614b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b4391906153c0565b6144ff565b60405163b3d7f6b960e01b815291935091506001600160a01b0385169063b3d7f6b990614b7990859060040161592f565b60206040518083038186803b158015614b9157600080fd5b505afa158015614ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bc991906153c0565b60405163b3d7f6b960e01b81529092506001600160a01b0384169063b3d7f6b990614bf890849060040161592f565b60206040518083038186803b158015614c1057600080fd5b505afa158015614c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c4891906153c0565b9050965096945050505050565b6000806000614c857f00000000000000000000000000000000000000000000000000000000000000008787614730565b6040516323b872dd60e01b81529091506001600160a01b038216906323b872dd90614cb8903390859089906004016154dd565b602060405180830381600087803b158015614cd257600080fd5b505af1158015614ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d0a919061534c565b50600080826001600160a01b03166389afcb44306040518263ffffffff1660e01b8152600401614d3a91906154c9565b6040805180830381600087803b158015614d5357600080fd5b505af1158015614d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d8b91906153d8565b915091506000614d9b8989615023565b509050806001600160a01b0316896001600160a01b031614614dbe578183614dc1565b82825b909a909950975050505050505050565b60006060846001600160a01b031663a9059cbb8585604051602401614df792919061551b565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051614e459190615422565b6000604051808303816000865af19150503d8060008114614e82576040519150601f19603f3d011682016040523d82523d6000602084013e614e87565b606091505b5091509150818015614eb1575080511580614eb1575080806020019051810190614eb1919061534c565b614ecd5760405162461bcd60e51b815260040161051a90615864565b5050505050565b6000806000614ee38585615023565b509050600080614ef4888888614730565b6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015614f2c57600080fd5b505afa158015614f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f64919061536c565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150826001600160a01b0316876001600160a01b031614614fa9578082614fac565b81815b90999098509650505050505050565b6000808411614fdc5760405162461bcd60e51b815260040161051a90615807565b600083118015614fec5750600082115b6150085760405162461bcd60e51b815260040161051a90615716565b8261501385846150ad565b8161501a57fe5b04949350505050565b600080826001600160a01b0316846001600160a01b031614156150585760405162461bcd60e51b815260040161051a906156b9565b826001600160a01b0316846001600160a01b03161061507857828461507b565b83835b90925090506001600160a01b0382166150a65760405162461bcd60e51b815260040161051a906158c1565b9250929050565b60008115806150c8575050808202828282816150c557fe5b04145b6150e45760405162461bcd60e51b815260040161051a906155c8565b92915050565b6000602082840312156150fb578081fd5b8135615106816159ad565b9392505050565b60006020828403121561511e578081fd5b8151615106816159ad565b60008060006060848603121561513d578182fd5b8335615148816159ad565b92506020840135615158816159ad565b929592945050506040919091013590565b600080600080600080600060e0888a031215615183578283fd5b873561518e816159ad565b9650602088013561519e816159ad565b955060408801359450606088013593506080880135925060a08801356151c3816159ad565b8092505060c0880135905092959891949750929550565b600080600080600080600080610100898b0312156151f6578081fd5b8835615201816159ad565b97506020890135615211816159ad565b965060408901359550606089013594506080890135935060a0890135925060c089013561523d816159ad565b8092505060e089013590509295985092959890939650565b60008060408385031215615267578182fd5b8235615272816159ad565b946020939093013593505050565b60008060008060008060c08789031215615298578182fd5b86356152a3816159ad565b955060208701359450604087013593506060870135925060808701356152c8816159ad565b8092505060a087013590509295509295509295565b600080602083850312156152ef578182fd5b823567ffffffffffffffff80821115615306578384fd5b818501915085601f830112615319578384fd5b813581811115615327578485fd5b866020808302850101111561533a578485fd5b60209290920196919550909350505050565b60006020828403121561535d578081fd5b81518015158114615106578182fd5b600080600060608486031215615380578081fd5b835161538b816159c5565b602085015190935061539c816159c5565b604085015190925063ffffffff811681146153b5578182fd5b809150509250925092565b6000602082840312156153d1578081fd5b5051919050565b600080604083850312156153ea578182fd5b505080516020909101519092909150565b6bffffffffffffffffffffffff19606093841b811682529190921b16601482015260280190565b60008251815b818110156154425760208186018101518583015201615428565b818111156154505782828501525b509190910192915050565b7fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f207e00cb099b76f581c479b9e20c11280ed52e93ab7003d58600ec82fb71b23b603582015260550190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b60208082526029908201527f416b726f6e56325374617461526f757465723a20494e53554646494349454e5460408201527f5f415f414d4f554e540000000000000000000000000000000000000000000000606082015260800190565b60208082526011908201527f4554485f5452414e534645525f4641494c000000000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526031908201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260408201527f616e7366657246726f6d206661696c6564000000000000000000000000000000606082015260800190565b60208082526034908201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60408201527f20455448207472616e73666572206661696c6564000000000000000000000000606082015260800190565b60208082526025908201527f556e697377617056324c6962726172793a204944454e544943414c5f4144445260408201527f4553534553000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60408201527f4951554944495459000000000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f416b726f6e56325374617461526f757465723a20494e53554646494349454e5460408201527f5f425f414d4f554e540000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f416b726f6e5374617461526f757465723a204558504952454400000000000000604082015260600190565b60208082526025908201527f556e697377617056324c6962726172793a20494e53554646494349454e545f4160408201527f4d4f554e54000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602d908201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260408201527f616e73666572206661696c656400000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f556e697377617056324c6962726172793a205a45524f5f414444524553530000604082015260600190565b6020808252601d908201527f416b726f6e56325374617461526f757465723a20464f5242494444454e000000604082015260600190565b90815260200190565b9384526001600160a01b039283166020850152911660408301521515606082015260800190565b9384526001600160a01b0392909216602084015261ffff1660408301521515606082015260800190565b918252602082015260400190565b9283526020830191909152604082015260600190565b6001600160a01b03811681146159c257600080fd5b50565b6dffffffffffffffffffffffffffff811681146159c257600080fdfea2646970667358221220fd5c81aa9417220ffafc85f1f7db9cb46c9f38ab2a86db68ecb549bad7740e6064736f6c634300060c0033000000000000000000000000af39606bec181887951ab6912ac7ea216bd6e4b400000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000411d79b8cc43384fde66cabf9b6a17180c842511