0x608060405234801561001057600080fd5b50600436106100725760003560e01c80638da5cb5b116100505780638da5cb5b146100c5578063f0b9e5ba146100e0578063f2fde38b146100f357610072565b8063150b7a02146100775780636005b6d4146100a8578063715018a6146100bd575b600080fd5b61008a610085366004610aea565b610106565b6040516001600160e01b031990911681526020015b60405180910390f35b6100bb6100b6366004610b57565b61055a565b005b6100bb61062c565b6000546040516001600160a01b03909116815260200161009f565b61008a6100ee366004610b93565b610692565b6100bb610101366004610ad0565b6107f1565b3360009081526003602052604081205460ff1661019e576001805460405163a22cb46560e01b81526001600160a01b0390911660048201526024810191909152339063a22cb46590604401600060405180830381600087803b15801561016b57600080fd5b505af115801561017f573d6000803e3d6000fd5b5050336000908152600360205260409020805460ff1916600117905550505b6040805160018082528183019092526000916020808301908036833701905050905084816000815181106101e257634e487b7160e01b600052603260045260246000fd5b6020908102919091018101919091523360009081526004909152604090205461ffff1680156104df576001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561024f57600080fd5b505afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102879190610c12565b6001546040516317373c8160e31b81529192506001600160a01b03169063b9b9e408906102bc90339087903090600401610c63565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a082319060240160206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190610c12565b9050600061037a8383610d22565b9050600061271061038f61ffff871684610d03565b6103999190610ce3565b905060006103a78284610d22565b6001549091506001600160a01b031663a9059cbb6103cd6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b15801561041557600080fd5b505af1158015610429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044d9190610beb565b5060015460405163a9059cbb60e01b81526001600160a01b038e81166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561049c57600080fd5b505af11580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190610beb565b505050505050610546565b6001546040516317373c8160e31b81526001600160a01b039091169063b9b9e4089061051390339086908c90600401610c63565b600060405180830381600087803b15801561052d57600080fd5b505af1158015610541573d6000803e3d6000fd5b505050505b50630a85bd0160e11b979650505050505050565b6000546001600160a01b031633146105b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6127108161ffff1611156105fd5760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642042505360a81b60448201526064016105b0565b6001600160a01b03919091166000908152600460205260409020805461ffff191661ffff909216919091179055565b6000546001600160a01b031633146106865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b0565b61069060006108e1565b565b3360009081526003602052604081205460ff1661072a576001805460405163a22cb46560e01b81526001600160a01b0390911660048201526024810191909152339063a22cb46590604401600060405180830381600087803b1580156106f757600080fd5b505af115801561070b573d6000803e3d6000fd5b5050336000908152600360205260409020805460ff1916600117905550505b60408051600180825281830190925260009160208083019080368337019050509050848160008151811061076e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101526001546040516317373c8160e31b81526001600160a01b039091169063b9b9e408906107ad90339085908b90600401610c63565b600060405180830381600087803b1580156107c757600080fd5b505af11580156107db573d6000803e3d6000fd5b5063785cf2dd60e11b9998505050505050505050565b6000546001600160a01b0316331461084b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b0565b6001600160a01b0381166108b05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b0565b6108b9816108e1565b50565b60006108c78361093e565b80156108d857506108d88383610974565b90505b92915050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610951826301ffc9a760e01b610974565b801561096c575061096a826001600160e01b0319610974565b155b90505b919050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166301ffc9a760e01b179052905160009190829081906001600160a01b03871690617530906109f0908690610c2a565b6000604051808303818686fa925050503d8060008114610a2c576040519150601f19603f3d011682016040523d82523d6000602084013e610a31565b606091505b5091509150602081511015610a4c57600093505050506108db565b818015610a68575080806020019051810190610a689190610beb565b9695505050505050565b80356001600160a01b038116811461096f57600080fd5b60008083601f840112610a9a578182fd5b50813567ffffffffffffffff811115610ab1578182fd5b602083019150836020828501011115610ac957600080fd5b9250929050565b600060208284031215610ae1578081fd5b6108d882610a72565b600080600080600060808688031215610b01578081fd5b610b0a86610a72565b9450610b1860208701610a72565b935060408601359250606086013567ffffffffffffffff811115610b3a578182fd5b610b4688828901610a89565b969995985093965092949392505050565b60008060408385031215610b69578182fd5b610b7283610a72565b9150602083013561ffff81168114610b88578182fd5b809150509250929050565b60008060008060608587031215610ba8578384fd5b610bb185610a72565b935060208501359250604085013567ffffffffffffffff811115610bd3578283fd5b610bdf87828801610a89565b95989497509550505050565b600060208284031215610bfc578081fd5b81518015158114610c0b578182fd5b9392505050565b600060208284031215610c23578081fd5b5051919050565b60008251815b81811015610c4a5760208186018101518583015201610c30565b81811115610c585782828501525b509190910192915050565b6000608082016001600160a01b038087168452602060808186015282875180855260a0870191508289019450855b81811015610cad57855183529483019491830191600101610c91565b50508581036040870152600681526565726337323160d01b82820152604081019450505080851660608501525050949350505050565b600082610cfe57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610d1d57610d1d610d39565b500290565b600082821015610d3457610d34610d39565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220fcb1548c7bc303e5cb8deee1a507e1494437984563b90191d2e5dd25492c926464736f6c63430008030033
0x60806040523480156200001157600080fd5b50604051620010b6380380620010b6833981016040819052620000349162000293565b6200003f33620000ef565b6200005d81630f21484360e01b6200013f60201b620008bc1760201c565b620000c95760405162461bcd60e51b815260206004820152603260248201527f4552433732314e465432455243323052656365697665723a204d75737420696d6044820152710706c656d656e7420494e46543245524332360741b606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b039290921691909117905562000321565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006200014c8362000169565b8015620001605750620001608383620001a1565b90505b92915050565b60006200017e826301ffc9a760e01b620001a1565b80156200016357506200019a826001600160e01b0319620001a1565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b03871690617530906200020a908690620002e5565b6000604051808303818686fa925050503d806000811462000248576040519150601f19603f3d011682016040523d82523d6000602084013e6200024d565b606091505b50915091506020815110156200026a576000935050505062000163565b81801562000289575080806020019051810190620002899190620002c3565b9695505050505050565b600060208284031215620002a5578081fd5b81516001600160a01b0381168114620002bc578182fd5b9392505050565b600060208284031215620002d5578081fd5b81518015158114620002bc578182fd5b60008251815b81811015620003075760208186018101518583015201620002eb565b81811115620003165782828501525b509190910192915050565b610d8580620003316000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80638da5cb5b116100505780638da5cb5b146100c5578063f0b9e5ba146100e0578063f2fde38b146100f357610072565b8063150b7a02146100775780636005b6d4146100a8578063715018a6146100bd575b600080fd5b61008a610085366004610aea565b610106565b6040516001600160e01b031990911681526020015b60405180910390f35b6100bb6100b6366004610b57565b61055a565b005b6100bb61062c565b6000546040516001600160a01b03909116815260200161009f565b61008a6100ee366004610b93565b610692565b6100bb610101366004610ad0565b6107f1565b3360009081526003602052604081205460ff1661019e576001805460405163a22cb46560e01b81526001600160a01b0390911660048201526024810191909152339063a22cb46590604401600060405180830381600087803b15801561016b57600080fd5b505af115801561017f573d6000803e3d6000fd5b5050336000908152600360205260409020805460ff1916600117905550505b6040805160018082528183019092526000916020808301908036833701905050905084816000815181106101e257634e487b7160e01b600052603260045260246000fd5b6020908102919091018101919091523360009081526004909152604090205461ffff1680156104df576001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561024f57600080fd5b505afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102879190610c12565b6001546040516317373c8160e31b81529192506001600160a01b03169063b9b9e408906102bc90339087903090600401610c63565b600060405180830381600087803b1580156102d657600080fd5b505af11580156102ea573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600093506001600160a01b0390911691506370a082319060240160206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190610c12565b9050600061037a8383610d22565b9050600061271061038f61ffff871684610d03565b6103999190610ce3565b905060006103a78284610d22565b6001549091506001600160a01b031663a9059cbb6103cd6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401602060405180830381600087803b15801561041557600080fd5b505af1158015610429573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044d9190610beb565b5060015460405163a9059cbb60e01b81526001600160a01b038e81166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561049c57600080fd5b505af11580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190610beb565b505050505050610546565b6001546040516317373c8160e31b81526001600160a01b039091169063b9b9e4089061051390339086908c90600401610c63565b600060405180830381600087803b15801561052d57600080fd5b505af1158015610541573d6000803e3d6000fd5b505050505b50630a85bd0160e11b979650505050505050565b6000546001600160a01b031633146105b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6127108161ffff1611156105fd5760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642042505360a81b60448201526064016105b0565b6001600160a01b03919091166000908152600460205260409020805461ffff191661ffff909216919091179055565b6000546001600160a01b031633146106865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b0565b61069060006108e1565b565b3360009081526003602052604081205460ff1661072a576001805460405163a22cb46560e01b81526001600160a01b0390911660048201526024810191909152339063a22cb46590604401600060405180830381600087803b1580156106f757600080fd5b505af115801561070b573d6000803e3d6000fd5b5050336000908152600360205260409020805460ff1916600117905550505b60408051600180825281830190925260009160208083019080368337019050509050848160008151811061076e57634e487b7160e01b600052603260045260246000fd5b60209081029190910101526001546040516317373c8160e31b81526001600160a01b039091169063b9b9e408906107ad90339085908b90600401610c63565b600060405180830381600087803b1580156107c757600080fd5b505af11580156107db573d6000803e3d6000fd5b5063785cf2dd60e11b9998505050505050505050565b6000546001600160a01b0316331461084b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b0565b6001600160a01b0381166108b05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b0565b6108b9816108e1565b50565b60006108c78361093e565b80156108d857506108d88383610974565b90505b92915050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610951826301ffc9a760e01b610974565b801561096c575061096a826001600160e01b0319610974565b155b90505b919050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166301ffc9a760e01b179052905160009190829081906001600160a01b03871690617530906109f0908690610c2a565b6000604051808303818686fa925050503d8060008114610a2c576040519150601f19603f3d011682016040523d82523d6000602084013e610a31565b606091505b5091509150602081511015610a4c57600093505050506108db565b818015610a68575080806020019051810190610a689190610beb565b9695505050505050565b80356001600160a01b038116811461096f57600080fd5b60008083601f840112610a9a578182fd5b50813567ffffffffffffffff811115610ab1578182fd5b602083019150836020828501011115610ac957600080fd5b9250929050565b600060208284031215610ae1578081fd5b6108d882610a72565b600080600080600060808688031215610b01578081fd5b610b0a86610a72565b9450610b1860208701610a72565b935060408601359250606086013567ffffffffffffffff811115610b3a578182fd5b610b4688828901610a89565b969995985093965092949392505050565b60008060408385031215610b69578182fd5b610b7283610a72565b9150602083013561ffff81168114610b88578182fd5b809150509250929050565b60008060008060608587031215610ba8578384fd5b610bb185610a72565b935060208501359250604085013567ffffffffffffffff811115610bd3578283fd5b610bdf87828801610a89565b95989497509550505050565b600060208284031215610bfc578081fd5b81518015158114610c0b578182fd5b9392505050565b600060208284031215610c23578081fd5b5051919050565b60008251815b81811015610c4a5760208186018101518583015201610c30565b81811115610c585782828501525b509190910192915050565b6000608082016001600160a01b038087168452602060808186015282875180855260a0870191508289019450855b81811015610cad57855183529483019491830191600101610c91565b50508581036040870152600681526565726337323160d01b82820152604081019450505080851660608501525050949350505050565b600082610cfe57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610d1d57610d1d610d39565b500290565b600082821015610d3457610d34610d39565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220fcb1548c7bc303e5cb8deee1a507e1494437984563b90191d2e5dd25492c926464736f6c6343000803003300000000000000000000000064d91f12ece7362f91a6f8e7940cd55f05060b92