6080604052620000126009600a620002d6565b6200002290633b9aca00620002ee565b60018181556006805461ffff60a01b1916600160a81b1790556009556103e8906200004f906008620002ee565b6200005b919062000308565b600a55620f42406001546008620000739190620002ee565b6200007f919062000308565b600b556000600c819055600d819055600e819055600f819055601081905560118190556012556127106013819055601480546001600160a01b03191673c83e2299a7a69d0faf2c65125cc1b1713803c8ff179055600154620000e39060c8620002ee565b620000ef919062000308565b601555348015620000ff57600080fd5b50600080546001600160a01b031990811633908117835560058054909216737a250d5630b4cf539739df2c5dacb4c659f2488d17909155308252600460209081526040808420805460ff1990811660019081179092556014546001600160a01b031686528286208054821683179055848652828620805490911682179055546002835281852081905590519081529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200032b565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000218578160001904821115620001fc57620001fc620001c1565b808516156200020a57918102915b93841c9390800290620001dc565b509250929050565b6000826200023157506001620002d0565b816200024057506000620002d0565b8160018114620002595760028114620002645762000284565b6001915050620002d0565b60ff841115620002785762000278620001c1565b50506001821b620002d0565b5060208310610133831016604e8410600b8410161715620002a9575081810a620002d0565b620002b58383620001d7565b8060001904821115620002cc57620002cc620001c1565b0290505b92915050565b6000620002e760ff84168362000220565b9392505050565b8082028115828204841417620002d057620002d0620001c1565b6000826200032657634e487b7160e01b600052601260045260246000fd5b500490565b61164a806200033b6000396000f3fe60806040526004361061010d5760003560e01c8063893d20e811610095578063c9567bf911610064578063c9567bf914610320578063d9cf31de14610335578063da0ebc621461034a578063dd62ed3e14610360578063e8078d94146103a657600080fd5b8063893d20e81461028057806395d89b41146102b2578063a8aa1b31146102e0578063a9059cbb1461030057600080fd5b80632f54bf6e116100dc5780632f54bf6e146101d3578063313ce5671461020257806370a082311461021e578063715018a614610254578063751039fc1461026b57600080fd5b806306fdde0314610119578063095ea7b31461016057806318160ddd1461019057806323b872dd146101b357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600c81526b5465746865722042616e636f60a01b60208201525b604051610157919061135c565b60405180910390f35b34801561016c57600080fd5b5061018061017b3660046113c2565b6103ae565b6040519015158152602001610157565b34801561019c57600080fd5b506101a56103c5565b604051908152602001610157565b3480156101bf57600080fd5b506101806101ce3660046113ee565b610436565b3480156101df57600080fd5b506101806101ee36600461142f565b6000546001600160a01b0391821691161490565b34801561020e57600080fd5b5060405160098152602001610157565b34801561022a57600080fd5b506101a561023936600461142f565b6001600160a01b031660009081526002602052604090205490565b34801561026057600080fd5b506102696104a0565b005b34801561027757600080fd5b50610269610518565b34801561028c57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610157565b3480156102be57600080fd5b5060408051808201909152600581526442414e434f60d81b602082015261014a565b3480156102ec57600080fd5b5060065461029a906001600160a01b031681565b34801561030c57600080fd5b5061018061031b3660046113c2565b61054a565b34801561032c57600080fd5b50610269610557565b34801561034157600080fd5b506102696105a6565b34801561035657600080fd5b506101a560155481565b34801561036c57600080fd5b506101a561037b36600461144c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6102696105e1565b60006103bb3384846107b5565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261043192909161042b91906108d9565b906108d9565b905090565b60006104438484846108e5565b6104958433610490856040518060600160405280602881526020016115ed602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190610d21565b6107b5565b5060015b9392505050565b6000546001600160a01b031633146104d35760405162461bcd60e51b81526004016104ca90611485565b60405180910390fd5b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146105425760405162461bcd60e51b81526004016104ca90611485565b600154601555565b60006103bb3384846108e5565b6000546001600160a01b031633146105815760405162461bcd60e51b81526004016104ca90611485565b6006805460ff60a01b1916600160a01b1790556105dc60118190556010819055600d55565b6000546001600160a01b031633146105d05760405162461bcd60e51b81526004016104ca90611485565b60c860118190556010819055600d55565b6000546001600160a01b0316331461060b5760405162461bcd60e51b81526004016104ca90611485565b600560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561065e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068291906114a5565b6001600160a01b031663c9c6539630600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070891906114a5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077991906114a5565b600680546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546107b39034610d4d565b565b6001600160a01b0383166108175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ca565b6001600160a01b0382166108785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ca565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061049982846114d8565b6001600160a01b0383166109495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ca565b6001600160a01b0382166109ab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ca565b6001600160a01b03831660009081526004602052604090205460ff161580156109ed57506001600160a01b03821660009081526004602052604090205460ff16155b15610a3c57600654600160a01b900460ff16610a3c5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b60448201526064016104ca565b6001600160a01b03831660009081526004602052604090205460ff168015610a7157506006546001600160a01b038381169116145b8015610a8657506001600160a01b0383163014155b15610abd576001600160a01b03821660009081526002602052604081208054839290610ab39084906114eb565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610aff57506001600160a01b03821660009081526004602052604090205460ff16155b8015610b1957506006546001600160a01b03838116911614155b8015610b3057506001600160a01b03821661dead14155b15610ba9576015546001600160a01b038316600090815260026020526040902054610b5b9083610e04565b1115610ba95760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104ca565b6006546001600160a01b038381169116148015610bdf57506001600160a01b03831660009081526004602052604090205460ff16155b15610bfd57600160076000828254610bf791906114eb565b90915550505b610c08838383610e10565b15610c3b5730600090815260026020526040902054600a548110610c2b5750600a545b610c3481610ec9565b5060006007555b6001600160a01b038316600090815260026020526040902054610c5e90826108d9565b6001600160a01b038416600090815260026020526040812091909155610c848484611052565b610c8e5781610c99565b610c99848484611098565b6001600160a01b038416600090815260026020526040902054909150610cbf9082610e04565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d139085815260200190565b60405180910390a350505050565b60008184841115610d455760405162461bcd60e51b81526004016104ca919061135c565b505050900390565b600554610d659030906001600160a01b0316846107b5565b6005546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610dd8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dfd91906114fe565b5050505050565b600061049982846114eb565b600b5430600090815260026020526040812054600854919280851015929110159060ff16158015610e4a5750600654600160a81b900460ff165b8015610e5f5750600654600160a01b900460ff165b8015610e685750815b8015610e8d57506001600160a01b03861660009081526004602052604090205460ff16155b8015610ea657506006546001600160a01b038681169116145b8015610eb6575060095460075410155b8015610ebf5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c54600093610f0993600293610f03939192610efd928391610e04565b90610e04565b9061119f565b90506000610f2c82610f26600c548661119f90919063ffffffff16565b906111ab565b90506000610f3a84836108d9565b905047610f46826111b7565b6000610f5247836108d9565b90506000610f75610f6e600c54886108d990919063ffffffff16565b83906111ab565b90506000610f8e600c548361119f90919063ffffffff16565b90508015610fa057610fa08682610d4d565b600d54600090610fb590610f0385600261119f565b90508015610ff9576014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610ff7573d6000803e3d6000fd5b505b47801561103c576014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561103a573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156104995750506001600160a01b031660009081526004602052604090205460ff1615919050565b6000806110a58585611311565b11156111985760006110c86110ba8686611311565b601354610f039086906111ab565b306000908152600260205260409020549091506110e59082610e04565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111369085815260200190565b60405180910390a36000600f5411801561115a5750600f546111588686611311565b115b15611186576111863061dead611181600f54610f03601354896111ab90919063ffffffff16565b6108e5565b61119083826108d9565b915050610499565b5092915050565b6000610499828461152c565b60006104998284611543565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111ec576111ec611565565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126991906114a5565b8160018151811061127c5761127c611565565b6001600160a01b0392831660209182029290920101526005546112a291309116846107b5565b60055460405163791ac94760e01b81526001600160a01b039091169063791ac947906112db90859060009086903090429060040161157b565b600060405180830381600087803b1580156112f557600080fd5b505af1158015611309573d6000803e3d6000fd5b505050505050565b6006546000906001600160a01b039081169083160361133357506011546103bf565b6006546001600160a01b039081169084160361135257506010546103bf565b5060125492915050565b600060208083528351808285015260005b818110156113895785810183015185820160400152820161136d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146113bf57600080fd5b50565b600080604083850312156113d557600080fd5b82356113e0816113aa565b946020939093013593505050565b60008060006060848603121561140357600080fd5b833561140e816113aa565b9250602084013561141e816113aa565b929592945050506040919091013590565b60006020828403121561144157600080fd5b8135610499816113aa565b6000806040838503121561145f57600080fd5b823561146a816113aa565b9150602083013561147a816113aa565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6000602082840312156114b757600080fd5b8151610499816113aa565b634e487b7160e01b600052601160045260246000fd5b818103818111156103bf576103bf6114c2565b808201808211156103bf576103bf6114c2565b60008060006060848603121561151357600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176103bf576103bf6114c2565b60008261156057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115cb5784516001600160a01b0316835293830193918301916001016115a6565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e732652a5aea24fea3786764ace0d9b4b686ccf7505d55dd3e6e26c7f6cd223364736f6c63430008130033