Contract Information

Explore the source code, ABI, and bytecode for the VraToken smart contract.
More Info

VraToken Source Code

VraToken ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenHolder","type":"address"}],"name":"AuthorizedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Blocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenHolder","type":"address"}],"name":"RevokedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Sent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unblocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BLOCK_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"authorizeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenHolder","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"blockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"defaultOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"granularity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlockListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFinishedMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"tokenHolder","type":"address"}],"name":"isOperatorFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"userData","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"operatorBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"operatorSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"revokeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unblockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenHolder","type":"address"}],"name":"AuthorizedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Blocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"tokenHolder","type":"address"}],"name":"RevokedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"Sent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unblocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BLOCK_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"authorizeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenHolder","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"blockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"defaultOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"granularity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlockListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFinishedMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"tokenHolder","type":"address"}],"name":"isOperatorFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"userData","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"operatorBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"operatorData","type":"bytes"}],"name":"operatorSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"revokeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unblockAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

VraToken Bytecode

60806040526000600a60016101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600481526020017f56455241000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5652410000000000000000000000000000000000000000000000000000000000815250600067ffffffffffffffff81118015620000b257600080fd5b50604051908082528060200260200182016040528015620000e25781602001602082028036833780820191505090505b508282828260039080519060200190620000fe92919062001004565b5081600490805190602001906200011792919062001004565b508060059080519060200190620001309291906200108b565b5060005b600580549050811015620001e057600160066000600584815481106200015657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000134565b50731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff166329965a1d307fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce2177054306040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015620002a557600080fd5b505af1158015620002ba573d6000803e3d6000fd5b50505050731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff166329965a1d307faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a306040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156200038257600080fd5b505af115801562000397573d6000803e3d6000fd5b505050505050506000600a60006101000a81548160ff021916908315150217905550620003dd6000801b620003d1620004e760201b60201c565b620004ef60201b60201c565b6200041e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000412620004e760201b60201c565b620004ef60201b60201c565b6200045f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62000453620004e760201b60201c565b620004ef60201b60201c565b620004a07fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b862000494620004e760201b60201c565b620004ef60201b60201c565b505050620004e1336b2176ab207b49875d3cdad51060405180602001604052806000815250604051806020016040528060008152506200050560201b60201c565b62001176565b600033905090565b6200050182826200085b60201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620005a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6000620005bb620004e760201b60201c565b9050620005d28160008787620008fe60201b60201c565b620005ee8460025462000ac060201b620028741790919060201c565b6002819055506200064d84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000ac060201b620028741790919060201c565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006a981600087878787600162000b4960201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015620007475780820151818401526020810190506200072a565b50505050905090810190601f168015620007755780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015620007b057808201518184015260208101905062000793565b50505050905090810190601f168015620007de5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b620008898160008085815260200190815260200160002060000162000ea960201b620028fc1790919060201c565b15620008fa576200089f620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b620009178484848462000ee160201b6200292c1760201c565b6200092762000ee760201b60201c565b156200097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018062005b0a603f913960400191505060405180910390fd5b620009908462000efe60201b60201c565b15620009e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018062005b966036913960400191505060405180910390fd5b620009f98362000efe60201b60201c565b1562000a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018062005b966036913960400191505060405180910390fd5b62000a628262000efe60201b60201c565b1562000aba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018062005b966036913960400191505060405180910390fd5b50505050565b60008082840190508381101562000b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801562000bf257600080fd5b505afa15801562000c07573d6000803e3d6000fd5b505050506040513d602081101562000c1e57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000e12578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562000d3657808201518184015260208101905062000d19565b50505050905090810190601f16801562000d645780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562000d9f57808201518184015260208101905062000d82565b50505050905090810190601f16801562000dcd5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801562000df357600080fd5b505af115801562000e08573d6000803e3d6000fd5b5050505062000e9f565b811562000e9e5762000e458673ffffffffffffffffffffffffffffffffffffffff1662000f5460201b620029321760201c565b1562000e9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d81526020018062005b49604d913960600191505060405180910390fd5b5b5b5050505050505050565b600062000ed9836000018373ffffffffffffffffffffffffffffffffffffffff1660001b62000f6760201b60201c565b905092915050565b50505050565b6000600a60009054906101000a900460ff16905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080823b905060008111915050919050565b600062000f7b838362000fe160201b60201c565b62000fd657826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000fdb565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200104757805160ff191683800117855562001078565b8280016001018555821562001078579182015b82811115620010775782518255916020019190600101906200105a565b5b5090506200108791906200111a565b5090565b82805482825590600052602060002090810192821562001107579160200282015b82811115620011065782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620010ac565b5b50905062001116919062001139565b5090565b5b80821115620011355760008160009055506001016200111b565b5090565b5b808211156200117257600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200113a565b5090565b61498480620011866000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80639010d07c1161013b578063d547741f116100b8578063e63ab1e91161007c578063e63ab1e914610ec1578063fad8b32a14610edf578063fbb386e814610f23578063fc673c4f14610f41578063fe9d9303146110bd5761023d565b8063d547741f14610be5578063d95b637114610c33578063dcdc7dd014610cad578063dd62ed3e14610e29578063e24ce44f14610ea15761023d565b8063a217fddf116100ff578063a217fddf14610aa9578063a9059cbb14610ac7578063b2c1e0de14610b2b578063ca15c87314610b85578063d539139314610bc75761023d565b80639010d07c1461083757806391d1485414610899578063959b8c3f146108fd57806395d89b41146109415780639bd9bbc6146109c45761023d565b80633f4ba83a116101c957806362ad1b831161018d57806362ad1b83146105d557806370a08231146107715780637c0a893d146107c95780637d64bcb41461080d5780638456cb591461082d5761023d565b80633f4ba83a146105295780634d78fdc614610533578063556f0dc7146105775780635b544877146105955780635c975abb146105b55761023d565b806323b872dd1161021057806323b872dd146103a6578063248a9ca31461042a5780632f2ff15d1461046c578063313ce567146104ba57806336568abe146104db5761023d565b806306e485381461024257806306fdde03146102a1578063095ea7b31461032457806318160ddd14610388575b600080fd5b61024a611182565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561028d578082015181840152602081019050610272565b505050509050019250505060405180910390f35b6102a9611210565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102e95780820151818401526020810190506102ce565b50505050905090810190601f1680156103165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103706004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b2565b60405180821515815260200191505060405180910390f35b6103906112d5565b6040518082815260200191505060405180910390f35b610412600480360360608110156103bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112df565b60405180821515815260200191505060405180910390f35b6104566004803603602081101561044057600080fd5b810190808035906020019092919050505061153d565b6040518082815260200191505060405180910390f35b6104b86004803603604081101561048257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061155c565b005b6104c26115e5565b604051808260ff16815260200191505060405180910390f35b610527600480360360408110156104f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115ee565b005b610531611687565b005b6105756004803603602081101561054957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611717565b005b61057f611845565b6040518082815260200191505060405180910390f35b61059d61184e565b60405180821515815260200191505060405180910390f35b6105bd611861565b60405180821515815260200191505060405180910390f35b61076f600480360360a08110156105eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561065257600080fd5b82018360208201111561066457600080fd5b8035906020019184600183028401116401000000008311171561068657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156106e957600080fd5b8201836020820111156106fb57600080fd5b8035906020019184600183028401116401000000008311171561071d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611878565b005b6107b36004803603602081101561078757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f4565b6040518082815260200191505060405180910390f35b61080b600480360360208110156107df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193d565b005b610815611a6b565b60405180821515815260200191505060405180910390f35b610835611b41565b005b61086d6004803603604081101561084d57600080fd5b810190808035906020019092919080359060200190929190505050611bd1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108e5600480360360408110156108af57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c02565b60405180821515815260200191505060405180910390f35b61093f6004803603602081101561091357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c33565b005b610949611eaa565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098957808201518184015260208101905061096e565b50505050905090810190601f1680156109b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610aa7600480360360608110156109da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a2157600080fd5b820183602082011115610a3357600080fd5b80359060200191846001830284011164010000000083111715610a5557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611f4c565b005b610ab1611f76565b6040518082815260200191505060405180910390f35b610b1360048036036040811015610add57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f7d565b60405180821515815260200191505060405180910390f35b610b6d60048036036020811015610b4157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a1565b60405180821515815260200191505060405180910390f35b610bb160048036036020811015610b9b57600080fd5b81019080803590602001909291905050506120f7565b6040518082815260200191505060405180910390f35b610bcf61211d565b6040518082815260200191505060405180910390f35b610c3160048036036040811015610bfb57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612141565b005b610c9560048036036040811015610c4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ca565b60405180821515815260200191505060405180910390f35b610e2760048036036080811015610cc357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d0a57600080fd5b820183602082011115610d1c57600080fd5b80359060200191846001830284011164010000000083111715610d3e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610da157600080fd5b820183602082011115610db357600080fd5b80359060200191846001830284011164010000000083111715610dd557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061237b565b005b610e8b60048036036040811015610e3f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612479565b6040518082815260200191505060405180910390f35b610ea9612500565b60405180821515815260200191505060405180910390f35b610ec9612517565b6040518082815260200191505060405180910390f35b610f2160048036036020811015610ef557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061253b565b005b610f2b6127b2565b6040518082815260200191505060405180910390f35b6110bb60048036036080811015610f5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610f9e57600080fd5b820183602082011115610fb057600080fd5b80359060200191846001830284011164010000000083111715610fd257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561103557600080fd5b82018360208201111561104757600080fd5b8035906020019184600183028401116401000000008311171561106957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506127d6565b005b611180600480360360408110156110d357600080fd5b8101908080359060200190929190803590602001906401000000008111156110fa57600080fd5b82018360208201111561110c57600080fd5b8035906020019184600183028401116401000000008311171561112e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061284e565b005b6060600580548060200260200160405190810160405280929190818152602001828054801561120657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111bc575b5050505050905090565b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112a85780601f1061127d576101008083540402835291602001916112a8565b820191906000526020600020905b81548152906001019060200180831161128b57829003601f168201915b5050505050905090565b6000806112bd612945565b90506112ca81858561294d565b600191505092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611366576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806147726024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806148726026913960400191505060405180910390fd5b60006113f6612945565b9050611424818686866040518060200160405280600081525060405180602001604052806000815250612b44565b611450818686866040518060200160405280600081525060405180602001604052806000815250612e06565b61150385826114fe8660405180606001604052806029815260200161480460299139600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131199092919063ffffffff16565b61294d565b61153181868686604051806020016040528060008152506040518060200160405280600081525060006131d9565b60019150509392505050565b6000806000838152602001908152602001600020600201549050919050565b6115826000808481526020019081526020016000206002015461157d612945565b611c02565b6115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806144ba602f913960400191505060405180910390fd5b6115e1828261351c565b5050565b60006012905090565b6115f6612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806148de602f913960400191505060405180910390fd5b61168382826135af565b5050565b6116b87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116b3612945565b611c02565b61170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604581526020018061482d6045913960600191505060405180910390fd5b611715613642565b565b6117487fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b8611743612945565b611c02565b61179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604481526020018061466c6044913960600191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f5c272fb29e21b46870af1850afe89126704c55a7781cc100da3f733e15446c7d81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60006001905090565b600a60019054906101000a900460ff1681565b6000600a60009054906101000a900460ff16905090565b611889611883612945565b866121ca565b6118de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806147d8602c913960400191505060405180910390fd5b6118ed85858585856001613735565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61196e7fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b8611969612945565b611c02565b6119c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604281526020018061490d6042913960600191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f75e91ce73c1d3352d8dd3610443539cd33dfe13b1de8f8caae54ec26dd0dc9cb81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000611a9e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6611a99612945565b611c02565b611af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180614620604c913960600191505060405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b611b727f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611b6d612945565b611c02565b611bc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806144776043913960600191505060405180910390fd5b611bcf61389e565b565b6000611bfa8260008086815260200190815260200160002060000161399290919063ffffffff16565b905092915050565b6000611c2b826000808681526020019081526020016000206000016139ac90919063ffffffff16565b905092915050565b8073ffffffffffffffffffffffffffffffffffffffff16611c52612945565b73ffffffffffffffffffffffffffffffffffffffff161415611cbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806145ab6024913960400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611da95760086000611d1d612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055611e46565b600160076000611db7612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611e4e612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f425780601f10611f1757610100808354040283529160200191611f42565b820191906000526020600020905b815481529060010190602001808311611f2557829003601f168201915b5050505050905090565b611f71611f57612945565b848484604051806020016040528060008152506001613735565b505050565b6000801b81565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612004576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806147726024913960400191505060405180910390fd5b600061200e612945565b905061203c818286866040518060200160405280600081525060405180602001604052806000815250612b44565b612068818286866040518060200160405280600081525060405180602001604052806000815250612e06565b61209681828686604051806020016040528060008152506040518060200160405280600081525060006131d9565b600191505092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006121166000808481526020019081526020016000206000016139dc565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61216760008084815260200190815260200160002060020154612162612945565b611c02565b6121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806145cf6030913960400191505060405180910390fd5b6121c682826135af565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122e25750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122e15750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b806123735750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b6123ac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66123a7612945565b611c02565b612401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806147966042913960600191505060405180910390fd5b600a60019054906101000a900460ff1615612467576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145306032913960400191505060405180910390fd5b612473848484846139f1565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60019054906101000a900460ff16905090565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b612543612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145ff6021913960400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126ba57600160086000612627612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061274e565b600760006126c6612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b612756612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b7fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b881565b6127e76127e1612945565b856121ca565b61283c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806147d8602c913960400191505060405180910390fd5b61284884848484613d1a565b50505050565b612870612859612945565b838360405180602001604052806000815250613d1a565b5050565b6000808284019050838110156128f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612924836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61403e565b905092915050565b50505050565b600080823b905060008111915050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806144e96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806148bb6023913960400191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015612bec57600080fd5b505afa158015612c00573d6000803e3d6000fd5b505050506040513d6020811015612c1657600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612dfd578073ffffffffffffffffffffffffffffffffffffffff166375ab97828888888888886040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612d2c578082015181840152602081019050612d11565b50505050905090810190601f168015612d595780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612d92578082015181840152602081019050612d77565b50505050905090810190601f168015612dbf5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015612de457600080fd5b505af1158015612df8573d6000803e3d6000fd5b505050505b50505050505050565b612e12868686866140ae565b612e7e8360405180606001604052806027815260200161456260279139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131199092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1383600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015613009578082015181840152602081019050612fee565b50505050905090810190601f1680156130365780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561306f578082015181840152602081019050613054565b50505050905090810190601f16801561309c5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b60008383111582906131c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561318b578082015181840152602081019050613170565b50505050905090810190601f1680156131b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561328157600080fd5b505afa158015613295573d6000803e3d6000fd5b505050506040513d60208110156132ab57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613495578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156133c05780820151818401526020810190506133a5565b50505050905090810190601f1680156133ed5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561342657808201518184015260208101905061340b565b50505050905090810190601f1680156134535780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561347857600080fd5b505af115801561348c573d6000803e3d6000fd5b50505050613512565b8115613511576134ba8673ffffffffffffffffffffffffffffffffffffffff16612932565b15613510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001806146ef604d913960600191505060405180910390fd5b5b5b5050505050505050565b613543816000808581526020019081526020016000206000016128fc90919063ffffffff16565b156135ab57613550612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6135d68160008085815260200190815260200160002060000161423b90919063ffffffff16565b1561363e576135e3612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600a60009054906101000a900460ff166136c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa613708612945565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156137bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061450e6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561385e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a2073656e6420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6000613868612945565b9050613878818888888888612b44565b613886818888888888612e06565b613895818888888888886131d9565b50505050505050565b600a60009054906101000a900460ff1615613921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613965612945565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006139a1836000018361426b565b60001c905092915050565b60006139d4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6142ee565b905092915050565b60006139ea82600001614311565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6000613a9e612945565b9050613aad81600087876140ae565b613ac28460025461287490919063ffffffff16565b600281905550613b1a84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b6e8160008787878760016131d9565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015613c0a578082015181840152602081019050613bef565b50505050905090810190601f168015613c375780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015613c70578082015181840152602081019050613c55565b50505050905090810190601f168015613c9d5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613da0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806145896022913960400191505060405180910390fd5b6000613daa612945565b9050613db981866000876140ae565b613dc881866000878787612b44565b613e348460405180606001604052806023815260200161489860239139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131199092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e8c8460025461432290919063ffffffff16565b6002819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015613f2e578082015181840152602081019050613f13565b50505050905090810190601f168015613f5b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015613f94578082015181840152602081019050613f79565b50505050905090810190601f168015613fc15780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b600061404a83836142ee565b6140a35782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506140a8565b600090505b92915050565b6140ba8484848461292c565b6140c2611861565b15614118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001806146b0603f913960400191505060405180910390fd5b614121846120a1565b15614177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061473c6036913960400191505060405180910390fd5b614180836120a1565b156141d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061473c6036913960400191505060405180910390fd5b6141df826120a1565b15614235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061473c6036913960400191505060405180910390fd5b50505050565b6000614263836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61436c565b905092915050565b6000818360000180549050116142cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806144556022913960400191505060405180910390fd5b8260000182815481106142db57fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b600061436483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613119565b905092915050565b6000808360010160008481526020019081526020016000205490506000811461444857600060018203905060006001866000018054905003905060008660000182815481106143b757fe5b90600052602060002001549050808760000184815481106143d457fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061440c57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061444e565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433737374d696e7461626c655061757361626c65426c61636b6c69737461626c653a206d75737420686176652070617573657220726f6c6520746f207061757365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433737373a20617070726f76652066726f6d20746865207a65726f20616464726573734552433737373a2073656e642066726f6d20746865207a65726f20616464726573734552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d696e742066696e69736865644552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f72416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d7573742068617665206d696e74657220726f6c6520746f2066696e697368206d696e74696e674552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d757374206861766520626c6f636b20726f6c6520746f20756e626c6f636b45524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a20746f6b656e207472616e73666572207768696c65207061757365644552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e7445524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206163636f756e7420697320626c6f636b65644552433737373a207472616e7366657220746f20746865207a65726f20616464726573734552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d7573742068617665206d696e74657220726f6c6520746f206d696e744552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d75737420686176652070617573657220726f6c6520746f20756e70617573654552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a206275726e20616d6f756e7420657863656564732062616c616e63654552433737373a20617070726f766520746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c664552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d757374206861766520626c6f636b20726f6c6520746f20626c6f636ba2646970667358221220bff526c3c0ca8ee4afba1b3fa191fc0873e5eb4ac456f02ea2af6e5eb9ac984764736f6c634300060c003345524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a20746f6b656e207472616e73666572207768696c65207061757365644552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e7445524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206163636f756e7420697320626c6f636b6564
60806040526000600a60016101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600481526020017f56455241000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f5652410000000000000000000000000000000000000000000000000000000000815250600067ffffffffffffffff81118015620000b257600080fd5b50604051908082528060200260200182016040528015620000e25781602001602082028036833780820191505090505b508282828260039080519060200190620000fe92919062001004565b5081600490805190602001906200011792919062001004565b508060059080519060200190620001309291906200108b565b5060005b600580549050811015620001e057600160066000600584815481106200015657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505062000134565b50731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff166329965a1d307fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce2177054306040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015620002a557600080fd5b505af1158015620002ba573d6000803e3d6000fd5b50505050731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff166329965a1d307faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a306040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156200038257600080fd5b505af115801562000397573d6000803e3d6000fd5b505050505050506000600a60006101000a81548160ff021916908315150217905550620003dd6000801b620003d1620004e760201b60201c565b620004ef60201b60201c565b6200041e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a662000412620004e760201b60201c565b620004ef60201b60201c565b6200045f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a62000453620004e760201b60201c565b620004ef60201b60201c565b620004a07fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b862000494620004e760201b60201c565b620004ef60201b60201c565b505050620004e1336b2176ab207b49875d3cdad51060405180602001604052806000815250604051806020016040528060008152506200050560201b60201c565b62001176565b600033905090565b6200050182826200085b60201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620005a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6000620005bb620004e760201b60201c565b9050620005d28160008787620008fe60201b60201c565b620005ee8460025462000ac060201b620028741790919060201c565b6002819055506200064d84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000ac060201b620028741790919060201c565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006a981600087878787600162000b4960201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015620007475780820151818401526020810190506200072a565b50505050905090810190601f168015620007755780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015620007b057808201518184015260208101905062000793565b50505050905090810190601f168015620007de5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b620008898160008085815260200190815260200160002060000162000ea960201b620028fc1790919060201c565b15620008fa576200089f620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b620009178484848462000ee160201b6200292c1760201c565b6200092762000ee760201b60201c565b156200097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018062005b0a603f913960400191505060405180910390fd5b620009908462000efe60201b60201c565b15620009e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018062005b966036913960400191505060405180910390fd5b620009f98362000efe60201b60201c565b1562000a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018062005b966036913960400191505060405180910390fd5b62000a628262000efe60201b60201c565b1562000aba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018062005b966036913960400191505060405180910390fd5b50505050565b60008082840190508381101562000b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801562000bf257600080fd5b505afa15801562000c07573d6000803e3d6000fd5b505050506040513d602081101562000c1e57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161462000e12578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101562000d3657808201518184015260208101905062000d19565b50505050905090810190601f16801562000d645780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101562000d9f57808201518184015260208101905062000d82565b50505050905090810190601f16801562000dcd5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801562000df357600080fd5b505af115801562000e08573d6000803e3d6000fd5b5050505062000e9f565b811562000e9e5762000e458673ffffffffffffffffffffffffffffffffffffffff1662000f5460201b620029321760201c565b1562000e9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d81526020018062005b49604d913960600191505060405180910390fd5b5b5b5050505050505050565b600062000ed9836000018373ffffffffffffffffffffffffffffffffffffffff1660001b62000f6760201b60201c565b905092915050565b50505050565b6000600a60009054906101000a900460ff16905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080823b905060008111915050919050565b600062000f7b838362000fe160201b60201c565b62000fd657826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000fdb565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200104757805160ff191683800117855562001078565b8280016001018555821562001078579182015b82811115620010775782518255916020019190600101906200105a565b5b5090506200108791906200111a565b5090565b82805482825590600052602060002090810192821562001107579160200282015b82811115620011065782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620010ac565b5b50905062001116919062001139565b5090565b5b80821115620011355760008160009055506001016200111b565b5090565b5b808211156200117257600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200113a565b5090565b61498480620011866000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80639010d07c1161013b578063d547741f116100b8578063e63ab1e91161007c578063e63ab1e914610ec1578063fad8b32a14610edf578063fbb386e814610f23578063fc673c4f14610f41578063fe9d9303146110bd5761023d565b8063d547741f14610be5578063d95b637114610c33578063dcdc7dd014610cad578063dd62ed3e14610e29578063e24ce44f14610ea15761023d565b8063a217fddf116100ff578063a217fddf14610aa9578063a9059cbb14610ac7578063b2c1e0de14610b2b578063ca15c87314610b85578063d539139314610bc75761023d565b80639010d07c1461083757806391d1485414610899578063959b8c3f146108fd57806395d89b41146109415780639bd9bbc6146109c45761023d565b80633f4ba83a116101c957806362ad1b831161018d57806362ad1b83146105d557806370a08231146107715780637c0a893d146107c95780637d64bcb41461080d5780638456cb591461082d5761023d565b80633f4ba83a146105295780634d78fdc614610533578063556f0dc7146105775780635b544877146105955780635c975abb146105b55761023d565b806323b872dd1161021057806323b872dd146103a6578063248a9ca31461042a5780632f2ff15d1461046c578063313ce567146104ba57806336568abe146104db5761023d565b806306e485381461024257806306fdde03146102a1578063095ea7b31461032457806318160ddd14610388575b600080fd5b61024a611182565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561028d578082015181840152602081019050610272565b505050509050019250505060405180910390f35b6102a9611210565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102e95780820151818401526020810190506102ce565b50505050905090810190601f1680156103165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103706004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112b2565b60405180821515815260200191505060405180910390f35b6103906112d5565b6040518082815260200191505060405180910390f35b610412600480360360608110156103bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112df565b60405180821515815260200191505060405180910390f35b6104566004803603602081101561044057600080fd5b810190808035906020019092919050505061153d565b6040518082815260200191505060405180910390f35b6104b86004803603604081101561048257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061155c565b005b6104c26115e5565b604051808260ff16815260200191505060405180910390f35b610527600480360360408110156104f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115ee565b005b610531611687565b005b6105756004803603602081101561054957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611717565b005b61057f611845565b6040518082815260200191505060405180910390f35b61059d61184e565b60405180821515815260200191505060405180910390f35b6105bd611861565b60405180821515815260200191505060405180910390f35b61076f600480360360a08110156105eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561065257600080fd5b82018360208201111561066457600080fd5b8035906020019184600183028401116401000000008311171561068657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156106e957600080fd5b8201836020820111156106fb57600080fd5b8035906020019184600183028401116401000000008311171561071d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611878565b005b6107b36004803603602081101561078757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f4565b6040518082815260200191505060405180910390f35b61080b600480360360208110156107df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061193d565b005b610815611a6b565b60405180821515815260200191505060405180910390f35b610835611b41565b005b61086d6004803603604081101561084d57600080fd5b810190808035906020019092919080359060200190929190505050611bd1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108e5600480360360408110156108af57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c02565b60405180821515815260200191505060405180910390f35b61093f6004803603602081101561091357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c33565b005b610949611eaa565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098957808201518184015260208101905061096e565b50505050905090810190601f1680156109b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610aa7600480360360608110156109da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a2157600080fd5b820183602082011115610a3357600080fd5b80359060200191846001830284011164010000000083111715610a5557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611f4c565b005b610ab1611f76565b6040518082815260200191505060405180910390f35b610b1360048036036040811015610add57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f7d565b60405180821515815260200191505060405180910390f35b610b6d60048036036020811015610b4157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a1565b60405180821515815260200191505060405180910390f35b610bb160048036036020811015610b9b57600080fd5b81019080803590602001909291905050506120f7565b6040518082815260200191505060405180910390f35b610bcf61211d565b6040518082815260200191505060405180910390f35b610c3160048036036040811015610bfb57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612141565b005b610c9560048036036040811015610c4957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ca565b60405180821515815260200191505060405180910390f35b610e2760048036036080811015610cc357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d0a57600080fd5b820183602082011115610d1c57600080fd5b80359060200191846001830284011164010000000083111715610d3e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610da157600080fd5b820183602082011115610db357600080fd5b80359060200191846001830284011164010000000083111715610dd557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061237b565b005b610e8b60048036036040811015610e3f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612479565b6040518082815260200191505060405180910390f35b610ea9612500565b60405180821515815260200191505060405180910390f35b610ec9612517565b6040518082815260200191505060405180910390f35b610f2160048036036020811015610ef557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061253b565b005b610f2b6127b2565b6040518082815260200191505060405180910390f35b6110bb60048036036080811015610f5757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610f9e57600080fd5b820183602082011115610fb057600080fd5b80359060200191846001830284011164010000000083111715610fd257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561103557600080fd5b82018360208201111561104757600080fd5b8035906020019184600183028401116401000000008311171561106957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506127d6565b005b611180600480360360408110156110d357600080fd5b8101908080359060200190929190803590602001906401000000008111156110fa57600080fd5b82018360208201111561110c57600080fd5b8035906020019184600183028401116401000000008311171561112e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061284e565b005b6060600580548060200260200160405190810160405280929190818152602001828054801561120657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116111bc575b5050505050905090565b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112a85780601f1061127d576101008083540402835291602001916112a8565b820191906000526020600020905b81548152906001019060200180831161128b57829003601f168201915b5050505050905090565b6000806112bd612945565b90506112ca81858561294d565b600191505092915050565b6000600254905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611366576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806147726024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806148726026913960400191505060405180910390fd5b60006113f6612945565b9050611424818686866040518060200160405280600081525060405180602001604052806000815250612b44565b611450818686866040518060200160405280600081525060405180602001604052806000815250612e06565b61150385826114fe8660405180606001604052806029815260200161480460299139600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131199092919063ffffffff16565b61294d565b61153181868686604051806020016040528060008152506040518060200160405280600081525060006131d9565b60019150509392505050565b6000806000838152602001908152602001600020600201549050919050565b6115826000808481526020019081526020016000206002015461157d612945565b611c02565b6115d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806144ba602f913960400191505060405180910390fd5b6115e1828261351c565b5050565b60006012905090565b6115f6612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806148de602f913960400191505060405180910390fd5b61168382826135af565b5050565b6116b87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6116b3612945565b611c02565b61170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604581526020018061482d6045913960600191505060405180910390fd5b611715613642565b565b6117487fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b8611743612945565b611c02565b61179d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604481526020018061466c6044913960600191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f5c272fb29e21b46870af1850afe89126704c55a7781cc100da3f733e15446c7d81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60006001905090565b600a60019054906101000a900460ff1681565b6000600a60009054906101000a900460ff16905090565b611889611883612945565b866121ca565b6118de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806147d8602c913960400191505060405180910390fd5b6118ed85858585856001613735565b5050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61196e7fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b8611969612945565b611c02565b6119c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604281526020018061490d6042913960600191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f75e91ce73c1d3352d8dd3610443539cd33dfe13b1de8f8caae54ec26dd0dc9cb81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000611a9e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6611a99612945565b611c02565b611af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180614620604c913960600191505060405180910390fd5b6001600a60016101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b611b727f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611b6d612945565b611c02565b611bc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806144776043913960600191505060405180910390fd5b611bcf61389e565b565b6000611bfa8260008086815260200190815260200160002060000161399290919063ffffffff16565b905092915050565b6000611c2b826000808681526020019081526020016000206000016139ac90919063ffffffff16565b905092915050565b8073ffffffffffffffffffffffffffffffffffffffff16611c52612945565b73ffffffffffffffffffffffffffffffffffffffff161415611cbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806145ab6024913960400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611da95760086000611d1d612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055611e46565b600160076000611db7612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611e4e612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a350565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f425780601f10611f1757610100808354040283529160200191611f42565b820191906000526020600020905b815481529060010190602001808311611f2557829003601f168201915b5050505050905090565b611f71611f57612945565b848484604051806020016040528060008152506001613735565b505050565b6000801b81565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612004576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806147726024913960400191505060405180910390fd5b600061200e612945565b905061203c818286866040518060200160405280600081525060405180602001604052806000815250612b44565b612068818286866040518060200160405280600081525060405180602001604052806000815250612e06565b61209681828686604051806020016040528060008152506040518060200160405280600081525060006131d9565b600191505092915050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006121166000808481526020019081526020016000206000016139dc565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61216760008084815260200190815260200160002060020154612162612945565b611c02565b6121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806145cf6030913960400191505060405180910390fd5b6121c682826135af565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122e25750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122e15750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b806123735750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b905092915050565b6123ac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66123a7612945565b611c02565b612401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806147966042913960600191505060405180910390fd5b600a60019054906101000a900460ff1615612467576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145306032913960400191505060405180910390fd5b612473848484846139f1565b50505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60019054906101000a900460ff16905090565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b612543612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145ff6021913960400191505060405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126ba57600160086000612627612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061274e565b600760006126c6612945565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690555b612756612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a350565b7fefe866497efea00aa7574b13e86f62ebb584dfdf8dd4654ccc38107eb91840b881565b6127e76127e1612945565b856121ca565b61283c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806147d8602c913960400191505060405180910390fd5b61284884848484613d1a565b50505050565b612870612859612945565b838360405180602001604052806000815250613d1a565b5050565b6000808284019050838110156128f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612924836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61403e565b905092915050565b50505050565b600080823b905060008111915050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806144e96025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806148bb6023913960400191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b158015612bec57600080fd5b505afa158015612c00573d6000803e3d6000fd5b505050506040513d6020811015612c1657600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612dfd578073ffffffffffffffffffffffffffffffffffffffff166375ab97828888888888886040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015612d2c578082015181840152602081019050612d11565b50505050905090810190601f168015612d595780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015612d92578082015181840152602081019050612d77565b50505050905090810190601f168015612dbf5780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b158015612de457600080fd5b505af1158015612df8573d6000803e3d6000fd5b505050505b50505050505050565b612e12868686866140ae565b612e7e8360405180606001604052806027815260200161456260279139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131199092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1383600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015613009578082015181840152602081019050612fee565b50505050905090810190601f1680156130365780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561306f578082015181840152602081019050613054565b50505050905090810190601f16801561309c5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a48373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050565b60008383111582906131c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561318b578082015181840152602081019050613170565b50505050905090810190601f1680156131b85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000731820a4b7618bde71dce8cdc73aab6c95905fad2473ffffffffffffffffffffffffffffffffffffffff1663aabbb8ca877fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60001b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b15801561328157600080fd5b505afa158015613295573d6000803e3d6000fd5b505050506040513d60208110156132ab57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613495578073ffffffffffffffffffffffffffffffffffffffff166223de298989898989896040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156133c05780820151818401526020810190506133a5565b50505050905090810190601f1680156133ed5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561342657808201518184015260208101905061340b565b50505050905090810190601f1680156134535780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b15801561347857600080fd5b505af115801561348c573d6000803e3d6000fd5b50505050613512565b8115613511576134ba8673ffffffffffffffffffffffffffffffffffffffff16612932565b15613510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001806146ef604d913960600191505060405180910390fd5b5b5b5050505050505050565b613543816000808581526020019081526020016000206000016128fc90919063ffffffff16565b156135ab57613550612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6135d68160008085815260200190815260200160002060000161423b90919063ffffffff16565b1561363e576135e3612945565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b600a60009054906101000a900460ff166136c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa613708612945565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156137bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061450e6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561385e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a2073656e6420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6000613868612945565b9050613878818888888888612b44565b613886818888888888612e06565b613895818888888888886131d9565b50505050505050565b600a60009054906101000a900460ff1615613921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613965612945565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60006139a1836000018361426b565b60001c905092915050565b60006139d4836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6142ee565b905092915050565b60006139ea82600001614311565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433737373a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6000613a9e612945565b9050613aad81600087876140ae565b613ac28460025461287490919063ffffffff16565b600281905550613b1a84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461287490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b6e8160008787878760016131d9565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015613c0a578082015181840152602081019050613bef565b50505050905090810190601f168015613c375780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015613c70578082015181840152602081019050613c55565b50505050905090810190601f168015613c9d5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a38473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613da0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806145896022913960400191505060405180910390fd5b6000613daa612945565b9050613db981866000876140ae565b613dc881866000878787612b44565b613e348460405180606001604052806023815260200161489860239139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131199092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e8c8460025461432290919063ffffffff16565b6002819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098868686604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015613f2e578082015181840152602081019050613f13565b50505050905090810190601f168015613f5b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015613f94578082015181840152602081019050613f79565b50505050905090810190601f168015613fc15780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b600061404a83836142ee565b6140a35782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506140a8565b600090505b92915050565b6140ba8484848461292c565b6140c2611861565b15614118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001806146b0603f913960400191505060405180910390fd5b614121846120a1565b15614177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061473c6036913960400191505060405180910390fd5b614180836120a1565b156141d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061473c6036913960400191505060405180910390fd5b6141df826120a1565b15614235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061473c6036913960400191505060405180910390fd5b50505050565b6000614263836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61436c565b905092915050565b6000818360000180549050116142cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806144556022913960400191505060405180910390fd5b8260000182815481106142db57fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b600061436483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613119565b905092915050565b6000808360010160008481526020019081526020016000205490506000811461444857600060018203905060006001866000018054905003905060008660000182815481106143b757fe5b90600052602060002001549050808760000184815481106143d457fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061440c57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061444e565b60009150505b9291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433737374d696e7461626c655061757361626c65426c61636b6c69737461626c653a206d75737420686176652070617573657220726f6c6520746f207061757365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744552433737373a20617070726f76652066726f6d20746865207a65726f20616464726573734552433737373a2073656e642066726f6d20746865207a65726f20616464726573734552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d696e742066696e69736865644552433737373a207472616e7366657220616d6f756e7420657863656564732062616c616e63654552433737373a206275726e2066726f6d20746865207a65726f20616464726573734552433737373a20617574686f72697a696e672073656c66206173206f70657261746f72416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654552433737373a207265766f6b696e672073656c66206173206f70657261746f724552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d7573742068617665206d696e74657220726f6c6520746f2066696e697368206d696e74696e674552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d757374206861766520626c6f636b20726f6c6520746f20756e626c6f636b45524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a20746f6b656e207472616e73666572207768696c65207061757365644552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e7445524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206163636f756e7420697320626c6f636b65644552433737373a207472616e7366657220746f20746865207a65726f20616464726573734552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d7573742068617665206d696e74657220726f6c6520746f206d696e744552433737373a2063616c6c6572206973206e6f7420616e206f70657261746f7220666f7220686f6c6465724552433737373a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d75737420686176652070617573657220726f6c6520746f20756e70617573654552433737373a207472616e736665722066726f6d20746865207a65726f20616464726573734552433737373a206275726e20616d6f756e7420657863656564732062616c616e63654552433737373a20617070726f766520746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c664552433737374d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206d757374206861766520626c6f636b20726f6c6520746f20626c6f636ba2646970667358221220bff526c3c0ca8ee4afba1b3fa191fc0873e5eb4ac456f02ea2af6e5eb9ac984764736f6c634300060c003345524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a20746f6b656e207472616e73666572207768696c65207061757365644552433737373a20746f6b656e20726563697069656e7420636f6e747261637420686173206e6f20696d706c656d656e74657220666f7220455243373737546f6b656e73526563697069656e7445524332304d696e7461626c655061757361626c65426c6f636b6c69737461626c653a206163636f756e7420697320626c6f636b6564

Check out more smart contracts

Build blockchain magic with Alchemy

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.