0x608060405234801561000f575f80fd5b50600436106101a1575f3560e01c806366a78e6c116100f3578063a47bd49611610093578063d5abeb011161006e578063d5abeb011461038f578063d5aed6bf146103b6578063dd62ed3e146103c9578063f2fde38b14610401575f80fd5b8063a47bd49614610360578063a9059cbb14610373578063ba16d60014610386575f80fd5b80638da5cb5b116100ce5780638da5cb5b1461033557806395d89b4114610345578063985bdfd1146102e0578063a457c2d71461034d575f80fd5b806366a78e6c146102fc57806370a0823114610305578063715018a61461032d575f80fd5b806327c8f8351161015e5780633950935111610139578063395093511461028e57806347062402146102a157806349bd5a5e146102c85780634c255c97146102e0575f80fd5b806327c8f8351461022d5780632b14ca5614610258578063313ce5671461027f575f80fd5b806306fdde03146101a5578063095ea7b3146101c357806315490ebb146101e6578063158ef93e146101fb57806318160ddd1461020857806323b872dd1461021a575b5f80fd5b6101ad610414565b6040516101ba9190610d62565b60405180910390f35b6101d66101d1366004610dc8565b6104a4565b60405190151581526020016101ba565b6101f96101f4366004610dc8565b6104ba565b005b6006546101d69060ff1681565b6003545b6040519081526020016101ba565b6101d6610228366004610df0565b610507565b600754610240906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b604051601281526020016101ba565b6101d661029c366004610dc8565b6105af565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b6006546102409061010090046001600160a01b031681565b6102e961271081565b60405161ffff90911681526020016101ba565b61020c60095481565b61020c610313366004610e29565b6001600160a01b03165f9081526001602052604090205490565b6101f96105ea565b5f546001600160a01b0316610240565b6101ad61061e565b6101d661035b366004610dc8565b61062d565b6101f961036e366004610e49565b6106c5565b6101d6610381366004610dc8565b610706565b61020c60085481565b61020c7f0000000000000000000000000000000000000000033b2e3c9fd0803ce800000081565b6101f96103c4366004610e29565b610712565b61020c6103d7366004610e69565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6101f961040f366004610e29565b610763565b60606004805461042390610e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461044f90610e9a565b801561049a5780601f106104715761010080835404028352916020019161049a565b820191905f5260205f20905b81548152906001019060200180831161047d57829003601f168201915b5050505050905090565b5f6104b03384846107fd565b5060015b92915050565b5f546001600160a01b031633146104ec5760405162461bcd60e51b81526004016104e390610ed2565b60405180910390fd5b6001600160a01b039091165f908152600a6020526040902055565b5f610513848484610920565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156105975760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104e3565b6105a485338584036107fd565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916104b09185906105e5908690610f1b565b6107fd565b5f546001600160a01b031633146106135760405162461bcd60e51b81526004016104e390610ed2565b61061c5f610b47565b565b60606005805461042390610e9a565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156106ae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104e3565b6106bb33858584036107fd565b5060019392505050565b5f546001600160a01b031633146106ee5760405162461bcd60e51b81526004016104e390610ed2565b60088290556106ff81612328610f2e565b6009555050565b5f6104b0338484610920565b5f546001600160a01b0316331461073b5760405162461bcd60e51b81526004016104e390610ed2565b600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f546001600160a01b0316331461078c5760405162461bcd60e51b81526004016104e390610ed2565b6001600160a01b0381166107f15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6107fa81610b47565b50565b6001600160a01b03831661085f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e3565b6001600160a01b0382166108c05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60065460ff1615156001146109775760405162461bcd60e51b815260206004820181905260248201527f50616368696e6b6f203737373a207472616465206973206e6f74206f70656e2160448201526064016104e3565b60065461010090046001600160a01b031615801561099c575060065460ff1615156001145b15610a20575f546001600160a01b03848116911614806109c857505f546001600160a01b038381169116145b610a205760405162461bcd60e51b8152602060048201526024808201527f50616368696e6b6f203737373a2074726164696e67206973206e6f74207374616044820152631c9d195960e21b60648201526084016104e3565b600654819061010090046001600160a01b031615801590610a4e57505f546001600160a01b03858116911614155b8015610a6757505f546001600160a01b03848116911614155b15610b36576006545f906001600160a01b03610100909104811690861603610a925750600854610aed565b6006546001600160a01b03610100909104811690851603610aed576001600160a01b0385165f908152600a602052604090205415610ae857506001600160a01b0384165f908152600a6020526040902054610aed565b506009545b8015610b34575f612710610b018386610f41565b610b0b9190610f58565b9050610b178185610f2e565b600754909350610b329087906001600160a01b031683610b96565b505b505b610b41848483610b96565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610bfa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e3565b6001600160a01b038216610c5c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e3565b6001600160a01b0383165f9081526001602052604090205481811015610cd35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104e3565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290610d09908490610f1b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d5591815260200190565b60405180910390a3610b41565b5f6020808352835180828501525f5b81811015610d8d57858101830151858201604001528201610d71565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610dc3575f80fd5b919050565b5f8060408385031215610dd9575f80fd5b610de283610dad565b946020939093013593505050565b5f805f60608486031215610e02575f80fd5b610e0b84610dad565b9250610e1960208501610dad565b9150604084013590509250925092565b5f60208284031215610e39575f80fd5b610e4282610dad565b9392505050565b5f8060408385031215610e5a575f80fd5b50508035926020909101359150565b5f8060408385031215610e7a575f80fd5b610e8383610dad565b9150610e9160208401610dad565b90509250929050565b600181811c90821680610eae57607f821691505b602082108103610ecc57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104b4576104b4610f07565b818103818111156104b4576104b4610f07565b80820281158282048414176104b4576104b4610f07565b5f82610f7257634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220bf7ba26ce92a917830799243e465e3ab4150a61a8fdbe60dd47eeefc7d643f4f64736f6c63430008140033
0x60e0604052620000126012600a62000424565b6200002290633b9aca006200043b565b608052600680546001600160a81b0319169055600780546001600160a01b03191661dead1790555f60a081905260c081905260085561232860095534801562000069575f80fd5b5060405180604001604052806008815260200167536166654d61727360c01b81525060405180604001604052806005815260200164244d41525360d81b815250620000c3620000bd620001d860201b60201c565b620001dc565b6004620000d18382620004f4565b506005620000e08282620004f4565b5050608051620001109150339061271090620000fe9082906200043b565b6200010a9190620005bc565b6200022b565b6006805460ff191660011790556040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063c9c65396906044016020604051808303815f875af115801562000186573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ac9190620005dc565b600660016101000a8154816001600160a01b0302191690836001600160a01b031602179055506200061a565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620002865760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f82825462000299919062000604565b90915550506001600160a01b0382165f9081526001602052604081208054839290620002c790849062000604565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200036957815f19048211156200034d576200034d62000315565b808516156200035b57918102915b93841c93908002906200032e565b509250929050565b5f8262000381575060016200041e565b816200038f57505f6200041e565b8160018114620003a85760028114620003b357620003d3565b60019150506200041e565b60ff841115620003c757620003c762000315565b50506001821b6200041e565b5060208310610133831016604e8410600b8410161715620003f8575081810a6200041e565b62000404838362000329565b805f19048211156200041a576200041a62000315565b0290505b92915050565b5f6200043460ff84168362000371565b9392505050565b80820281158282048414176200041e576200041e62000315565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200047e57607f821691505b6020821081036200049d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000310575f81815260208120601f850160051c81016020861015620004cb5750805b601f850160051c820191505b81811015620004ec57828155600101620004d7565b505050505050565b81516001600160401b0381111562000510576200051062000455565b620005288162000521845462000469565b84620004a3565b602080601f8311600181146200055e575f8415620005465750858301515b5f19600386901b1c1916600185901b178555620004ec565b5f85815260208120601f198616915b828110156200058e578886015182559484019460019091019084016200056d565b5085821015620005ac57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f82620005d757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005ed575f80fd5b81516001600160a01b038116811462000434575f80fd5b808201808211156200041e576200041e62000315565b60805160a05160c051610fad620006455f395f61025d01525f6102a601525f6103940152610fad5ff3fe608060405234801561000f575f80fd5b50600436106101a1575f3560e01c806366a78e6c116100f3578063a47bd49611610093578063d5abeb011161006e578063d5abeb011461038f578063d5aed6bf146103b6578063dd62ed3e146103c9578063f2fde38b14610401575f80fd5b8063a47bd49614610360578063a9059cbb14610373578063ba16d60014610386575f80fd5b80638da5cb5b116100ce5780638da5cb5b1461033557806395d89b4114610345578063985bdfd1146102e0578063a457c2d71461034d575f80fd5b806366a78e6c146102fc57806370a0823114610305578063715018a61461032d575f80fd5b806327c8f8351161015e5780633950935111610139578063395093511461028e57806347062402146102a157806349bd5a5e146102c85780634c255c97146102e0575f80fd5b806327c8f8351461022d5780632b14ca5614610258578063313ce5671461027f575f80fd5b806306fdde03146101a5578063095ea7b3146101c357806315490ebb146101e6578063158ef93e146101fb57806318160ddd1461020857806323b872dd1461021a575b5f80fd5b6101ad610414565b6040516101ba9190610d62565b60405180910390f35b6101d66101d1366004610dc8565b6104a4565b60405190151581526020016101ba565b6101f96101f4366004610dc8565b6104ba565b005b6006546101d69060ff1681565b6003545b6040519081526020016101ba565b6101d6610228366004610df0565b610507565b600754610240906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b604051601281526020016101ba565b6101d661029c366004610dc8565b6105af565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b6006546102409061010090046001600160a01b031681565b6102e961271081565b60405161ffff90911681526020016101ba565b61020c60095481565b61020c610313366004610e29565b6001600160a01b03165f9081526001602052604090205490565b6101f96105ea565b5f546001600160a01b0316610240565b6101ad61061e565b6101d661035b366004610dc8565b61062d565b6101f961036e366004610e49565b6106c5565b6101d6610381366004610dc8565b610706565b61020c60085481565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b6101f96103c4366004610e29565b610712565b61020c6103d7366004610e69565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6101f961040f366004610e29565b610763565b60606004805461042390610e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461044f90610e9a565b801561049a5780601f106104715761010080835404028352916020019161049a565b820191905f5260205f20905b81548152906001019060200180831161047d57829003601f168201915b5050505050905090565b5f6104b03384846107fd565b5060015b92915050565b5f546001600160a01b031633146104ec5760405162461bcd60e51b81526004016104e390610ed2565b60405180910390fd5b6001600160a01b039091165f908152600a6020526040902055565b5f610513848484610920565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156105975760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104e3565b6105a485338584036107fd565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916104b09185906105e5908690610f1b565b6107fd565b5f546001600160a01b031633146106135760405162461bcd60e51b81526004016104e390610ed2565b61061c5f610b47565b565b60606005805461042390610e9a565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156106ae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104e3565b6106bb33858584036107fd565b5060019392505050565b5f546001600160a01b031633146106ee5760405162461bcd60e51b81526004016104e390610ed2565b60088290556106ff81612328610f2e565b6009555050565b5f6104b0338484610920565b5f546001600160a01b0316331461073b5760405162461bcd60e51b81526004016104e390610ed2565b600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f546001600160a01b0316331461078c5760405162461bcd60e51b81526004016104e390610ed2565b6001600160a01b0381166107f15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6107fa81610b47565b50565b6001600160a01b03831661085f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e3565b6001600160a01b0382166108c05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60065460ff1615156001146109775760405162461bcd60e51b815260206004820181905260248201527f50616368696e6b6f203737373a207472616465206973206e6f74206f70656e2160448201526064016104e3565b60065461010090046001600160a01b031615801561099c575060065460ff1615156001145b15610a20575f546001600160a01b03848116911614806109c857505f546001600160a01b038381169116145b610a205760405162461bcd60e51b8152602060048201526024808201527f50616368696e6b6f203737373a2074726164696e67206973206e6f74207374616044820152631c9d195960e21b60648201526084016104e3565b600654819061010090046001600160a01b031615801590610a4e57505f546001600160a01b03858116911614155b8015610a6757505f546001600160a01b03848116911614155b15610b36576006545f906001600160a01b03610100909104811690861603610a925750600854610aed565b6006546001600160a01b03610100909104811690851603610aed576001600160a01b0385165f908152600a602052604090205415610ae857506001600160a01b0384165f908152600a6020526040902054610aed565b506009545b8015610b34575f612710610b018386610f41565b610b0b9190610f58565b9050610b178185610f2e565b600754909350610b329087906001600160a01b031683610b96565b505b505b610b41848483610b96565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610bfa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e3565b6001600160a01b038216610c5c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e3565b6001600160a01b0383165f9081526001602052604090205481811015610cd35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104e3565b6001600160a01b038085165f90815260016020526040808220858503905591851681529081208054849290610d09908490610f1b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d5591815260200190565b60405180910390a3610b41565b5f6020808352835180828501525f5b81811015610d8d57858101830151858201604001528201610d71565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610dc3575f80fd5b919050565b5f8060408385031215610dd9575f80fd5b610de283610dad565b946020939093013593505050565b5f805f60608486031215610e02575f80fd5b610e0b84610dad565b9250610e1960208501610dad565b9150604084013590509250925092565b5f60208284031215610e39575f80fd5b610e4282610dad565b9392505050565b5f8060408385031215610e5a575f80fd5b50508035926020909101359150565b5f8060408385031215610e7a575f80fd5b610e8383610dad565b9150610e9160208401610dad565b90509250929050565b600181811c90821680610eae57607f821691505b602082108103610ecc57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104b4576104b4610f07565b818103818111156104b4576104b4610f07565b80820281158282048414176104b4576104b4610f07565b5f82610f7257634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220bf7ba26ce92a917830799243e465e3ab4150a61a8fdbe60dd47eeefc7d643f4f64736f6c63430008140033