6080604052600680546001600160a01b0319908116331790915560078054909116733b4ef6b52ba4278b56c787bfa5d0421d5122ba2d1790556001600855600d60098181556000600a818155600b829055600c81905592839055600e839055600f5560649161006e9190610383565b61007c90633b9aca00610399565b610087906002610399565b61009191906103b0565b60105560646100a26009600a610383565b6100b090633b9aca00610399565b6100bb906002610399565b6100c591906103b0565b601155620186a06100d86009600a610383565b6100e690633b9aca00610399565b6100f1906001610399565b6100fb91906103b0565b601255606461010c6009600a610383565b61011a90633b9aca00610399565b610125906001610399565b61012f91906103b0565b6013556015805462ffffff60a81b191690556000601681905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754600580546001600160a01b0319166001600160a01b039092169190911790556001600360006101c16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600554909116815260039092529020805490911660011790556102146009600a610383565b61022290633b9aca00610399565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102636009600a610383565b61027190633b9aca00610399565b60405190815260200160405180910390a36103d2565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156102d85781600019048211156102be576102be610287565b808516156102cb57918102915b93841c93908002906102a2565b509250929050565b6000826102ef5750600161037d565b816102fc5750600061037d565b8160018114610312576002811461031c57610338565b600191505061037d565b60ff84111561032d5761032d610287565b50506001821b61037d565b5060208310610133831016604e8410600b841016171561035b575081810a61037d565b610365838361029d565b806000190482111561037957610379610287565b0290505b92915050565b600061039260ff8416836102e0565b9392505050565b808202811582820484141761037d5761037d610287565b6000826103cd57634e487b7160e01b600052601260045260246000fd5b500490565b6116e2806103e16000396000f3fe6080604052600436106100e15760003560e01c8063751039fc1161007f57806395d89b411161005957806395d89b4114610262578063a9059cbb14610293578063c9567bf9146102b3578063dd62ed3e146102c857600080fd5b8063751039fc1461021057806386a51a4f146102255780638da5cb5b1461023a57600080fd5b806323b872dd116100bb57806323b872dd14610187578063313ce567146101a757806370a08231146101c3578063715018a6146101f957600080fd5b806306fdde03146100ed578063095ea7b31461013457806318160ddd1461016457600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b5060408051808201909152600c81526b436172616d656c6f20446f6760a01b60208201525b60405161012b91906112d3565b60405180910390f35b34801561014057600080fd5b5061015461014f366004611337565b61030e565b604051901515815260200161012b565b34801561017057600080fd5b50610179610325565b60405190815260200161012b565b34801561019357600080fd5b506101546101a2366004611363565b610346565b3480156101b357600080fd5b506040516009815260200161012b565b3480156101cf57600080fd5b506101796101de3660046113a4565b6001600160a01b031660009081526002602052604090205490565b34801561020557600080fd5b5061020e6103bd565b005b34801561021c57600080fd5b5061020e61043a565b34801561023157600080fd5b5061020e6104a0565b34801561024657600080fd5b506000546040516001600160a01b03909116815260200161012b565b34801561026e57600080fd5b50604080518082019091526008815267434152414d454c4f60c01b602082015261011e565b34801561029f57600080fd5b506101546102ae366004611337565b610507565b3480156102bf57600080fd5b5061020e610514565b3480156102d457600080fd5b506101796102e33660046113c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600061031b338484610855565b5060015b92915050565b60006103336009600a6114f4565b61034190633b9aca00611503565b905090565b6000610353848484610979565b610361846001846000610ec3565b6103b384336103ae85604051806060016040528060288152602001611685602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190610f32565b610855565b5060019392505050565b6000546001600160a01b031633146103f05760405162461bcd60e51b81526004016103e79061151a565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104645760405162461bcd60e51b81526004016103e79061151a565b6104706009600a6114f4565b61047e90633b9aca00611503565b60105561048d6009600a6114f4565b61049b90633b9aca00611503565b601155565b6000546001600160a01b031633146104ca5760405162461bcd60e51b81526004016103e79061151a565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610504573d6000803e3d6000fd5b50565b600061031b338484610979565b6000546001600160a01b0316331461053e5760405162461bcd60e51b81526004016103e79061151a565b601554600160a01b900460ff16156105985760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103e7565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105e19030906105d36009600a6114f4565b6103ae90633b9aca00611503565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610634573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610658919061154f565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de919061154f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f919061154f565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610797816001600160a01b031660009081526002602052604090205490565b6000806107ac6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610814573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610839919061156c565b50506015805462ff00ff60a01b19166201000160a01b17905550565b6001600160a01b0383166108b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e7565b6001600160a01b0382166109185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e7565b6001600160a01b038216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e7565b60008111610aa15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e7565b600080546001600160a01b03858116911614801590610ace57506000546001600160a01b03848116911614155b15610d8057610aff6064610af9600c54600f5411610aee57600854610af2565b600a545b8590610f6c565b90610ff5565b6015549091506001600160a01b038581169116148015610b2d57506014546001600160a01b03848116911614155b8015610b5257506001600160a01b03831660009081526003602052604090205460ff16155b15610c3a57601054821115610ba95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478546f6b656e732e0000000000000060448201526064016103e7565b60115482610bcc856001600160a01b031660009081526002602052604090205490565b610bd6919061159a565b1115610c245760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103e7565b600f8054906000610c34836115ad565b91905055505b6015546001600160a01b038481169116148015610c6057506001600160a01b0384163014155b15610c9857610c8a6064610af9600d54600f5411610c8057600954610af2565b600b548590610f6c565b905047610c9647611037565b505b30600090815260026020526040902054601554600160a81b900460ff16158015610ccf57506015546001600160a01b038581169116145b8015610ce45750601554600160b01b900460ff165b8015610cf1575060125481115b8015610d005750600e54600f54115b15610d7e57601554600160b81b900460ff1615610d5957436016541015610d5457610d3e610d3984610d3484601354611075565b611075565b61108a565b478015610d4e57610d4e47611037565b50436016555b610d7e565b610d6c610d3984610d3484601354611075565b478015610d7c57610d7c47611037565b505b505b8015610dfa5730600090815260026020526040902054610da09082611204565b30600081815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610df19085815260200190565b60405180910390a35b6001600160a01b038416600090815260026020526040902054610e1d9083611263565b6001600160a01b038516600090815260026020526040902055610e62610e438383611263565b6001600160a01b03851660009081526002602052604090205490611204565b6001600160a01b0380851660008181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610eac8585611263565b60405190815260200160405180910390a350505050565b60ff8116158015610edf57506006546001600160a01b03163314155b8015610ef657506007546001600160a01b03163314155b610f2c57610f0760ff8216836115c6565b6001600160a01b03851660009081526001602090815260408083203384529091529020555b50505050565b60008184841115610f565760405162461bcd60e51b81526004016103e791906112d3565b506000610f6384866115c6565b95945050505050565b600082600003610f7e5750600061031f565b6000610f8a8385611503565b905082610f9785836115d9565b14610fee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e7565b9392505050565b6000610fee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112a5565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611071573d6000803e3d6000fd5b5050565b60008183116110845782610fee565b50919050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110d2576110d26115fb565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561112b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114f919061154f565b81600181518110611162576111626115fb565b6001600160a01b0392831660209182029290920101526014546111889130911684610855565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c1908590600090869030904290600401611611565b600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b600080611211838561159a565b905083811015610fee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e7565b6000610fee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f32565b600081836112c65760405162461bcd60e51b81526004016103e791906112d3565b506000610f6384866115d9565b60006020808352835180602085015260005b81811015611301578581018301518582016040015282016112e5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461050457600080fd5b6000806040838503121561134a57600080fd5b823561135581611322565b946020939093013593505050565b60008060006060848603121561137857600080fd5b833561138381611322565b9250602084013561139381611322565b929592945050506040919091013590565b6000602082840312156113b657600080fd5b8135610fee81611322565b600080604083850312156113d457600080fd5b82356113df81611322565b915060208301356113ef81611322565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561144b578160001904821115611431576114316113fa565b8085161561143e57918102915b93841c9390800290611415565b509250929050565b6000826114625750600161031f565b8161146f5750600061031f565b8160018114611485576002811461148f576114ab565b600191505061031f565b60ff8411156114a0576114a06113fa565b50506001821b61031f565b5060208310610133831016604e8410600b84101617156114ce575081810a61031f565b6114d88383611410565b80600019048211156114ec576114ec6113fa565b029392505050565b6000610fee60ff841683611453565b808202811582820484141761031f5761031f6113fa565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561156157600080fd5b8151610fee81611322565b60008060006060848603121561158157600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561031f5761031f6113fa565b6000600182016115bf576115bf6113fa565b5060010190565b8181038181111561031f5761031f6113fa565b6000826115f657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156116635784516001600160a01b03168352938301939183019160010161163e565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205079a5c1cac7858af67730d4baaa4bf42bf50dee24bb052bcfa9d84818d7bef064736f6c63430008190033