0x6080604052600436106101f25760003560e01c80637d1db4a51161010d578063dc93cf70116100a0578063f1f3bca31161006f578063f1f3bca3146105ac578063f2fde38b146105cc578063f4293890146105ec578063f84ba65d14610601578063f887ea401461062157600080fd5b8063dc93cf7014610506578063dd62ed3e14610526578063df20fd491461056c578063e66db25e1461058c57600080fd5b8063a8aa1b31116100dc578063a8aa1b3114610490578063a9059cbb146104b0578063bf56b371146104d0578063d51ed1c8146104e657600080fd5b80637d1db4a514610432578063893d20e8146104485780638f9a55c01461047a57806395d89b411461022757600080fd5b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146103a25780636ddd1713146103c25780636fcba377146103dc57806370a08231146103fc57600080fd5b8063313ce56714610324578063571ac8b0146103405780635c85974f146103605780635d0044ca1461038257600080fd5b806318160ddd116101c157806318160ddd146102ab57806323b872dd146102c05780632b112e49146102e05780632f54bf6e146102f557600080fd5b80630445b667146101fe57806306fdde0314610227578063095ea7b31461025b5780631161ae391461028b57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021460165481565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506040805180820182526005815264109491551560da1b6020820152905161021e9190611993565b34801561026757600080fd5b5061027b61027636600461187c565b610641565b604051901515815260200161021e565b34801561029757600080fd5b5061027b6102a6366004611911565b6106ae565b3480156102b757600080fd5b50600454610214565b3480156102cc57600080fd5b5061027b6102db366004611806565b6106c2565b3480156102ec57600080fd5b50610214610784565b34801561030157600080fd5b5061027b6103103660046117b0565b6000546001600160a01b0391821691161490565b34801561033057600080fd5b506040516009815260200161021e565b34801561034c57600080fd5b5061027b61035b3660046117b0565b6107d6565b34801561036c57600080fd5b5061038061037b3660046118df565b6107e4565b005b34801561038e57600080fd5b5061038061039d3660046118df565b610838565b3480156103ae57600080fd5b506103806103bd366004611847565b610883565b3480156103ce57600080fd5b5060155461027b9060ff1681565b3480156103e857600080fd5b506103806103f7366004611961565b6108d8565b34801561040857600080fd5b506102146104173660046117b0565b6001600160a01b031660009081526007602052604090205490565b34801561043e57600080fd5b5061021460055481565b34801561045457600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161021e565b34801561048657600080fd5b5061021460065481565b34801561049c57600080fd5b50601354610462906001600160a01b031681565b3480156104bc57600080fd5b5061027b6104cb36600461187c565b610930565b3480156104dc57600080fd5b5061021460145481565b3480156104f257600080fd5b506102146105013660046118df565b61093d565b34801561051257600080fd5b506103806105213660046117b0565b610981565b34801561053257600080fd5b506102146105413660046117cd565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561057857600080fd5b506103806105873660046118c3565b610aca565b34801561059857600080fd5b506103806105a73660046117cd565b610b0b565b3480156105b857600080fd5b506102146105c73660046118a8565b610b63565b3480156105d857600080fd5b506103806105e73660046117b0565b610ba4565b3480156105f857600080fd5b50610380610c22565b34801561060d57600080fd5b5061038061061c366004611847565b610c8a565b34801561062d57600080fd5b50601254610462906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061069c9086815260200190565b60405180910390a35060015b92915050565b6000826106ba8361093d565b119392505050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461076f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461074a918490610cdf565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61077a848484610d19565b90505b9392505050565b6003546001600160a01b03166000908152600760205260408120546107d1906002546001600160a01b03166000908152600760205260409020546107cb9060045490610f9b565b90610f9b565b905090565b60006106a882600019610641565b6000546001600160a01b031633146108175760405162461bcd60e51b815260040161080e906119e8565b60405180910390fd5b6103e86004546108279190611a91565b81101561083357600080fd5b600555565b6000546001600160a01b031633146108625760405162461bcd60e51b815260040161080e906119e8565b6103e86004546108729190611a91565b81101561087e57600080fd5b600655565b6000546001600160a01b031633146108ad5760405162461bcd60e51b815260040161080e906119e8565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109025760405162461bcd60e51b815260040161080e906119e8565b600b849055600c839055600d8290556109258261091f8686610fdd565b90610fdd565b600e55600f55505050565b600061077d338484610d19565b60006106a861094a610784565b6013546001600160a01b031660009081526007602052604090205461097b9061097490600261103c565b859061103c565b906110bb565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161080e906119e8565b6001600160a01b038116301415610a105760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b606482015260840161080e565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610a5257600080fd5b505afa158015610a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8a91906118f8565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ac5573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610af45760405162461bcd60e51b815260040161080e906119e8565b6015805460ff191692151592909217909155601655565b6000546001600160a01b03163314610b355760405162461bcd60e51b815260040161080e906119e8565b601080546001600160a01b039384166001600160a01b03199182161790915560118054929093169116179055565b6000436014546001610b759190611a79565b10610b8857600f546106a8906001610f9b565b8115610b9c57600e546106a8906001610fdd565b5050600e5490565b6000546001600160a01b03163314610bce5760405162461bcd60e51b815260040161080e906119e8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610c4c5760405162461bcd60e51b815260040161080e906119e8565b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610c86573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610cb45760405162461bcd60e51b815260040161080e906119e8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60008184841115610d035760405162461bcd60e51b815260040161080e9190611993565b506000610d108486611ad2565b95945050505050565b60175460009060ff1615610d3957610d328484846110fd565b905061077d565b610d4384836111e3565b6013546001600160a01b03848116911614801590610d6f57506002546001600160a01b03848116911614155b15610e1a576001600160a01b0383166000908152600a602052604090205460ff1680610dc057506006546001600160a01b038416600090815260076020526040902054610dbd908490611a79565b11155b610e1a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161080e565b610e2261124c565b15610e2f57610e2f61129b565b601454158015610e4c57506013546001600160a01b038481169116145b15610e7c576001600160a01b038416600090815260076020526040902054610e7357600080fd5b610e7c43601455565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610ece918490610cdf565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff1615610f035782610f0e565b610f0e8585856116bb565b6001600160a01b038516600090815260076020526040902054909150610f349082610fdd565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f889085815260200190565b60405180910390a3506001949350505050565b600061077d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cdf565b600080610fea8385611a79565b90508381101561077d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161080e565b60008261104b575060006106a8565b60006110578385611ab3565b9050826110648583611a91565b1461077d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161080e565b600061077d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061176d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461114e918490610cdf565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461117d9083610fdd565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d19086815260200190565b60405180910390a35060019392505050565b6005548111158061120c57506001600160a01b0382166000908152600a602052604090205460ff165b610c865760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161080e565b6013546000906001600160a01b0316331480159061126d575060175460ff16155b801561127b575060155460ff165b80156107d157505060165430600090815260076020526040902054101590565b6017805460ff1916600117905530600090815260076020526040812054905060006112dc600261097b600e5461097b600b548761103c90919063ffffffff16565b905060006112ea8383610f9b565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061132457611324611aff565b6001600160a01b039283166020918202929092010152600180548351921691839190811061135457611354611aff565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac9479061139e908690600090879030904290600401611a08565b600060405180830381600087803b1580156113b857600080fd5b505af11580156113cc573d6000803e3d6000fd5b5050505060006113e58247610f9b90919063ffffffff16565b9050600061140b6114026002600b546110bb90919063ffffffff16565b600e5490610f9b565b9050600061142d600261097b8461097b600b548861103c90919063ffffffff16565b9050600061144a8361097b600c548761103c90919063ffffffff16565b905060006114678461097b600d548861103c90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50509050806115145760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161080e565b6011546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611566576040519150601f19603f3d011682016040523d82523d6000602084013e61156b565b606091505b50509050806115bc5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161080e565b8a156116a35760125460115460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561162d57600080fd5b505af1158015611641573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116669190611933565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050505050565b600f5460135460009182916116ed919061097b906116e6906001600160a01b03898116911614610b63565b869061103c565b3060009081526007602052604090205490915061170a9082610fdd565b30600081815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061175b9085815260200190565b60405180910390a3610d108382610f9b565b6000818361178e5760405162461bcd60e51b815260040161080e9190611993565b506000610d108486611a91565b803580151581146117ab57600080fd5b919050565b6000602082840312156117c257600080fd5b813561077d81611b15565b600080604083850312156117e057600080fd5b82356117eb81611b15565b915060208301356117fb81611b15565b809150509250929050565b60008060006060848603121561181b57600080fd5b833561182681611b15565b9250602084013561183681611b15565b929592945050506040919091013590565b6000806040838503121561185a57600080fd5b823561186581611b15565b91506118736020840161179b565b90509250929050565b6000806040838503121561188f57600080fd5b823561189a81611b15565b946020939093013593505050565b6000602082840312156118ba57600080fd5b61077d8261179b565b600080604083850312156118d657600080fd5b61189a8361179b565b6000602082840312156118f157600080fd5b5035919050565b60006020828403121561190a57600080fd5b5051919050565b6000806040838503121561192457600080fd5b50508035926020909101359150565b60008060006060848603121561194857600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561197757600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156119c0578581018301518582016040015282016119a4565b818111156119d2576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a585784516001600160a01b031683529383019391830191600101611a33565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a8c57611a8c611ae9565b500190565b600082611aae57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611acd57611acd611ae9565b500290565b600082821015611ae457611ae4611ae9565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611b2a57600080fd5b5056fea264697066735822122068c8d8c6ee72903c5c796087513746234abf6ce84d55e16b7873c0bcbc5049e264736f6c63430008050033
0x6080604052600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560028054821661dead179055600380549091169055620000506009600a62000405565b620000639066017e9d8602b400620004c6565b60045560646004546001620000799190620004c6565b62000085919062000399565b600555606460045460016200009b9190620004c6565b620000a7919062000399565b6006556000600b556001600c556001600d55600d54600c54600b54620000ce91906200037e565b620000da91906200037e565b600e556064600f55601080546001600160a01b03199081167389250c432004d102832c17d32a465ce5767c88011790915560118054909116736b20f2fee06ca22dbf1f727e4e93fda4bdf28b581790556015805460ff1916600117905560045462000149906103e89062000399565b62000156906003620004c6565b6016553480156200016657600080fd5b5060008054336001600160a01b03199182161790915560128054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b158015620001d257600080fd5b505afa158015620001e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020d91906200034c565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200025a57600080fd5b505af11580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029591906200034c565b601380546001600160a01b0319166001600160a01b039283161790553060009081526008602090815260408083206012548516845282528083206000199055825490931680835260098252838320805460ff199081166001908117909255600a845285852080549091169091179055600454600783528484208190559351938452928392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004fe565b6000602082840312156200035f57600080fd5b81516001600160a01b03811681146200037757600080fd5b9392505050565b60008219821115620003945762000394620004e8565b500190565b600082620003b757634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620003fd578160001904821115620003e157620003e1620004e8565b80851615620003ef57918102915b93841c9390800290620003c1565b509250929050565b60006200037760ff8416836000826200042157506001620004c0565b816200043057506000620004c0565b8160018114620004495760028114620004545762000474565b6001915050620004c0565b60ff841115620004685762000468620004e8565b50506001821b620004c0565b5060208310610133831016604e8410600b841016171562000499575081810a620004c0565b620004a58383620003bc565b8060001904821115620004bc57620004bc620004e8565b0290505b92915050565b6000816000190483118215151615620004e357620004e3620004e8565b500290565b634e487b7160e01b600052601160045260246000fd5b611b63806200050e6000396000f3fe6080604052600436106101f25760003560e01c80637d1db4a51161010d578063dc93cf70116100a0578063f1f3bca31161006f578063f1f3bca3146105ac578063f2fde38b146105cc578063f4293890146105ec578063f84ba65d14610601578063f887ea401461062157600080fd5b8063dc93cf7014610506578063dd62ed3e14610526578063df20fd491461056c578063e66db25e1461058c57600080fd5b8063a8aa1b31116100dc578063a8aa1b3114610490578063a9059cbb146104b0578063bf56b371146104d0578063d51ed1c8146104e657600080fd5b80637d1db4a514610432578063893d20e8146104485780638f9a55c01461047a57806395d89b411461022757600080fd5b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146103a25780636ddd1713146103c25780636fcba377146103dc57806370a08231146103fc57600080fd5b8063313ce56714610324578063571ac8b0146103405780635c85974f146103605780635d0044ca1461038257600080fd5b806318160ddd116101c157806318160ddd146102ab57806323b872dd146102c05780632b112e49146102e05780632f54bf6e146102f557600080fd5b80630445b667146101fe57806306fdde0314610227578063095ea7b31461025b5780631161ae391461028b57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021460165481565b6040519081526020015b60405180910390f35b34801561023357600080fd5b506040805180820182526005815264109491551560da1b6020820152905161021e9190611993565b34801561026757600080fd5b5061027b61027636600461187c565b610641565b604051901515815260200161021e565b34801561029757600080fd5b5061027b6102a6366004611911565b6106ae565b3480156102b757600080fd5b50600454610214565b3480156102cc57600080fd5b5061027b6102db366004611806565b6106c2565b3480156102ec57600080fd5b50610214610784565b34801561030157600080fd5b5061027b6103103660046117b0565b6000546001600160a01b0391821691161490565b34801561033057600080fd5b506040516009815260200161021e565b34801561034c57600080fd5b5061027b61035b3660046117b0565b6107d6565b34801561036c57600080fd5b5061038061037b3660046118df565b6107e4565b005b34801561038e57600080fd5b5061038061039d3660046118df565b610838565b3480156103ae57600080fd5b506103806103bd366004611847565b610883565b3480156103ce57600080fd5b5060155461027b9060ff1681565b3480156103e857600080fd5b506103806103f7366004611961565b6108d8565b34801561040857600080fd5b506102146104173660046117b0565b6001600160a01b031660009081526007602052604090205490565b34801561043e57600080fd5b5061021460055481565b34801561045457600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161021e565b34801561048657600080fd5b5061021460065481565b34801561049c57600080fd5b50601354610462906001600160a01b031681565b3480156104bc57600080fd5b5061027b6104cb36600461187c565b610930565b3480156104dc57600080fd5b5061021460145481565b3480156104f257600080fd5b506102146105013660046118df565b61093d565b34801561051257600080fd5b506103806105213660046117b0565b610981565b34801561053257600080fd5b506102146105413660046117cd565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561057857600080fd5b506103806105873660046118c3565b610aca565b34801561059857600080fd5b506103806105a73660046117cd565b610b0b565b3480156105b857600080fd5b506102146105c73660046118a8565b610b63565b3480156105d857600080fd5b506103806105e73660046117b0565b610ba4565b3480156105f857600080fd5b50610380610c22565b34801561060d57600080fd5b5061038061061c366004611847565b610c8a565b34801561062d57600080fd5b50601254610462906001600160a01b031681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061069c9086815260200190565b60405180910390a35060015b92915050565b6000826106ba8361093d565b119392505050565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000191461076f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461074a918490610cdf565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61077a848484610d19565b90505b9392505050565b6003546001600160a01b03166000908152600760205260408120546107d1906002546001600160a01b03166000908152600760205260409020546107cb9060045490610f9b565b90610f9b565b905090565b60006106a882600019610641565b6000546001600160a01b031633146108175760405162461bcd60e51b815260040161080e906119e8565b60405180910390fd5b6103e86004546108279190611a91565b81101561083357600080fd5b600555565b6000546001600160a01b031633146108625760405162461bcd60e51b815260040161080e906119e8565b6103e86004546108729190611a91565b81101561087e57600080fd5b600655565b6000546001600160a01b031633146108ad5760405162461bcd60e51b815260040161080e906119e8565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109025760405162461bcd60e51b815260040161080e906119e8565b600b849055600c839055600d8290556109258261091f8686610fdd565b90610fdd565b600e55600f55505050565b600061077d338484610d19565b60006106a861094a610784565b6013546001600160a01b031660009081526007602052604090205461097b9061097490600261103c565b859061103c565b906110bb565b6000546001600160a01b031633146109ab5760405162461bcd60e51b815260040161080e906119e8565b6001600160a01b038116301415610a105760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b606482015260840161080e565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610a5257600080fd5b505afa158015610a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8a91906118f8565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ac5573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610af45760405162461bcd60e51b815260040161080e906119e8565b6015805460ff191692151592909217909155601655565b6000546001600160a01b03163314610b355760405162461bcd60e51b815260040161080e906119e8565b601080546001600160a01b039384166001600160a01b03199182161790915560118054929093169116179055565b6000436014546001610b759190611a79565b10610b8857600f546106a8906001610f9b565b8115610b9c57600e546106a8906001610fdd565b5050600e5490565b6000546001600160a01b03163314610bce5760405162461bcd60e51b815260040161080e906119e8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610c4c5760405162461bcd60e51b815260040161080e906119e8565b60115460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610c86573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610cb45760405162461bcd60e51b815260040161080e906119e8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60008184841115610d035760405162461bcd60e51b815260040161080e9190611993565b506000610d108486611ad2565b95945050505050565b60175460009060ff1615610d3957610d328484846110fd565b905061077d565b610d4384836111e3565b6013546001600160a01b03848116911614801590610d6f57506002546001600160a01b03848116911614155b15610e1a576001600160a01b0383166000908152600a602052604090205460ff1680610dc057506006546001600160a01b038416600090815260076020526040902054610dbd908490611a79565b11155b610e1a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b606482015260840161080e565b610e2261124c565b15610e2f57610e2f61129b565b601454158015610e4c57506013546001600160a01b038481169116145b15610e7c576001600160a01b038416600090815260076020526040902054610e7357600080fd5b610e7c43601455565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610ece918490610cdf565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff1615610f035782610f0e565b610f0e8585856116bb565b6001600160a01b038516600090815260076020526040902054909150610f349082610fdd565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f889085815260200190565b60405180910390a3506001949350505050565b600061077d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cdf565b600080610fea8385611a79565b90508381101561077d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161080e565b60008261104b575060006106a8565b60006110578385611ab3565b9050826110648583611a91565b1461077d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161080e565b600061077d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061176d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260079091529182205461114e918490610cdf565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461117d9083610fdd565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d19086815260200190565b60405180910390a35060019392505050565b6005548111158061120c57506001600160a01b0382166000908152600a602052604090205460ff165b610c865760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161080e565b6013546000906001600160a01b0316331480159061126d575060175460ff16155b801561127b575060155460ff165b80156107d157505060165430600090815260076020526040902054101590565b6017805460ff1916600117905530600090815260076020526040812054905060006112dc600261097b600e5461097b600b548761103c90919063ffffffff16565b905060006112ea8383610f9b565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061132457611324611aff565b6001600160a01b039283166020918202929092010152600180548351921691839190811061135457611354611aff565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b81524792919091169063791ac9479061139e908690600090879030904290600401611a08565b600060405180830381600087803b1580156113b857600080fd5b505af11580156113cc573d6000803e3d6000fd5b5050505060006113e58247610f9b90919063ffffffff16565b9050600061140b6114026002600b546110bb90919063ffffffff16565b600e5490610f9b565b9050600061142d600261097b8461097b600b548861103c90919063ffffffff16565b9050600061144a8361097b600c548761103c90919063ffffffff16565b905060006114678461097b600d548861103c90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50509050806115145760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161080e565b6011546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611566576040519150601f19603f3d011682016040523d82523d6000602084013e61156b565b606091505b50509050806115bc5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161080e565b8a156116a35760125460115460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561162d57600080fd5b505af1158015611641573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116669190611933565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050505050565b600f5460135460009182916116ed919061097b906116e6906001600160a01b03898116911614610b63565b869061103c565b3060009081526007602052604090205490915061170a9082610fdd565b30600081815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061175b9085815260200190565b60405180910390a3610d108382610f9b565b6000818361178e5760405162461bcd60e51b815260040161080e9190611993565b506000610d108486611a91565b803580151581146117ab57600080fd5b919050565b6000602082840312156117c257600080fd5b813561077d81611b15565b600080604083850312156117e057600080fd5b82356117eb81611b15565b915060208301356117fb81611b15565b809150509250929050565b60008060006060848603121561181b57600080fd5b833561182681611b15565b9250602084013561183681611b15565b929592945050506040919091013590565b6000806040838503121561185a57600080fd5b823561186581611b15565b91506118736020840161179b565b90509250929050565b6000806040838503121561188f57600080fd5b823561189a81611b15565b946020939093013593505050565b6000602082840312156118ba57600080fd5b61077d8261179b565b600080604083850312156118d657600080fd5b61189a8361179b565b6000602082840312156118f157600080fd5b5035919050565b60006020828403121561190a57600080fd5b5051919050565b6000806040838503121561192457600080fd5b50508035926020909101359150565b60008060006060848603121561194857600080fd5b8351925060208401519150604084015190509250925092565b6000806000806080858703121561197757600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156119c0578581018301518582016040015282016119a4565b818111156119d2576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a585784516001600160a01b031683529383019391830191600101611a33565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a8c57611a8c611ae9565b500190565b600082611aae57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611acd57611acd611ae9565b500290565b600082821015611ae457611ae4611ae9565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114611b2a57600080fd5b5056fea264697066735822122068c8d8c6ee72903c5c796087513746234abf6ce84d55e16b7873c0bcbc5049e264736f6c63430008050033