60806040526003805462ffffff60a01b1916600160b01b1790555f60088190556009819055600a819055600b819055600c556103e862000049670de0b6b3a76400006029620002a9565b620000559190620002dd565b600d556103e862000070670de0b6b3a76400006029620002a9565b6200007c9190620002dd565b600e5562000095612710670de0b6b3a7640000620002dd565b600f55620000ad670de0b6b3a76400005f19620002f3565b620000ba905f1962000309565b601055600c546011819055600b54601255601355601580546001600160a01b031990811673e829c2a1337371f6b07b0736f1a90f2fafcaa98f1790915560168054909116739754fc64ff0126e958e7e0de632e28338df3b19217905534801562000122575f80fd5b50600180546001600160a01b0319163390811790915560405181905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600160045f620001a66001546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260049093528183208054851660019081179091556016548216845282842080548616821790556015549091168352908220805490931617909155601054906005906200021f3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200028691815260200190565b60405180910390a3506200031f565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620002c357620002c362000295565b92915050565b634e487b7160e01b5f52601260045260245ffd5b5f82620002ee57620002ee620002c9565b500490565b5f82620003045762000304620002c9565b500690565b81810381811115620002c357620002c362000295565b61188f806200032d5f395ff3fe60806040526004361061013f575f3560e01c80633d8af5f2116100b35780638da5cb5b1161006d5780638da5cb5b1461037b57806395d89b41146103985780639d2918fa146103c5578063a9059cbb146103e4578063dd62ed3e14610403578063f2fde38b14610445575f80fd5b80633d8af5f2146102cb5780634bf28fd0146102e05780634f473db0146102ff578063640bd1e01461031e57806370a082311461033d57806383364ea21461035c575f80fd5b806318160ddd1161010457806318160ddd1461022357806320189d281461023d57806323b872dd1461025e5780632fae79371461027d578063313ce5671461029157806335c55bf2146102ac575f80fd5b8063039cc7491461014a57806304d6d79e1461017257806306fdde0314610187578063095ea7b3146101bd5780631694505e146101ec575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015f600d5481565b6040519081526020015b60405180910390f35b34801561017d575f80fd5b5061015f600f5481565b348015610192575f80fd5b506040805180820190915260058152642632b6b7b760d91b60208201525b6040516101699190611520565b3480156101c8575f80fd5b506101dc6101d7366004611582565b610464565b6040519015158152602001610169565b3480156101f7575f80fd5b5060035461020b906001600160a01b031681565b6040516001600160a01b039091168152602001610169565b34801561022e575f80fd5b50670de0b6b3a764000061015f565b348015610248575f80fd5b5061025c610257366004611582565b61047a565b005b348015610269575f80fd5b506101dc6102783660046115ac565b61051c565b348015610288575f80fd5b5061025c610581565b34801561029c575f80fd5b5060405160098152602001610169565b3480156102b7575f80fd5b5060165461020b906001600160a01b031681565b3480156102d6575f80fd5b5061015f600e5481565b3480156102eb575f80fd5b5060145461020b906001600160a01b031681565b34801561030a575f80fd5b5061025c6103193660046115ea565b6105be565b348015610329575f80fd5b5061025c610338366004611601565b6105ed565b348015610348575f80fd5b5061015f610357366004611601565b61064d565b348015610367575f80fd5b5061025c61037636600461161c565b61066e565b348015610386575f80fd5b506001546001600160a01b031661020b565b3480156103a3575f80fd5b506040805180820190915260058152642622a6a7a760d91b60208201526101b0565b3480156103d0575f80fd5b5060155461020b906001600160a01b031681565b3480156103ef575f80fd5b506101dc6103fe366004611582565b61070c565b34801561040e575f80fd5b5061015f61041d36600461169f565b6001600160a01b039182165f9081526020818152604080832093909416825291909152205490565b348015610450575f80fd5b5061025c61045f366004611601565b610718565b5f610470338484610802565b5060015b92915050565b6001546001600160a01b031633146104ad5760405162461bcd60e51b81526004016104a4906116d6565b60405180910390fd5b6001546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36001600160a01b039182165f9081526020818152604080832060018054909616845290915290205580546001600160a01b0319169055565b5f610528848484610923565b610577843361057285604051806060016040528060288152602001611832602891396001600160a01b038a165f908152602081815260408083203384529091529020549190610dd4565b610802565b5060019392505050565b6001546001600160a01b031633146105ab5760405162461bcd60e51b81526004016104a4906116d6565b670de0b6b3a7640000600d819055600e55565b6001546001600160a01b031633146105e85760405162461bcd60e51b81526004016104a4906116d6565b600f55565b6001546001600160a01b031633146106175760405162461bcd60e51b81526004016104a4906116d6565b6003805460ff60a01b1916600160a01b179055601480546001600160a01b039092166001600160a01b0319909216919091179055565b6001600160a01b0381165f9081526005602052604081205461047490610e0c565b6001546001600160a01b031633146106985760405162461bcd60e51b81526004016104a4906116d6565b5f5b82811015610706578160045f8686858181106106b8576106b861170b565b90506020020160208101906106cd9190611601565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055806106fe81611733565b91505061069a565b50505050565b5f610470338484610923565b6001546001600160a01b031633146107425760405162461bcd60e51b81526004016104a4906116d6565b6001600160a01b0381166107a75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a4565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a4565b6001600160a01b0382166108c55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a4565b6001600160a01b038381165f818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109875760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a4565b6001600160a01b0382166109e95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a4565b5f8111610a4a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a4565b6001546001600160a01b03848116911614801590610a7657506001546001600160a01b03838116911614155b15610cd057600354600160a01b900460ff16610b0f576001546001600160a01b03848116911614610b0f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104a4565b600d54811115610b615760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104a4565b6014546001600160a01b03838116911614610be657600e5481610b838461064d565b610b8d919061174b565b10610be65760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104a4565b5f610bf03061064d565b600f54600d54919250821015908210610c0957600d5491505b808015610c205750600354600160a81b900460ff16155b8015610c3a57506014546001600160a01b03868116911614155b8015610c4f5750600354600160b01b900460ff165b8015610c7357506001600160a01b0384165f9081526004602052604090205460ff16155b8015610c9757506001600160a01b0385165f9081526004602052604090205460ff16155b15610ccd57610ca582610e8e565b478015610ccb57610ccb6003610cbc83600261175e565b610cc69190611775565b610ffe565b505b50505b6001600160a01b0383165f9081526004602052604090205460019060ff1680610d1057506001600160a01b0383165f9081526004602052604090205460ff165b80610d4257506014546001600160a01b03858116911614801590610d4257506014546001600160a01b03848116911614155b15610d4e57505f610dc8565b6014546001600160a01b038581169116148015610d7957506003546001600160a01b03848116911614155b15610d8b57600854600b556009546011555b6014546001600160a01b038481169116148015610db657506003546001600160a01b03858116911614155b15610dc857600a54600b55600c546011555b6107068484848461108d565b5f8184841115610df75760405162461bcd60e51b81526004016104a49190611520565b505f610e038486611794565b95945050505050565b5f601054821115610e725760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104a4565b5f610e7b6110bb565b9050610e8783826110dc565b9392505050565b6003805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610ed457610ed461170b565b6001600160a01b03928316602091820292909201810191909152600354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4f91906117a7565b81600181518110610f6257610f6261170b565b6001600160a01b039283166020918202929092010152600354610f889130911684610802565b60035460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fc09085905f908690309042906004016117c2565b5f604051808303815f87803b158015610fd7575f80fd5b505af1158015610fe9573d5f803e3d5ffd5b50506003805460ff60a81b1916905550505050565b60025f61100b8284611775565b6015546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015611043573d5f803e3d5ffd5b506016546001600160a01b03166108fc61105e84600161174b565b611068908461175e565b6040518115909202915f818181858888f19350505050158015610706573d5f803e3d5ffd5b8061109a5761109a61111d565b6110a584848461114a565b8061070657610706601254600b55601354601155565b5f805f6110c661123b565b90925090506110d582826110dc565b9250505090565b5f610e8783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061127a565b600b5415801561112d5750601154155b1561113457565b600b8054601255601180546013555f9182905555565b5f805f805f80611159876112a6565b6001600160a01b038f165f90815260056020526040902054959b5093995091975095509350915061118a90876112fb565b6001600160a01b03808b165f9081526005602052604080822093909355908a16815220546111b8908661133c565b6001600160a01b0389165f908152600560205260409020556111d98161139a565b6111e384836113e0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161122891815260200190565b60405180910390a3505050505050505050565b6010545f908190670de0b6b3a764000061125582826110dc565b82101561127157505060105492670de0b6b3a764000092509050565b90939092509050565b5f818361129a5760405162461bcd60e51b81526004016104a49190611520565b505f610e038486611775565b5f805f805f805f805f6112be8a600b54601154611404565b9250925092505f6112cd6110bb565b90505f805f6112de8e878787611456565b919e509c509a509598509396509194505050505091939550919395565b5f610e8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dd4565b5f80611348838561174b565b905083811015610e875760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a4565b5f6113a36110bb565b90505f6113b083836114a2565b305f908152600560205260409020549091506113cc908261133c565b305f90815260056020526040902055505050565b6010546113ed90836112fb565b6010556007546113fd908261133c565b6007555050565b5f80808061141d606461141789896114a2565b906110dc565b90505f61142f60646114178a896114a2565b90505f611446826114408b866112fb565b906112fb565b9992985090965090945050505050565b5f80808061146488866114a2565b90505f61147188876114a2565b90505f61147e88886114a2565b90505f61148f8261144086866112fb565b939b939a50919850919650505050505050565b5f825f036114b157505f610474565b5f6114bc838561175e565b9050826114c98583611775565b14610e875760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a4565b5f6020808352835180828501525f5b8181101561154b5785810183015185820160400152820161152f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461157f575f80fd5b50565b5f8060408385031215611593575f80fd5b823561159e8161156b565b946020939093013593505050565b5f805f606084860312156115be575f80fd5b83356115c98161156b565b925060208401356115d98161156b565b929592945050506040919091013590565b5f602082840312156115fa575f80fd5b5035919050565b5f60208284031215611611575f80fd5b8135610e878161156b565b5f805f6040848603121561162e575f80fd5b833567ffffffffffffffff80821115611645575f80fd5b818601915086601f830112611658575f80fd5b813581811115611666575f80fd5b8760208260051b850101111561167a575f80fd5b602092830195509350508401358015158114611694575f80fd5b809150509250925092565b5f80604083850312156116b0575f80fd5b82356116bb8161156b565b915060208301356116cb8161156b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016117445761174461171f565b5060010190565b808201808211156104745761047461171f565b80820281158282048414176104745761047461171f565b5f8261178f57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104745761047461171f565b5f602082840312156117b7575f80fd5b8151610e878161156b565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118105784516001600160a01b0316835293830193918301916001016117eb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200158f328cb822c55adb70084131e09b3f3ef919120d4636f207e8b22161654c264736f6c63430008150033