60806040525f805460ff60a01b1916600960a01b1790819055620000309060ff600160a01b90910416600a6200054d565b6200004090633b9aca0062000564565b600155604080518082019091526006815265125b9d995cdd60d21b60208201526002906200006f90826200061e565b506040805180820190915260068152651253959154d560d21b60208201526003906200009c90826200061e565b50600580546001600160b01b031916750200000000000000000000000000000000000000dead179055600c6006556107d060075560146008819055600955600a805460ff1916600190811790915554606490620000fb90600262000564565b620001079190620006e6565b600e55620186a06001546200011d9190620006e6565b600f55600e5460105560075460135560085460145560095460155534801562000144575f80fd5b50604051620019d3380380620019d3833981016040819052620001679162000706565b5f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600154600b5f620001bd5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f2093909355600480546001600160a01b031916938516939093178355805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a015593808301939192908290030181865afa15801562000240573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000266919062000706565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d8919062000706565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000323573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000349919062000706565b601280546001600160a01b03199081166001600160a01b0393841617909155601180549091169183169190911790556001600d5f6200038f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556004549091168152600d909252902080549091166001179055620003e75f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200042e91815260200190565b60405180910390a350506200072e565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200049257815f19048211156200047657620004766200043e565b808516156200048457918102915b93841c939080029062000457565b509250929050565b5f82620004aa5750600162000547565b81620004b857505f62000547565b8160018114620004d15760028114620004dc57620004fc565b600191505062000547565b60ff841115620004f057620004f06200043e565b50506001821b62000547565b5060208310610133831016604e8410600b841016171562000521575081810a62000547565b6200052d838362000452565b805f19048211156200054357620005436200043e565b0290505b92915050565b5f6200055d60ff8416836200049a565b9392505050565b80820281158282048414176200054757620005476200043e565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005a757607f821691505b602082108103620005c657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000619575f81815260208120601f850160051c81016020861015620005f45750805b601f850160051c820191505b81811015620006155782815560010162000600565b5050505b505050565b81516001600160401b038111156200063a576200063a6200057e565b62000652816200064b845462000592565b84620005cc565b602080601f83116001811462000688575f8415620006705750858301515b5f19600386901b1c1916600185901b17855562000615565b5f85815260208120601f198616915b82811015620006b85788860151825594840194600190910190840162000697565b5085821015620006d657878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f826200070157634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000717575f80fd5b81516001600160a01b03811681146200055d575f80fd5b611297806200073c5f395ff3fe60806040526004361061013f575f3560e01c806349bd5a5e116100b357806378109e541161006d57806378109e541461037d5780638da5cb5b1461039257806395d89b41146103ae578063a9059cbb146103c2578063dd62ed3e146103e1578063f2fde38b14610425575f80fd5b806349bd5a5e146102ba5780634a74bb02146102d9578063590f897e146102f257806370a0823114610307578063715018a61461033b578063768dc7101461034f575f80fd5b8063220f669611610104578063220f66961461021157806323b872dd14610231578063313ce567146102505780633704fd291461027a57806340b9a54b1461028f578063451929a7146102a4575f80fd5b806306fdde031461014a578063095ea7b31461017457806309fbb48b146101a35780631694505e146101c657806318160ddd146101fd575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e610444565b60405161016b9190610f84565b60405180910390f35b34801561017f575f80fd5b5061019361018e366004610fe6565b6104d4565b604051901515815260200161016b565b3480156101ae575f80fd5b506101b8600f5481565b60405190815260200161016b565b3480156101d1575f80fd5b506011546101e5906001600160a01b031681565b6040516001600160a01b03909116815260200161016b565b348015610208575f80fd5b506001546101b8565b34801561021c575f80fd5b5060125461019390600160a01b900460ff1681565b34801561023c575f80fd5b5061019361024b366004611010565b6104ea565b34801561025b575f80fd5b505f54600160a01b900460ff1660405160ff909116815260200161016b565b348015610285575f80fd5b506101b860065481565b34801561029a575f80fd5b506101b860085481565b3480156102af575f80fd5b506102b8610551565b005b3480156102c5575f80fd5b506012546101e5906001600160a01b031681565b3480156102e4575f80fd5b50600a546101939060ff1681565b3480156102fd575f80fd5b506101b860095481565b348015610312575f80fd5b506101b861032136600461104e565b6001600160a01b03165f908152600b602052604090205490565b348015610346575f80fd5b506102b861059a565b34801561035a575f80fd5b5061019361036936600461104e565b600d6020525f908152604090205460ff1681565b348015610388575f80fd5b506101b8600e5481565b34801561039d575f80fd5b505f546001600160a01b03166101e5565b3480156103b9575f80fd5b5061015e61060b565b3480156103cd575f80fd5b506101936103dc366004610fe6565b61061a565b3480156103ec575f80fd5b506101b86103fb366004611069565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b348015610430575f80fd5b506102b861043f36600461104e565b610626565b606060028054610453906110a0565b80601f016020809104026020016040519081016040528092919081815260200182805461047f906110a0565b80156104ca5780601f106104a1576101008083540402835291602001916104ca565b820191905f5260205f20905b8154815290600101906020018083116104ad57829003601f168201915b5050505050905090565b5f6104e033848461070d565b5060015b92915050565b5f6104f68484846107cd565b61054784336105428560405180606001604052806028815260200161123a602891396001600160a01b038a165f908152600c602090815260408083203384529091529020549190610b2d565b61070d565b5060019392505050565b5f546001600160a01b031633146105835760405162461bcd60e51b815260040161057a906110d8565b60405180910390fd5b5f19600e5561012c60075560036008819055600955565b5f546001600160a01b031633146105c35760405162461bcd60e51b815260040161057a906110d8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b606060038054610453906110a0565b5f6104e03384846107cd565b5f546001600160a01b0316331461064f5760405162461bcd60e51b815260040161057a906110d8565b6001600160a01b0381166106b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057a565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061072d57506001600160a01b03821615155b61076d5760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161057a565b6001600160a01b038381165f818152600c602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b038381169116148015906107f857506004546001600160a01b03838116911614155b801561080d57506001600160a01b0382163014155b801561082757506012546001600160a01b03838116911614155b801561084157506005546001600160a01b03838116911614155b801561085a57505f546001600160a01b03848116911614155b156108e5576001600160a01b0382165f908152600b6020526040902054600e546108848383611121565b11156108e35760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b606482015260840161057a565b505b6001600160a01b0383161580159061090557506001600160a01b03821615155b6109495760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161057a565b5f81116109a65760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161057a565b60055460ff600160a81b82048116600160a01b90920416108015906109cc5750600f5481115b80156109e25750601254600160a01b900460ff16155b8015610a0657506001600160a01b0383165f908152600d602052604090205460ff16155b8015610a1f57506012546001600160a01b038381169116145b8015610a2d5750600a5460ff165b15610a5f576005805460ff60a01b19169055305f908152600b60205260409020548015610a5d57610a5d81610b58565b505b6001600160a01b0383165f908152600d602052604090205460019060ff1680610a9f57506001600160a01b0383165f908152600d602052604090205460ff165b80610ad157506012546001600160a01b03858116911614801590610ad157506012546001600160a01b03848116911614155b15610add57505f610b1b565b6012546001600160a01b0390811690851603610afe57600854600755610b1b565b6012546001600160a01b0390811690841603610b1b576009546007555b610b2784848484610b9d565b50505050565b5f8184841115610b505760405162461bcd60e51b815260040161057a9190610f84565b505050900390565b6012805460ff60a01b1916600160a01b179055610b7481610c0a565b6004544790610b8c906001600160a01b031682610d5a565b50506012805460ff60a01b19169055565b80610baf57610baa610d92565b610be3565b60058054600160a01b900460ff16906014610bc983611134565b91906101000a81548160ff021916908360ff160217905550505b610bee848484610dd6565b80610b2757610b27601354600755601454600855601554600955565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c3d57610c3d611152565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb89190611166565b81600181518110610ccb57610ccb611152565b6001600160a01b039283166020918202929092010152601154610cf1913091168461070d565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d299085905f90869030904290600401611181565b5f604051808303815f87803b158015610d40575f80fd5b505af1158015610d52573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610d8d573d5f803e3d5ffd5b505050565b600754158015610da25750600854155b8015610dae5750600954155b15610db557565b6008805460145560098054601555600780546013555f928390559082905555565b5f80610de183610f16565b6001600160a01b0387165f908152600d6020908152604080832054600e54600b9093529083205494965092945060ff90921692919091111590828015610e245750815b90508015610e3c575f9350610e3985876111f0565b95505b6001600160a01b0388165f908152600b6020526040902054610e5e9087610f51565b6001600160a01b03808a165f908152600b60205260408082209390935590891681522054610e8c9086610f63565b6001600160a01b0388165f908152600b6020526040808220929092553081522054610eb79085610f63565b305f908152600b602090815260409182902092909255518681526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050505050565b5f805f610f396064610f3360075487610f6e90919063ffffffff16565b90610f79565b90505f610f468583610f51565b959194509092505050565b5f610f5c82846111f0565b9392505050565b5f610f5c8284611121565b5f610f5c8284611203565b5f610f5c828461121a565b5f6020808352835180828501525f5b81811015610faf57858101830151858201604001528201610f93565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fe3575f80fd5b50565b5f8060408385031215610ff7575f80fd5b823561100281610fcf565b946020939093013593505050565b5f805f60608486031215611022575f80fd5b833561102d81610fcf565b9250602084013561103d81610fcf565b929592945050506040919091013590565b5f6020828403121561105e575f80fd5b8135610f5c81610fcf565b5f806040838503121561107a575f80fd5b823561108581610fcf565b9150602083013561109581610fcf565b809150509250929050565b600181811c908216806110b457607f821691505b6020821081036110d257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104e4576104e461110d565b5f60ff821660ff81036111495761114961110d565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611176575f80fd5b8151610f5c81610fcf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156111cf5784516001600160a01b0316835293830193918301916001016111aa565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156104e4576104e461110d565b80820281158282048414176104e4576104e461110d565b5f8261123457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d677069f768ffe77ffc2d4234c1c1e81adb7d4c0f361e6dd5ee2adb97c2eb78664736f6c634300081500330000000000000000000000002736eabb13c0fb2e40a5abb8b77a094483060ded