61 txs
61 calls
constructor
constructor(address _factory, address _WETH)
functions
factory
viewfunction factory() view returns (address)
getAmountIn
purefunction getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut, uint32 feeRateNumerator) pure returns (uint256 amountIn)
getAmountOut
purefunction getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut, uint32 feeRateNumerator) pure returns (uint256 amountOut)
getAmountsIn
viewfunction getAmountsIn(uint256 amountOut, address[] path) view returns (uint256[] amounts)
getAmountsOut
viewfunction getAmountsOut(uint256 amountIn, address[] path) view returns (uint256[] amounts)
quote
purefunction quote(uint256 amountA, uint256 reserveA, uint256 reserveB) pure returns (uint256 amountB)
WETH
viewfunction WETH() view returns (address)
addLiquidity
nonpayablefunction addLiquidity(address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB, uint256 liquidity)
addLiquidityETH
payablefunction addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity)
removeLiquidity
nonpayablefunction removeLiquidity(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline) returns (uint256 amountA, uint256 amountB)
removeLiquidityETH
nonpayablefunction removeLiquidityETH(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountToken, uint256 amountETH)
removeLiquidityETHSupportingFeeOnTransferTokens
nonpayablefunction removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) returns (uint256 amountETH)
removeLiquidityETHWithPermit
nonpayablefunction removeLiquidityETHWithPermit(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) returns (uint256 amountToken, uint256 amountETH)
removeLiquidityETHWithPermitSupportingFeeOnTransferTokens
nonpayablefunction removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) returns (uint256 amountETH)
removeLiquidityWithPermit
nonpayablefunction removeLiquidityWithPermit(address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) returns (uint256 amountA, uint256 amountB)
swapETHForExactTokens
payablefunction swapETHForExactTokens(uint256 amountOut, address[] path, address to, uint256 deadline) payable returns (uint256[] amounts)
swapExactETHForTokens
payablefunction swapExactETHForTokens(uint256 amountOutMin, address[] path, address to, uint256 deadline) payable returns (uint256[] amounts)
swapExactETHForTokensSupportingFeeOnTransferTokens
payablefunction swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] path, address to, uint256 deadline) payable
swapExactTokensForETH
nonpayablefunction swapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline) returns (uint256[] amounts)
swapExactTokensForETHSupportingFeeOnTransferTokens
nonpayablefunction swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline)
swapExactTokensForTokens
nonpayablefunction swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline) returns (uint256[] amounts)
swapExactTokensForTokensSupportingFeeOnTransferTokens
nonpayablefunction swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] path, address to, uint256 deadline)
swapTokensForExactETH
nonpayablefunction swapTokensForExactETH(uint256 amountOut, uint256 amountInMax, address[] path, address to, uint256 deadline) returns (uint256[] amounts)
swapTokensForExactTokens
nonpayablefunction swapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] path, address to, uint256 deadline) returns (uint256[] amounts)
events
No events.
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b50604051620059c9380380620059c9833981810160405260408110156200003757600080fd5b5080516020909101516001600160a01b0382166200009c576040805162461bcd60e51b815260206004820152601c60248201527f486f706553776170526f757465723a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b6001600160a01b038116620000f8576040805162461bcd60e51b815260206004820152601c60248201527f486f706553776170526f757465723a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b6001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c61578a6200023f600039806101ac5280610e755280610eb05280610fd8528061129b52806116f552806118f05280611e385280611fbc528061208c5280612193528061234652806123db528061268e528061273d5280612812528061291752806129ff5280612a80528061310f5280613445528061349b52806134cf5280613550528061376a528061391a52806139af5250806110ca52806111c8528061136e52806113a7528061155252806117e752806118ce5280611abb5280612279528061241a52806125b65280612abf5280612e02528061309452806130bd52806130ed52806132ca5280613479528061385052806139ee528061436d52806143b0528061485d5280614ad75280615054528061513552806151b5525061578a6000f3fe60806040526004361061018f5760003560e01c80639cd07615116100d6578063c45a01551161007f578063e8e3370011610059578063e8e3370014610c89578063f305d71914610d16578063fb3bdb4114610d69576101d5565b8063c45a015514610b3d578063d06ca61f14610b52578063ded9382a14610c09576101d5565b8063af2979eb116100b0578063af2979eb146109e0578063b6f9de9514610a40578063baa2abde14610ad3576101d5565b80639cd076151461092a578063ad5c46481461096c578063ad615dec146109aa576101d5565b80635106046411610138578063791ac94711610112578063791ac9471461074d5780637ff36ab5146107f25780638803dbee14610885576101d5565b806351060464146105d45780635b0d5984146106285780635c11d795146106a8576101d5565b80632195995c116101695780632195995c146103ff57806338ed17391461048a5780634a25d94a1461052f576101d5565b806302751cec146101da57806318cbafe5146102535780631f00ca7414610348576101d5565b366101d5573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146101d357fe5b005b600080fd5b3480156101e657600080fd5b5061023a600480360360c08110156101fd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a00135610dfc565b6040805192835260208301919091528051918290030190f35b34801561025f57600080fd5b506102f8600480360360a081101561027657600080fd5b81359160208101359181019060608101604082013564010000000081111561029d57600080fd5b8201836020820111156102af57600080fd5b803590602001918460208302840111640100000000831117156102d157600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f4f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561033457818101518382015260200161031c565b505050509050019250505060405180910390f35b34801561035457600080fd5b506102f86004803603604081101561036b57600080fd5b8135919081019060408101602082013564010000000081111561038d57600080fd5b82018360208201111561039f57600080fd5b803590602001918460208302840111640100000000831117156103c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611367945050505050565b34801561040b57600080fd5b5061023a600480360361016081101561042357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff610100820135169061012081013590610140013561139d565b34801561049657600080fd5b506102f8600480360360a08110156104ad57600080fd5b8135916020810135918101906060810160408201356401000000008111156104d457600080fd5b8201836020820111156104e657600080fd5b8035906020019184602083028401116401000000008311171561050857600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356114db565b34801561053b57600080fd5b506102f8600480360360a081101561055257600080fd5b81359160208101359181019060608101604082013564010000000081111561057957600080fd5b82018360208201111561058b57600080fd5b803590602001918460208302840111640100000000831117156105ad57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561166c565b3480156105e057600080fd5b50610616600480360360808110156105f757600080fd5b508035906020810135906040810135906060013563ffffffff166118af565b60408051918252519081900360200190f35b34801561063457600080fd5b50610616600480360361014081101561064c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356118c6565b3480156106b457600080fd5b506101d3600480360360a08110156106cb57600080fd5b8135916020810135918101906060810160408201356401000000008111156106f257600080fd5b82018360208201111561070457600080fd5b8035906020019184602083028401116401000000008311171561072657600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611a18565b34801561075957600080fd5b506101d3600480360360a081101561077057600080fd5b81359160208101359181019060608101604082013564010000000081111561079757600080fd5b8201836020820111156107a957600080fd5b803590602001918460208302840111640100000000831117156107cb57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff8135169060200135611db1565b6102f86004803603608081101561080857600080fd5b8135919081019060408101602082013564010000000081111561082a57600080fd5b82018360208201111561083c57600080fd5b8035906020019184602083028401116401000000008311171561085e57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561211f565b34801561089157600080fd5b506102f8600480360360a08110156108a857600080fd5b8135916020810135918101906060810160408201356401000000008111156108cf57600080fd5b8201836020820111156108e157600080fd5b8035906020019184602083028401116401000000008311171561090357600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff813516906020013561253f565b34801561093657600080fd5b506106166004803603608081101561094d57600080fd5b508035906020810135906040810135906060013563ffffffff1661267e565b34801561097857600080fd5b5061098161268c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156109b657600080fd5b50610616600480360360608110156109cd57600080fd5b50803590602081013590604001356126b0565b3480156109ec57600080fd5b50610616600480360360c0811015610a0357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356126c5565b6101d360048036036080811015610a5657600080fd5b81359190810190604081016020820135640100000000811115610a7857600080fd5b820183602082011115610a8a57600080fd5b80359060200191846020830284011164010000000083111715610aac57600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356128a5565b348015610adf57600080fd5b5061023a600480360360e0811015610af657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135612d88565b348015610b4957600080fd5b50610981613092565b348015610b5e57600080fd5b506102f860048036036040811015610b7557600080fd5b81359190810190604081016020820135640100000000811115610b9757600080fd5b820183602082011115610ba957600080fd5b80359060200191846020830284011164010000000083111715610bcb57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130b6945050505050565b348015610c1557600080fd5b5061023a6004803603610140811015610c2d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356130e3565b348015610c9557600080fd5b50610cf86004803603610100811015610cad57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e0013561323b565b60408051938452602084019290925282820152519081900360600190f35b610cf8600480360360c0811015610d2c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040820135916060810135916080820135169060a001356133ca565b6102f860048036036080811015610d7f57600080fd5b81359190810190604081016020820135640100000000811115610da157600080fd5b820183602082011115610db357600080fd5b80359060200191846020830284011164010000000083111715610dd557600080fd5b919350915073ffffffffffffffffffffffffffffffffffffffff81351690602001356136f6565b6000808242811015610e6f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b610e9e897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a612d88565b9093509150610eae898685613b45565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b50505050610f438583613d0c565b50965096945050505050565b60608142811015610fc157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061102657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f486f706553776170526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6111237f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e4992505050565b9150868260018451038151811061113657fe5b60200260200101511015611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615565602a913960400191505060405180910390fd5b61125a868660008181106111a557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16336112407f00000000000000000000000000000000000000000000000000000000000000008a8a60008181106111f457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168b8b600181811061121e57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16613fe9565b8560008151811061124d57fe5b60200260200101516140d4565b611299828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506142a4915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836001855103815181106112e557fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b5050505061135c848360018551038151811061134f57fe5b6020026020010151613d0c565b509695505050505050565b60606113947f0000000000000000000000000000000000000000000000000000000000000000848461452b565b90505b92915050565b60008060006113cd7f00000000000000000000000000000000000000000000000000000000000000008f8f613fe9565b90506000876113dc578c6113fe565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561149a57600080fd5b505af11580156114ae573d6000803e3d6000fd5b505050506114c18f8f8f8f8f8f8f612d88565b809450819550505050509b509b9950505050505050505050565b6060814281101561154d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b6115ab7f000000000000000000000000000000000000000000000000000000000000000089888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e4992505050565b915086826001845103815181106115be57fe5b6020026020010151101561161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615565602a913960400191505060405180910390fd5b61162d868660008181106111a557fe5b61135c828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506142a4915050565b606081428110156116de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001686867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810181811061174357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f486f706553776170526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6118407f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061452b92505050565b9150868260008151811061185057fe5b60200260200101511115611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061572f6026913960400191505060405180910390fd5b60006118bd858585856146e6565b95945050505050565b6000806119147f00000000000000000000000000000000000000000000000000000000000000008d7f0000000000000000000000000000000000000000000000000000000000000000613fe9565b9050600086611923578b611945565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c48101879052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b1580156119e157600080fd5b505af11580156119f5573d6000803e3d6000fd5b50505050611a078d8d8d8d8d8d6126c5565b9d9c50505050505050505050505050565b8042811015611a8857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b611b1785856000818110611a9857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1633611b117f000000000000000000000000000000000000000000000000000000000000000089896000818110611ae757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168a8a600181811061121e57fe5b8a6140d4565b600085857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611b4757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611be057600080fd5b505afa158015611bf4573d6000803e3d6000fd5b505050506040513d6020811015611c0a57600080fd5b50516040805160208881028281018201909352888252929350611c4c929091899189918291850190849080828437600092019190915250889250614806915050565b86611d508288887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611c7f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d1857600080fd5b505afa158015611d2c573d6000803e3d6000fd5b505050506040513d6020811015611d4257600080fd5b50519063ffffffff614c3216565b1015611da7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615565602a913960400191505060405180910390fd5b5050505050505050565b8042811015611e2157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110611e8657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f486f706553776170526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b611f3585856000818110611a9857fe5b611f73858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250309250614806915050565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b15801561200357600080fd5b505afa158015612017573d6000803e3d6000fd5b505050506040513d602081101561202d57600080fd5b505190508681101561208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615565602a913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156120fd57600080fd5b505af1158015612111573d6000803e3d6000fd5b50505050611da78482613d0c565b6060814281101561219157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106121d557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461227457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f486f706553776170526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6122d27f000000000000000000000000000000000000000000000000000000000000000034888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613e4992505050565b915086826001845103815181106122e557fe5b60200260200101511015612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615565602a913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061238d57fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156123c057600080fd5b505af11580156123d4573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6124467f000000000000000000000000000000000000000000000000000000000000000089896000818110611ae757fe5b8460008151811061245357fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156124c457600080fd5b505af11580156124d8573d6000803e3d6000fd5b505050506040513d60208110156124ee57600080fd5b50516124f657fe5b612535828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506142a4915050565b5095945050505050565b606081428110156125b157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b61260f7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061452b92505050565b9150868260008151811061261f57fe5b6020026020010151111561161d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061572f6026913960400191505060405180910390fd5b60006118bd85858585614ca4565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006126bd848484614dca565b949350505050565b6000814281101561273757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b612766887f00000000000000000000000000000000000000000000000000000000000000008989893089612d88565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191945061281092508a91879173ffffffffffffffffffffffffffffffffffffffff8416916370a0823191602480820192602092909190829003018186803b1580156127df57600080fd5b505afa1580156127f3573d6000803e3d6000fd5b505050506040513d602081101561280957600080fd5b5051613b45565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561288357600080fd5b505af1158015612897573d6000803e3d6000fd5b5050505061135c8483613d0c565b804281101561291557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168585600081811061295957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f486f706553776170526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b60003490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612a6557600080fd5b505af1158015612a79573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612aeb7f000000000000000000000000000000000000000000000000000000000000000089896000818110611ae757fe5b836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b5557600080fd5b505af1158015612b69573d6000803e3d6000fd5b505050506040513d6020811015612b7f57600080fd5b5051612b8757fe5b600086867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612bb757fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c5057600080fd5b505afa158015612c64573d6000803e3d6000fd5b505050506040513d6020811015612c7a57600080fd5b50516040805160208981028281018201909352898252929350612cbc9290918a918a918291850190849080828437600092019190915250899250614806915050565b87611d508289897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818110612cef57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d1857600080fd5b6000808242811015612dfb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b6000612e287f00000000000000000000000000000000000000000000000000000000000000008c8c613fe9565b604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b158015612ea957600080fd5b505af1158015612ebd573d6000803e3d6000fd5b505050506040513d6020811015612ed357600080fd5b5050604080517f89afcb4400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b158015612f4657600080fd5b505af1158015612f5a573d6000803e3d6000fd5b505050506040513d6040811015612f7057600080fd5b50805160209091015190925090506000612f8a8e8e614eaa565b5090508073ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614612fc7578183612fca565b82825b90975095508a871015613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061570a6025913960400191505060405180910390fd5b89861015613081576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806156436025913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606113947f00000000000000000000000000000000000000000000000000000000000000008484613e49565b60008060006131337f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000613fe9565b9050600087613142578c613164565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b604080517fd505accf00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c48101889052905191925073ffffffffffffffffffffffffffffffffffffffff84169163d505accf9160e48082019260009290919082900301818387803b15801561320057600080fd5b505af1158015613214573d6000803e3d6000fd5b505050506132268e8e8e8e8e8e610dfc565b909f909e509c50505050505050505050505050565b600080600083428110156132b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b6132be8c8c8c8c8c8c614ffd565b909450925060006132f07f00000000000000000000000000000000000000000000000000000000000000008e8e613fe9565b90506132fe8d3383886140d4565b61330a8c3383876140d4565b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561338957600080fd5b505af115801561339d573d6000803e3d6000fd5b505050506040513d60208110156133b357600080fd5b5051949d939c50939a509198505050505050505050565b6000806000834281101561343f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b61346d8a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c614ffd565b909450925060006134bf7f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000613fe9565b90506134cd8b3383886140d4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561353557600080fd5b505af1158015613549573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156135f557600080fd5b505af1158015613609573d6000803e3d6000fd5b505050506040513d602081101561361f57600080fd5b505161362757fe5b8073ffffffffffffffffffffffffffffffffffffffff16636a627842886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156136a657600080fd5b505af11580156136ba573d6000803e3d6000fd5b505050506040513d60208110156136d057600080fd5b50519250348410156136e8576136e833853403613d0c565b505096509650969350505050565b6060814281101561376857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f486f706553776170526f757465723a2045585049524544000000000000000000604482015290519081900360640190fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16868660008181106137ac57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461384b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f486f706553776170526f757465723a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b6138a97f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061452b92505050565b915034826000815181106138b957fe5b60200260200101511115613918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061572f6026913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061396157fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561399457600080fd5b505af11580156139a8573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb613a1a7f000000000000000000000000000000000000000000000000000000000000000089896000818110611ae757fe5b84600081518110613a2757fe5b60200260200101516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613a9857600080fd5b505af1158015613aac573d6000803e3d6000fd5b505050506040513d6020811015613ac257600080fd5b5051613aca57fe5b613b09828787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992506142a4915050565b81600081518110613b1657fe5b6020026020010151341115612535576125353383600081518110613b3657fe5b60200260200101513403613d0c565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b60208310613c1b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613bde565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c7d576040519150601f19603f3d011682016040523d82523d6000602084013e613c82565b606091505b5091509150818015613cb0575080511580613cb05750808060200190516020811015613cad57600080fd5b50515b613d05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061568f602d913960400191505060405180910390fd5b5050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310613d8357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613d46565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613de5576040519150601f19603f3d011682016040523d82523d6000602084013e613dea565b606091505b5050905080613e44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806155eb6034913960400191505060405180910390fd5b505050565b6060600282511015613ebc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f486f7065537761704c6962726172793a20494e56414c49445f50415448000000604482015290519081900360640190fd5b815167ffffffffffffffff81118015613ed457600080fd5b50604051908082528060200260200182016040528015613efe578160200160208202803683370190505b5090508281600081518110613f0f57fe5b60200260200101818152505060005b6001835103811015613fe157600080613f6187868581518110613f3d57fe5b6020026020010151878660010181518110613f5457fe5b60200260200101516152fe565b915091506000613f9b88878681518110613f7757fe5b6020026020010151888760010181518110613f8e57fe5b60200260200101516153e6565b9050613fbc858581518110613fac57fe5b60200260200101518484846146e6565b858560010181518110613fcb57fe5b6020908102919091010152505050600101613f1e565b509392505050565b6000806000613ff88585614eaa565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f0fe0976a8394a59cb43ce8ed266ed3ad7b48c0538114ef1bea17c3f7f4138f2c609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b602083106141b257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614175565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614214576040519150601f19603f3d011682016040523d82523d6000602084013e614219565b606091505b5091509150818015614247575080511580614247575080806020019051602081101561424457600080fd5b50515b61429c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806155ba6031913960400191505060405180910390fd5b505050505050565b60005b6001835103811015614525576000808483815181106142c257fe5b60200260200101518584600101815181106142d957fe5b60200260200101519150915060006142f18383614eaa565b509050600087856001018151811061430557fe5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461434d57826000614351565b6000835b91509150600060028a5103881061436857886143a9565b6143a97f0000000000000000000000000000000000000000000000000000000000000000878c8b6002018151811061439c57fe5b6020026020010151613fe9565b90506143d67f00000000000000000000000000000000000000000000000000000000000000008888613fe9565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f84848460006040519080825280601f01601f191660200182016040528015614420576020820181803683370190505b506040518563ffffffff1660e01b8152600401808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156144ab578181015183820152602001614493565b50505050905090810190601f1680156144d85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156144fa57600080fd5b505af115801561450e573d6000803e3d6000fd5b5050600190990198506142a7975050505050505050565b50505050565b606060028251101561459e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f486f7065537761704c6962726172793a20494e56414c49445f50415448000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156145b657600080fd5b506040519080825280602002602001820160405280156145e0578160200160208202803683370190505b50905082816001835103815181106145f457fe5b602090810291909101015281517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b8015613fe1576000806146548786600186038151811061464057fe5b6020026020010151878681518110613f5457fe5b9150915060006146818887600187038151811061466d57fe5b6020026020010151888781518110613f8e57fe5b90506146a285858151811061469257fe5b6020026020010151848484614ca4565b8560018603815181106146b157fe5b60209081029190910101525050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01614624565b6000808511614740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806156bc602a913960400191505060405180910390fd5b6000841180156147505750600083115b6147a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806156686027913960400191505060405180910390fd5b60006147ba8663ffffffff8086169061546c16565b905060006147ce828663ffffffff61546c16565b905060006147ee836147e28961271061546c565b9063ffffffff6154f216565b90508082816147f957fe5b0498975050505050505050565b60005b6001835103811015613e445760008084838151811061482457fe5b602002602001015185846001018151811061483b57fe5b60200260200101519150915060006148538383614eaa565b50905060006148837f00000000000000000000000000000000000000000000000000000000000000008585613fe9565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156148d157600080fd5b505afa1580156148e5573d6000803e3d6000fd5b505050506040513d60608110156148fb57600080fd5b508051602091820151604080517f3572a47d00000000000000000000000000000000000000000000000000000000815290516dffffffffffffffffffffffffffff938416965092909116935060009273ffffffffffffffffffffffffffffffffffffffff891692633572a47d926004808201939291829003018186803b15801561498457600080fd5b505afa158015614998573d6000803e3d6000fd5b505050506040513d60208110156149ae57600080fd5b5051905060008073ffffffffffffffffffffffffffffffffffffffff8b8116908a16146149dc5783856149df565b84845b91509150614a64828c73ffffffffffffffffffffffffffffffffffffffff166370a082318b6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d1857600080fd5b9650614a72878383866146e6565b955050505050506000808573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614614ab757826000614abb565b6000835b91509150600060028c51038a10614ad2578a614b06565b614b067f0000000000000000000000000000000000000000000000000000000000000000898e8d6002018151811061439c57fe5b60408051600080825260208201928390527f022c0d9f000000000000000000000000000000000000000000000000000000008352602482018781526044830187905273ffffffffffffffffffffffffffffffffffffffff8086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015614bb6578181015183820152602001614b9e565b50505050905090810190601f168015614be35780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015614c0557600080fd5b505af1158015614c19573d6000803e3d6000fd5b50506001909b019a506148099950505050505050505050565b8082038281111561139757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000808511614cfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061558f602b913960400191505060405180910390fd5b600084118015614d0e5750600083115b614d63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806156686027913960400191505060405180910390fd5b6000614d81612710614d75878961546c565b9063ffffffff61546c16565b90506000614da28463ffffffff16614d758988614c3290919063ffffffff16565b9050614dbf6001828481614db257fe5b049063ffffffff6154f216565b979650505050505050565b6000808411614e24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806156e66024913960400191505060405180910390fd5b600083118015614e345750600082115b614e89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806156686027913960400191505060405180910390fd5b82614e9a858463ffffffff61546c16565b81614ea157fe5b04949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614f32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061561f6024913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614f6c578284614f6f565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216614ff657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f486f7065537761704c6962726172793a205a45524f5f41444452455353000000604482015290519081900360640190fd5b9250929050565b604080517fe6a4390500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b15801561509d57600080fd5b505afa1580156150b1573d6000803e3d6000fd5b505050506040513d60208110156150c757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614156151ad57604080517fc9c6539600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b15801561518057600080fd5b505af1158015615194573d6000803e3d6000fd5b505050506040513d60208110156151aa57600080fd5b50505b6000806151db7f00000000000000000000000000000000000000000000000000000000000000008b8b6152fe565b915091508160001480156151ed575080155b156151fd578793508692506152f1565b600061520a898484614dca565b9050878111615277578581101561526c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806156436025913960400191505060405180910390fd5b8894509250826152ef565b6000615284898486614dca565b90508981111561529057fe5b878110156152e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061570a6025913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600080600061530d8585614eaa565b50905060008061531e888888613fe9565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561536357600080fd5b505afa158015615377573d6000803e3d6000fd5b505050506040513d606081101561538d57600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146153d45780826153d7565b81815b90999098509650505050505050565b60006153f3848484613fe9565b73ffffffffffffffffffffffffffffffffffffffff16633572a47d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561543857600080fd5b505afa15801561544c573d6000803e3d6000fd5b505050506040513d602081101561546257600080fd5b5051949350505050565b60008115806154875750508082028282828161548457fe5b04145b61139757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b8082018281101561139757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe486f706553776170526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e54486f7065537761704c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e545472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472616e7366657246726f6d206661696c65645472616e7366657248656c7065723a3a736166655472616e736665724554483a20455448207472616e73666572206661696c6564486f7065537761704c6962726172793a204944454e544943414c5f414444524553534553486f706553776170526f757465723a20494e53554646494349454e545f425f414d4f554e54486f7065537761704c6962726172793a20494e53554646494349454e545f4c49515549444954595472616e7366657248656c7065723a3a736166655472616e736665723a207472616e73666572206661696c6564486f7065537761704c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54486f7065537761704c6962726172793a20494e53554646494349454e545f414d4f554e54486f706553776170526f757465723a20494e53554646494349454e545f415f414d4f554e54486f706553776170526f757465723a204558434553534956455f494e5055545f414d4f554e54a2646970667358221220f2575f71cd2cb62d66548139de4b0d8065e72f908a5026cb14aea3b628a0f9e864736f6c6343000606003300000000000000000000000026f53fbadeeb777fb2a122dc703433d79241b64e000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2