0x60a060405260001960015534801561001657600080fd5b5060405161122f38038061122f8339810160408190526100359161011b565b6001600160a01b03841660805261004b33610065565b6100536100b5565b60029190915560035560045550610166565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146101135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b600019600155565b6000806000806080858703121561013157600080fd5b84516001600160a01b038116811461014857600080fd5b60208601516040870151606090970151919890975090945092505050565b6080516110a061018f60003960008181610203015281816107b80152610c0901526110a06000f3fe6080604052600436106101445760003560e01c80639a8b93b5116100c0578063e36b0b3711610074578063e6fd48bc11610059578063e6fd48bc1461037f578063f2fde38b14610395578063f73d308a146103b557600080fd5b8063e36b0b371461034a578063e67151ae1461035f57600080fd5b8063adf8750c116100a5578063adf8750c146102ee578063b66a0e5d14610322578063ba41b0c61461033757600080fd5b80639a8b93b5146102b8578063a035b1fe146102d857600080fd5b806347ccca0211610117578063639814e0116100fc578063639814e014610262578063715018a6146102785780638da5cb5b1461028d57600080fd5b806347ccca02146101f15780635c474f9e1461024a57600080fd5b806301ffc9a71461014957806328592fc61461017e5780632f74e50e146101b9578063386bfc98146101db575b600080fd5b34801561015557600080fd5b50610169610164366004610d30565b6103d5565b60405190151581526020015b60405180910390f35b34801561018a57600080fd5b506101ab610199366004610da2565b60056020526000908152604090205481565b604051908152602001610175565b3480156101c557600080fd5b506101d96101d4366004610dbd565b61044d565b005b3480156101e757600080fd5b506101ab60045481565b3480156101fd57600080fd5b506102257f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610175565b34801561025657600080fd5b50600154421015610169565b34801561026e57600080fd5b506101ab60035481565b34801561028457600080fd5b506101d96104be565b34801561029957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610225565b3480156102c457600080fd5b506101696102d3366004610ebe565b610531565b3480156102e457600080fd5b506101ab60025481565b3480156102fa57600080fd5b506101ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b34801561032e57600080fd5b506101d9610594565b6101d9610345366004610f15565b610601565b34801561035657600080fd5b506101d9610856565b34801561036b57600080fd5b506101d961037a366004610dbd565b6108e3565b34801561038b57600080fd5b506101ab60015481565b3480156103a157600080fd5b506101d96103b0366004610da2565b61094f565b3480156103c157600080fd5b506101d96103d0366004610dbd565b610a4b565b60007fffffffff000000000000000000000000000000000000000000000000000000008216158061044757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600355565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b0565b61052f6000610ab7565b565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152600090819060340160405160208183030381529060405280519060200120905061058b838683610b2c565b95945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b0565b42600155565b6001544210156106535760405162461bcd60e51b815260206004820152601460248201527f53616c65206e6f7420737461727465642079657400000000000000000000000060448201526064016104b0565b61065b610bdb565b6106686004543383610531565b6106b45760405162461bcd60e51b815260206004820152600f60248201527f4e6f742077686974656c6973746564000000000000000000000000000000000060448201526064016104b0565b600354336000908152600560205260409020546106d2908490610f8b565b11156107205760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420636c61696d206d6f726520706572206164647265737300000060448201526064016104b0565b60025461072d9083610fa3565b34101561077c5760405162461bcd60e51b815260206004820152601660248201527f4e6f7420656e6f7567682045544820746f206d696e740000000000000000000060448201526064016104b0565b6040517f4690521b00000000000000000000000000000000000000000000000000000000815260048101839052336024820152600060448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690634690521b9034906064016000604051808303818588803b15801561081257600080fd5b505af1158015610826573d6000803e3d6000fd5b5050336000908152600560205260408120805487955090935090915061084d908490610f8b565b90915550505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146108bd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600155565b60005473ffffffffffffffffffffffffffffffffffffffff16331461094a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b0565b600155565b60005473ffffffffffffffffffffffffffffffffffffffff1633146109b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b0565b73ffffffffffffffffffffffffffffffffffffffff8116610a3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104b0565b610a4881610ab7565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610ab25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b0565b600455565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081815b8551811015610bd0576000868281518110610b4e57610b4e610fe0565b60200260200101519050808311610b90576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610bbd565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b5080610bc88161100f565b915050610b31565b509092149392505050565b6040517f63c5c5990000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906363c5c5999060240160206040518083038186803b158015610c6057600080fd5b505afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190611048565b61052f5760405162461bcd60e51b815260206004820152604560248201527f4e4654457874656e73696f6e3a207468697320636f6e7472616374206973206e60448201527f6f7420616c6c6f77656420746f206265207573656420617320616e206578746560648201527f6e73696f6e000000000000000000000000000000000000000000000000000000608482015260a4016104b0565b600060208284031215610d4257600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d7257600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d9d57600080fd5b919050565b600060208284031215610db457600080fd5b610d7282610d79565b600060208284031215610dcf57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610e1657600080fd5b8135602067ffffffffffffffff80831115610e3357610e33610dd6565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715610e7657610e76610dd6565b604052938452858101830193838101925087851115610e9457600080fd5b83870191505b84821015610eb357813583529183019190830190610e9a565b979650505050505050565b600080600060608486031215610ed357600080fd5b83359250610ee360208501610d79565b9150604084013567ffffffffffffffff811115610eff57600080fd5b610f0b86828701610e05565b9150509250925092565b60008060408385031215610f2857600080fd5b82359150602083013567ffffffffffffffff811115610f4657600080fd5b610f5285828601610e05565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610f9e57610f9e610f5c565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610fdb57610fdb610f5c565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561104157611041610f5c565b5060010190565b60006020828403121561105a57600080fd5b81518015158114610d7257600080fdfea2646970667358221220fd3d622e19766458fa8d7fd17d215725182ce2c7c932c23c8a1376dead3fad9964736f6c63430008090033000000000000000000000000eceb6268f75174887a233112fc8bb9f8149ce45d94a4e158e8e7b083e1ca33aa7958bbd7202041fd4483cb7ae913a6c9e9985d1300000000000000000000000000000000000000000000000000f8b0a10e4700000000000000000000000000000000000000000000000000000000000000000002