0x6080604052600436106101bb5760003560e01c80638ebfc796116100ec578063a9059cbb1161008a578063e01af92c11610064578063e01af92c14610546578063e96fada214610566578063f1d5f51714610586578063f887ea40146105a657600080fd5b8063a9059cbb146104c0578063b37fd190146104e0578063dd62ed3e1461050057600080fd5b80639d0014b1116100c65780639d0014b114610440578063a2a957bb14610460578063a4b45c0014610480578063a8aa1b31146104a057600080fd5b80638ebfc796146103d457806395d89b41146103f45780639acb773e1461042057600080fd5b8063571ac8b01161015957806370a082311161013357806370a0823114610335578063715018a61461036b578063764d72bf14610382578063893d20e8146103a257600080fd5b8063571ac8b0146102de5780636c0a24eb146102fe5780636ddd17131461031457600080fd5b806318160ddd1161019557806318160ddd1461025e57806323b872dd146102735780632f54bf6e14610293578063313ce567146102c257600080fd5b80630445b667146101c757806306fdde03146101f0578063095ea7b31461022e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd60145481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5060408051808201909152600c81526b29b0b73a309026b0b93b34b760a11b60208201525b6040516101e7919061169e565b34801561023a57600080fd5b5061024e61024936600461170b565b6105c6565b60405190151581526020016101e7565b34801561026a57600080fd5b506003546101dd565b34801561027f57600080fd5b5061024e61028e366004611737565b610633565b34801561029f57600080fd5b5061024e6102ae366004611778565b6000546001600160a01b0391821691161490565b3480156102ce57600080fd5b50604051600981526020016101e7565b3480156102ea57600080fd5b5061024e6102f9366004611778565b6106f5565b34801561030a57600080fd5b506101dd60045481565b34801561032057600080fd5b5060135461024e90600160a01b900460ff1681565b34801561034157600080fd5b506101dd610350366004611778565b6001600160a01b031660009081526005602052604090205490565b34801561037757600080fd5b50610380610703565b005b34801561038e57600080fd5b5061038061039d366004611778565b61077b565b3480156103ae57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b3480156103e057600080fd5b506103806103ef3660046117a3565b6107de565b34801561040057600080fd5b5060408051808201909152600381526253544d60e81b6020820152610221565b34801561042c57600080fd5b5061038061043b3660046117a3565b610833565b34801561044c57600080fd5b5061038061045b3660046117dc565b610888565b34801561046c57600080fd5b5061038061047b3660046117f5565b6108de565b34801561048c57600080fd5b5061038061049b366004611827565b610974565b3480156104ac57600080fd5b506013546103bc906001600160a01b031681565b3480156104cc57600080fd5b5061024e6104db36600461170b565b6109cc565b3480156104ec57600080fd5b506103806104fb366004611855565b6109d9565b34801561050c57600080fd5b506101dd61051b366004611827565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561055257600080fd5b50610380610561366004611897565b610b8e565b34801561057257600080fd5b506010546103bc906001600160a01b031681565b34801561059257600080fd5b506103806105a13660046117dc565b610bd6565b3480156105b257600080fd5b506012546103bc906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106219086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146106e0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546106bb918490610c21565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6106eb848484610c5b565b90505b9392505050565b600061062d826000196105c6565b6000546001600160a01b031633146107365760405162461bcd60e51b815260040161072d906118b4565b60405180910390fd5b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146107a55760405162461bcd60e51b815260040161072d906118b4565b6040516001600160a01b038216904780156108fc02916000818181858888f193505050501580156107da573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146108085760405162461bcd60e51b815260040161072d906118b4565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461085d5760405162461bcd60e51b815260040161072d906118b4565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161072d906118b4565b6127106003546108c291906118ea565b6108cd90600361190c565b8110156108d957600080fd5b601455565b6000546001600160a01b031633146109085760405162461bcd60e51b815260040161072d906118b4565b6009849055600a839055600b829055600c819055610926838561192b565b600d55610933818361192b565b600e55600f5461094490601e61190c565b600d54111561095257600080fd5b600f5461096090601e61190c565b600e54111561096e57600080fd5b50505050565b6000546001600160a01b0316331461099e5760405162461bcd60e51b815260040161072d906118b4565b601080546001600160a01b039384166001600160a01b03199182161790915560118054929093169116179055565b60006106ee338484610c5b565b6000546001600160a01b03163314610a035760405162461bcd60e51b815260040161072d906118b4565b600082118015610a14575060648211155b610a605760405162461bcd60e51b815260206004820152601a60248201527f496e76616c69642070657263656e74616765206e756d6265722e000000000000604482015260640161072d565b6001600160a01b038316301415610a7657600080fd5b6040516370a0823160e01b81523060048201526001600160a01b0384169063a9059cbb908390606490869085906370a082319060240160206040518083038186803b158015610ac457600080fd5b505afa158015610ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afc9190611943565b610b06919061190c565b610b1091906118ea565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e919061195c565b6000546001600160a01b03163314610bb85760405162461bcd60e51b815260040161072d906118b4565b60138054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610c005760405162461bcd60e51b815260040161072d906118b4565b6103e8600354610c1091906118ea565b811015610c1c57600080fd5b600455565b60008184841115610c455760405162461bcd60e51b815260040161072d919061169e565b506000610c528486611979565b95945050505050565b60155460009060ff1615610c7b57610c74848484610eea565b90506106ee565b6013546001600160a01b03848116911614801590610ca757506002546001600160a01b03848116911614155b15610d52576001600160a01b03831660009081526008602052604090205460ff1680610cf857506004546001600160a01b038416600090815260056020526040902054610cf590849061192b565b11155b610d525760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161072d565b610d5a610fd0565b15610da957601354610da9906001600160a01b03868116911614610d8057600b54610d84565b6009545b6013546001600160a01b03878116911614610da157600e54611028565b600d54611028565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610dfb918490610c21565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1615610e305782610e5d565b601354610e5d90869085906001600160a01b03808416911614610e5557600e5461144a565b600d5461144a565b6001600160a01b038516600090815260056020526040902054909150610e83908261150e565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed79085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610f3b918490610c21565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610f6a908361150e565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fbe9086815260200190565b60405180910390a35060019392505050565b6013546000906001600160a01b03163314801590610ff1575060155460ff16155b80156110065750601354600160a01b900460ff165b801561102357506014543060009081526005602052604090205410155b905090565b6015805460ff19166001179055601454600082611045858461190c565b11611051576000611065565b6110658361105f848761156d565b906115ec565b90506000611073838361162e565b9050600060028311611086576000611091565b6110916002846118ea565b905061109d838261162e565b604080516002808252606082018352929550600092909160208301908036833701905050905030816000815181106110d7576110d7611990565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561112b57600080fd5b505afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116391906119a6565b8160018151811061117657611176611990565b6001600160a01b03909216602092830291909101909101524782156112015760125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ce9086906000908790309042906004016119c3565b600060405180830381600087803b1580156111e857600080fd5b505af11580156111fc573d6000803e3d6000fd5b505050505b600061120d478361162e565b905060008611801561121f5750600081115b156113055760125460115460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c89190611a34565b505060408051838152602081018990527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b479150841561137a5760125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113479088906000908890309042906004016119c3565b600060405180830381600087803b15801561136157600080fd5b505af1158015611375573d6000803e3d6000fd5b505050505b6000611386478461162e565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146113dd576040519150601f19603f3d011682016040523d82523d6000602084013e6113e2565b606091505b50509050806114335760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161072d565b50506015805460ff19169055505050505050505050565b600080600f54606461145c919061190c565b611466848661190c565b1161147257600061148e565b61148e600f546064611484919061190c565b61105f868661156d565b306000908152600560205260409020549091506114ab908261150e565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114fc9085815260200190565b60405180910390a3610c52848261162e565b60008061151b838561192b565b9050838110156106ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072d565b60008261157c5750600061062d565b6000611588838561190c565b90508261159585836118ea565b146106ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072d565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611670565b60006106ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c21565b600081836116915760405162461bcd60e51b815260040161072d919061169e565b506000610c5284866118ea565b600060208083528351808285015260005b818110156116cb578581018301518582016040015282016116af565b818111156116dd576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461170857600080fd5b50565b6000806040838503121561171e57600080fd5b8235611729816116f3565b946020939093013593505050565b60008060006060848603121561174c57600080fd5b8335611757816116f3565b92506020840135611767816116f3565b929592945050506040919091013590565b60006020828403121561178a57600080fd5b81356106ee816116f3565b801515811461170857600080fd5b600080604083850312156117b657600080fd5b82356117c1816116f3565b915060208301356117d181611795565b809150509250929050565b6000602082840312156117ee57600080fd5b5035919050565b6000806000806080858703121561180b57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561183a57600080fd5b8235611845816116f3565b915060208301356117d1816116f3565b60008060006060848603121561186a57600080fd5b8335611875816116f3565b925060208401359150604084013561188c816116f3565b809150509250925092565b6000602082840312156118a957600080fd5b81356106ee81611795565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261190757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611926576119266118d4565b500290565b6000821982111561193e5761193e6118d4565b500190565b60006020828403121561195557600080fd5b5051919050565b60006020828403121561196e57600080fd5b81516106ee81611795565b60008282101561198b5761198b6118d4565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119b857600080fd5b81516106ee816116f3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a135784516001600160a01b0316835293830193918301916001016119ee565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a4957600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122085b284a6033831d7906cfc4a3de61abe9fb8627306bb1660af926874307e401364736f6c63430008090033
0x6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a6200052b565b62000058906305f5e10062000543565b60035560636003546200006c919062000565565b600455606460095560c8600a556064600b55610578600c55600a5460095462000096919062000588565b600d55600c54600b54620000ab919062000588565b600e556064600f55601080546001600160a01b0319908116730e96423b0ad3941467bec97f75f87a2bc800b7559081179092556011805490911690911790556013805460ff60a01b1916600160a01b1790556003546200010f906103e89062000565565b6200011c90600462000543565b6014553480156200012c57600080fd5b5060008054336001600160a01b031991821617909155600154601280546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200019457600080fd5b505afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf9190620005a3565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022c57600080fd5b505afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002679190620005a3565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002af57600080fd5b505af1158015620002c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ea9190620005a3565b601380546001600160a01b0319166001600160a01b0392831617905530600081815260066020908152604080832060125486168452825280832060001990558254600783527f12418cca5663a05c7f27c08f27e53b861b7f8229fac9560dc5f0502fc6411602805460ff19908116600190811790925591871680865283862080548416831790556008855283862080548416831790557fe5491769fa2a647577a2c5f7d12a129193425a0da2564386bf90232f00b65dd1805484168317905560025490971685528285208054831682179055948452818420805490911690941790935560035484835260058252838320819055925192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620005ce565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200046d57816000190482111562000451576200045162000416565b808516156200045f57918102915b93841c939080029062000431565b509250929050565b600082620004865750600162000525565b81620004955750600062000525565b8160018114620004ae5760028114620004b957620004d9565b600191505062000525565b60ff841115620004cd57620004cd62000416565b50506001821b62000525565b5060208310610133831016604e8410600b8410161715620004fe575081810a62000525565b6200050a83836200042c565b806000190482111562000521576200052162000416565b0290505b92915050565b60006200053c60ff84168362000475565b9392505050565b600081600019048311821515161562000560576200056062000416565b500290565b6000826200058357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200059e576200059e62000416565b500190565b600060208284031215620005b657600080fd5b81516001600160a01b03811681146200053c57600080fd5b611a9880620005de6000396000f3fe6080604052600436106101bb5760003560e01c80638ebfc796116100ec578063a9059cbb1161008a578063e01af92c11610064578063e01af92c14610546578063e96fada214610566578063f1d5f51714610586578063f887ea40146105a657600080fd5b8063a9059cbb146104c0578063b37fd190146104e0578063dd62ed3e1461050057600080fd5b80639d0014b1116100c65780639d0014b114610440578063a2a957bb14610460578063a4b45c0014610480578063a8aa1b31146104a057600080fd5b80638ebfc796146103d457806395d89b41146103f45780639acb773e1461042057600080fd5b8063571ac8b01161015957806370a082311161013357806370a0823114610335578063715018a61461036b578063764d72bf14610382578063893d20e8146103a257600080fd5b8063571ac8b0146102de5780636c0a24eb146102fe5780636ddd17131461031457600080fd5b806318160ddd1161019557806318160ddd1461025e57806323b872dd146102735780632f54bf6e14610293578063313ce567146102c257600080fd5b80630445b667146101c757806306fdde03146101f0578063095ea7b31461022e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd60145481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5060408051808201909152600c81526b29b0b73a309026b0b93b34b760a11b60208201525b6040516101e7919061169e565b34801561023a57600080fd5b5061024e61024936600461170b565b6105c6565b60405190151581526020016101e7565b34801561026a57600080fd5b506003546101dd565b34801561027f57600080fd5b5061024e61028e366004611737565b610633565b34801561029f57600080fd5b5061024e6102ae366004611778565b6000546001600160a01b0391821691161490565b3480156102ce57600080fd5b50604051600981526020016101e7565b3480156102ea57600080fd5b5061024e6102f9366004611778565b6106f5565b34801561030a57600080fd5b506101dd60045481565b34801561032057600080fd5b5060135461024e90600160a01b900460ff1681565b34801561034157600080fd5b506101dd610350366004611778565b6001600160a01b031660009081526005602052604090205490565b34801561037757600080fd5b50610380610703565b005b34801561038e57600080fd5b5061038061039d366004611778565b61077b565b3480156103ae57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b3480156103e057600080fd5b506103806103ef3660046117a3565b6107de565b34801561040057600080fd5b5060408051808201909152600381526253544d60e81b6020820152610221565b34801561042c57600080fd5b5061038061043b3660046117a3565b610833565b34801561044c57600080fd5b5061038061045b3660046117dc565b610888565b34801561046c57600080fd5b5061038061047b3660046117f5565b6108de565b34801561048c57600080fd5b5061038061049b366004611827565b610974565b3480156104ac57600080fd5b506013546103bc906001600160a01b031681565b3480156104cc57600080fd5b5061024e6104db36600461170b565b6109cc565b3480156104ec57600080fd5b506103806104fb366004611855565b6109d9565b34801561050c57600080fd5b506101dd61051b366004611827565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561055257600080fd5b50610380610561366004611897565b610b8e565b34801561057257600080fd5b506010546103bc906001600160a01b031681565b34801561059257600080fd5b506103806105a13660046117dc565b610bd6565b3480156105b257600080fd5b506012546103bc906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106219086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383166000908152600660209081526040808320338452909152812054600019146106e0576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526006825283812033825290915291909120546106bb918490610c21565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6106eb848484610c5b565b90505b9392505050565b600061062d826000196105c6565b6000546001600160a01b031633146107365760405162461bcd60e51b815260040161072d906118b4565b60405180910390fd5b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146107a55760405162461bcd60e51b815260040161072d906118b4565b6040516001600160a01b038216904780156108fc02916000818181858888f193505050501580156107da573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146108085760405162461bcd60e51b815260040161072d906118b4565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461085d5760405162461bcd60e51b815260040161072d906118b4565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260040161072d906118b4565b6127106003546108c291906118ea565b6108cd90600361190c565b8110156108d957600080fd5b601455565b6000546001600160a01b031633146109085760405162461bcd60e51b815260040161072d906118b4565b6009849055600a839055600b829055600c819055610926838561192b565b600d55610933818361192b565b600e55600f5461094490601e61190c565b600d54111561095257600080fd5b600f5461096090601e61190c565b600e54111561096e57600080fd5b50505050565b6000546001600160a01b0316331461099e5760405162461bcd60e51b815260040161072d906118b4565b601080546001600160a01b039384166001600160a01b03199182161790915560118054929093169116179055565b60006106ee338484610c5b565b6000546001600160a01b03163314610a035760405162461bcd60e51b815260040161072d906118b4565b600082118015610a14575060648211155b610a605760405162461bcd60e51b815260206004820152601a60248201527f496e76616c69642070657263656e74616765206e756d6265722e000000000000604482015260640161072d565b6001600160a01b038316301415610a7657600080fd5b6040516370a0823160e01b81523060048201526001600160a01b0384169063a9059cbb908390606490869085906370a082319060240160206040518083038186803b158015610ac457600080fd5b505afa158015610ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afc9190611943565b610b06919061190c565b610b1091906118ea565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e919061195c565b6000546001600160a01b03163314610bb85760405162461bcd60e51b815260040161072d906118b4565b60138054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610c005760405162461bcd60e51b815260040161072d906118b4565b6103e8600354610c1091906118ea565b811015610c1c57600080fd5b600455565b60008184841115610c455760405162461bcd60e51b815260040161072d919061169e565b506000610c528486611979565b95945050505050565b60155460009060ff1615610c7b57610c74848484610eea565b90506106ee565b6013546001600160a01b03848116911614801590610ca757506002546001600160a01b03848116911614155b15610d52576001600160a01b03831660009081526008602052604090205460ff1680610cf857506004546001600160a01b038416600090815260056020526040902054610cf590849061192b565b11155b610d525760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161072d565b610d5a610fd0565b15610da957601354610da9906001600160a01b03868116911614610d8057600b54610d84565b6009545b6013546001600160a01b03878116911614610da157600e54611028565b600d54611028565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260059091529190912054610dfb918490610c21565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff1615610e305782610e5d565b601354610e5d90869085906001600160a01b03808416911614610e5557600e5461144a565b600d5461144a565b6001600160a01b038516600090815260056020526040902054909150610e83908261150e565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ed79085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610f3b918490610c21565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610f6a908361150e565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fbe9086815260200190565b60405180910390a35060019392505050565b6013546000906001600160a01b03163314801590610ff1575060155460ff16155b80156110065750601354600160a01b900460ff165b801561102357506014543060009081526005602052604090205410155b905090565b6015805460ff19166001179055601454600082611045858461190c565b11611051576000611065565b6110658361105f848761156d565b906115ec565b90506000611073838361162e565b9050600060028311611086576000611091565b6110916002846118ea565b905061109d838261162e565b604080516002808252606082018352929550600092909160208301908036833701905050905030816000815181106110d7576110d7611990565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561112b57600080fd5b505afa15801561113f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116391906119a6565b8160018151811061117657611176611990565b6001600160a01b03909216602092830291909101909101524782156112015760125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ce9086906000908790309042906004016119c3565b600060405180830381600087803b1580156111e857600080fd5b505af11580156111fc573d6000803e3d6000fd5b505050505b600061120d478361162e565b905060008611801561121f5750600081115b156113055760125460115460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c89190611a34565b505060408051838152602081018990527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b479150841561137a5760125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113479088906000908890309042906004016119c3565b600060405180830381600087803b15801561136157600080fd5b505af1158015611375573d6000803e3d6000fd5b505050505b6000611386478461162e565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146113dd576040519150601f19603f3d011682016040523d82523d6000602084013e6113e2565b606091505b50509050806114335760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161072d565b50506015805460ff19169055505050505050505050565b600080600f54606461145c919061190c565b611466848661190c565b1161147257600061148e565b61148e600f546064611484919061190c565b61105f868661156d565b306000908152600560205260409020549091506114ab908261150e565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114fc9085815260200190565b60405180910390a3610c52848261162e565b60008061151b838561192b565b9050838110156106ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072d565b60008261157c5750600061062d565b6000611588838561190c565b90508261159585836118ea565b146106ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072d565b60006106ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611670565b60006106ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c21565b600081836116915760405162461bcd60e51b815260040161072d919061169e565b506000610c5284866118ea565b600060208083528351808285015260005b818110156116cb578581018301518582016040015282016116af565b818111156116dd576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461170857600080fd5b50565b6000806040838503121561171e57600080fd5b8235611729816116f3565b946020939093013593505050565b60008060006060848603121561174c57600080fd5b8335611757816116f3565b92506020840135611767816116f3565b929592945050506040919091013590565b60006020828403121561178a57600080fd5b81356106ee816116f3565b801515811461170857600080fd5b600080604083850312156117b657600080fd5b82356117c1816116f3565b915060208301356117d181611795565b809150509250929050565b6000602082840312156117ee57600080fd5b5035919050565b6000806000806080858703121561180b57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561183a57600080fd5b8235611845816116f3565b915060208301356117d1816116f3565b60008060006060848603121561186a57600080fd5b8335611875816116f3565b925060208401359150604084013561188c816116f3565b809150509250925092565b6000602082840312156118a957600080fd5b81356106ee81611795565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261190757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611926576119266118d4565b500290565b6000821982111561193e5761193e6118d4565b500190565b60006020828403121561195557600080fd5b5051919050565b60006020828403121561196e57600080fd5b81516106ee81611795565b60008282101561198b5761198b6118d4565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119b857600080fd5b81516106ee816116f3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a135784516001600160a01b0316835293830193918301916001016119ee565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a4957600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122085b284a6033831d7906cfc4a3de61abe9fb8627306bb1660af926874307e401364736f6c63430008090033