0x608060405234801561001057600080fd5b50600436106100c95760003560e01c8063715018a611610081578063ba0ba0461161005b578063ba0ba04614610164578063f2fde38b1461017a578063f5ef13e31461018d57600080fd5b8063715018a6146101245780638da5cb5b1461012c578063aad3ec961461015157600080fd5b806348bca061116100b257806348bca06114610101578063654604241461011457806365a409661461011c57600080fd5b806318d92831146100ce5780633cb40e16146100f7575b600080fd5b6002546100e290600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6100ff6101a0565b005b6100ff61010f36600461093f565b61022c565b6100ff6103e5565b6100ff61045a565b6100ff6104d1565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100ee565b6100ff61015f3660046109c5565b6104e5565b61016c600a81565b6040519081526020016100ee565b6100ff6101883660046109ef565b61067b565b600254610139906001600160a01b031681565b6101a861070b565b47806101fb5760405162461bcd60e51b815260206004820152601260248201527f4e6f2045544820746f205769746864726177000000000000000000000000000060448201526064015b60405180910390fd5b604051339082156108fc029083906000818181858888f19350505050158015610228573d6000803e3d6000fd5b5050565b600254600160a01b900460ff161561029c5760405162461bcd60e51b815260206004820152602d60248201527f444e4654476f7665726e616e6365204572726f723a2063616e6e6f742070726f60448201526c63657373206f6e20506175736560981b60648201526084016101f2565b600a81146102a957600080fd5b6000805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49546040517f4d44660c0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634d44660c9061031e90339086908690600401610a8b565b602060405180830381865afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f9190610ab7565b6103d15760405162461bcd60e51b815260206004820152602360248201527f63616c6c6572206e6f74206f776e6572206f6620746f6b656e2069647320676960448201527f76656e000000000000000000000000000000000000000000000000000000000060648201526084016101f2565b6103e083838360006001610765565b505050565b6103ed61070b565b600254600160a01b900460ff16151560011461044b5760405162461bcd60e51b815260206004820152601160248201527f506175736520416c7265616479206f666600000000000000000000000000000060448201526064016101f2565b6002805460ff60a01b19169055565b61046261070b565b600254600160a01b900460ff16156104bc5760405162461bcd60e51b815260206004820152601160248201527f506175736520416c7265616479206f6e2000000000000000000000000000000060448201526064016101f2565b6002805460ff60a01b1916600160a01b179055565b6104d961070b565b6104e360006108bb565b565b600254600160a01b900460ff16156105555760405162461bcd60e51b815260206004820152602d60248201527f444e4654476f7665726e616e6365204572726f723a2063616e6e6f742070726f60448201526c63657373206f6e20506175736560981b60648201526084016101f2565b600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4954604080516340c10f1960e01b81526001600160a01b03868116600483015260248201869052915191909216926340c10f19926044808201939182900301818387803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b50506002546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590526001600160a01b0390911692506323b872dd91506064016020604051808303816000875af1158015610657573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e09190610ab7565b61068361070b565b6001600160a01b0381166106ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101f2565b610708816108bb565b50565b6000546001600160a01b031633146104e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101f2565b6001600083600181111561077b5761077b610a11565b600181111561078c5761078c610a11565b8152602081019190915260409081016000205490517fb80f55c90000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b80f55c9906107e69087908790600401610ad9565b600060405180830381600087803b15801561080057600080fd5b505af1158015610814573d6000803e3d6000fd5b505050506001600082600181111561082e5761082e610a11565b600181111561083f5761083f610a11565b8152602081019190915260409081016000205490516340c10f1960e01b81526001600160a01b03878116600483015260016024830152909116906340c10f1990604401600060405180830381600087803b15801561089c57600080fd5b505af11580156108b0573d6000803e3d6000fd5b505050505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461093a57600080fd5b919050565b60008060006040848603121561095457600080fd5b61095d84610923565b9250602084013567ffffffffffffffff8082111561097a57600080fd5b818601915086601f83011261098e57600080fd5b81358181111561099d57600080fd5b8760208260051b85010111156109b257600080fd5b6020830194508093505050509250925092565b600080604083850312156109d857600080fd5b6109e183610923565b946020939093013593505050565b600060208284031215610a0157600080fd5b610a0a82610923565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610a7257600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b0384168152604060208201526000610aae604083018486610a40565b95945050505050565b600060208284031215610ac957600080fd5b81518015158114610a0a57600080fd5b602081526000610aed602083018486610a40565b94935050505056fea26469706673582212204cfc13907b5fcc89608d16271fe2218d78079aaa10980e2a44026c954198638a64736f6c63430008110033
0x60806040526002805460ff60a01b1916600160a01b17905534801561002357600080fd5b50604051610cc0380380610cc083398101604081905261004291610143565b61004b336100d7565b600280546001600160a01b03199081166001600160a01b0395861617909155600160208190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4980548316948616949094179093556000929092527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054919093169116179055610186565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461013e57600080fd5b919050565b60008060006060848603121561015857600080fd5b61016184610127565b925061016f60208501610127565b915061017d60408501610127565b90509250925092565b610b2b806101956000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063715018a611610081578063ba0ba0461161005b578063ba0ba04614610164578063f2fde38b1461017a578063f5ef13e31461018d57600080fd5b8063715018a6146101245780638da5cb5b1461012c578063aad3ec961461015157600080fd5b806348bca061116100b257806348bca06114610101578063654604241461011457806365a409661461011c57600080fd5b806318d92831146100ce5780633cb40e16146100f7575b600080fd5b6002546100e290600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6100ff6101a0565b005b6100ff61010f36600461093f565b61022c565b6100ff6103e5565b6100ff61045a565b6100ff6104d1565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100ee565b6100ff61015f3660046109c5565b6104e5565b61016c600a81565b6040519081526020016100ee565b6100ff6101883660046109ef565b61067b565b600254610139906001600160a01b031681565b6101a861070b565b47806101fb5760405162461bcd60e51b815260206004820152601260248201527f4e6f2045544820746f205769746864726177000000000000000000000000000060448201526064015b60405180910390fd5b604051339082156108fc029083906000818181858888f19350505050158015610228573d6000803e3d6000fd5b5050565b600254600160a01b900460ff161561029c5760405162461bcd60e51b815260206004820152602d60248201527f444e4654476f7665726e616e6365204572726f723a2063616e6e6f742070726f60448201526c63657373206f6e20506175736560981b60648201526084016101f2565b600a81146102a957600080fd5b6000805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49546040517f4d44660c0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634d44660c9061031e90339086908690600401610a8b565b602060405180830381865afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f9190610ab7565b6103d15760405162461bcd60e51b815260206004820152602360248201527f63616c6c6572206e6f74206f776e6572206f6620746f6b656e2069647320676960448201527f76656e000000000000000000000000000000000000000000000000000000000060648201526084016101f2565b6103e083838360006001610765565b505050565b6103ed61070b565b600254600160a01b900460ff16151560011461044b5760405162461bcd60e51b815260206004820152601160248201527f506175736520416c7265616479206f666600000000000000000000000000000060448201526064016101f2565b6002805460ff60a01b19169055565b61046261070b565b600254600160a01b900460ff16156104bc5760405162461bcd60e51b815260206004820152601160248201527f506175736520416c7265616479206f6e2000000000000000000000000000000060448201526064016101f2565b6002805460ff60a01b1916600160a01b179055565b6104d961070b565b6104e360006108bb565b565b600254600160a01b900460ff16156105555760405162461bcd60e51b815260206004820152602d60248201527f444e4654476f7665726e616e6365204572726f723a2063616e6e6f742070726f60448201526c63657373206f6e20506175736560981b60648201526084016101f2565b600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4954604080516340c10f1960e01b81526001600160a01b03868116600483015260248201869052915191909216926340c10f19926044808201939182900301818387803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b50506002546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590526001600160a01b0390911692506323b872dd91506064016020604051808303816000875af1158015610657573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e09190610ab7565b61068361070b565b6001600160a01b0381166106ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101f2565b610708816108bb565b50565b6000546001600160a01b031633146104e35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101f2565b6001600083600181111561077b5761077b610a11565b600181111561078c5761078c610a11565b8152602081019190915260409081016000205490517fb80f55c90000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b80f55c9906107e69087908790600401610ad9565b600060405180830381600087803b15801561080057600080fd5b505af1158015610814573d6000803e3d6000fd5b505050506001600082600181111561082e5761082e610a11565b600181111561083f5761083f610a11565b8152602081019190915260409081016000205490516340c10f1960e01b81526001600160a01b03878116600483015260016024830152909116906340c10f1990604401600060405180830381600087803b15801561089c57600080fd5b505af11580156108b0573d6000803e3d6000fd5b505050505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461093a57600080fd5b919050565b60008060006040848603121561095457600080fd5b61095d84610923565b9250602084013567ffffffffffffffff8082111561097a57600080fd5b818601915086601f83011261098e57600080fd5b81358181111561099d57600080fd5b8760208260051b85010111156109b257600080fd5b6020830194508093505050509250925092565b600080604083850312156109d857600080fd5b6109e183610923565b946020939093013593505050565b600060208284031215610a0157600080fd5b610a0a82610923565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610a7257600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b0384168152604060208201526000610aae604083018486610a40565b95945050505050565b600060208284031215610ac957600080fd5b81518015158114610a0a57600080fd5b602081526000610aed602083018486610a40565b94935050505056fea26469706673582212204cfc13907b5fcc89608d16271fe2218d78079aaa10980e2a44026c954198638a64736f6c6343000811003300000000000000000000000022fd5f761d1e49b8b56f86d2dba5aaf311d800d60000000000000000000000004d77fe973bbab19939343a77992d640de99217be0000000000000000000000000aefd78a5eee27f98a7a35b089ab7728d6a70d22