0x6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610730578063f2fde38b14610750578063f84ba65d14610770578063f887ea4014610790578063fe575a87146107b0578063ffb54a99146107e057600080fd5b8063bf56b3711461067e578063ca33e64c14610694578063ca987b0e146106b4578063da00097d146106ca578063dd62ed3e146106ea57600080fd5b80638da5cb5b116101085780638da5cb5b1461056f5780638e2eee84146105dc57806395d89b41146105fc57806398118cb414610628578063a8aa1b311461063e578063a9059cbb1461065e57600080fd5b80637d1db4a514610543578063807c2d9c14610559578063893d20e81461056f578063896648c11461058d5780638b42507f146105ac57600080fd5b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b1461046a578063658d4b7f1461048a5780636b67c4df146104aa57806370a08231146104c0578063715018a6146104f657806375f0a8741461050b57600080fd5b8063313ce567146103be5780633f4218e0146103da57806344de2e4c1461040a5780634a74bb021461042b578063571ac8b01461044a57600080fd5b806318160ddd1161022457806318160ddd146103445780631df4ccfc14610359578063220f66961461036f57806323b872dd146103895780632b112e49146103a957600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102d25780630b78f9c0146103025780630d2959801461032457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b5060408051808201909152600b81526a50657270657475616c414960a81b60208201525b60405161028c9190611866565b3480156102de57600080fd5b506102f26102ed3660046118cc565b6107fa565b604051901515815260200161028c565b34801561030e57600080fd5b5061032261031d3660046118f8565b610867565b005b34801561033057600080fd5b5061032261033f36600461192f565b6108ba565b34801561035057600080fd5b50600254610282565b34801561036557600080fd5b50610282600e5481565b34801561037b57600080fd5b506017546102f29060ff1681565b34801561039557600080fd5b506102f26103a436600461194a565b6108f7565b3480156103b557600080fd5b506102826109b9565b3480156103ca57600080fd5b506040516012815260200161028c565b3480156103e657600080fd5b506102f26103f536600461198b565b600a6020526000908152604090205460ff1681565b34801561041657600080fd5b506007546102f290600160a01b900460ff1681565b34801561043757600080fd5b506017546102f290610100900460ff1681565b34801561045657600080fd5b506102f261046536600461198b565b610a0b565b34801561047657600080fd5b5061032261048536600461192f565b610a19565b34801561049657600080fd5b506103226104a53660046119a8565b610a5d565b3480156104b657600080fd5b50610282600d5481565b3480156104cc57600080fd5b506102826104db36600461198b565b6001600160a01b031660009081526008602052604090205490565b34801561050257600080fd5b50610322610ab2565b34801561051757600080fd5b5060115461052b906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561054f57600080fd5b5061028260035481565b34801561056557600080fd5b5061028260045481565b34801561057b57600080fd5b506000546001600160a01b031661052b565b34801561059957600080fd5b506015546102f290610100900460ff1681565b3480156105b857600080fd5b506102f26105c736600461198b565b600b6020526000908152604090205460ff1681565b3480156105e857600080fd5b506103226105f73660046119dd565b610b26565b34801561060857600080fd5b5060408051808201909152600381526250414960e81b60208201526102c5565b34801561063457600080fd5b50610282600c5481565b34801561064a57600080fd5b5060135461052b906001600160a01b031681565b34801561066a57600080fd5b506102f26106793660046118cc565b610bc5565b34801561068a57600080fd5b5061028260145481565b3480156106a057600080fd5b5060105461052b906001600160a01b031681565b3480156106c057600080fd5b50610282600f5481565b3480156106d657600080fd5b506017546102f29062010000900460ff1681565b3480156106f657600080fd5b50610282610705366004611a61565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561073c57600080fd5b5061032261074b366004611a9a565b610bd2565b34801561075c57600080fd5b5061032261076b36600461198b565b610c01565b34801561077c57600080fd5b5061032261078b3660046119a8565b610ceb565b34801561079c57600080fd5b5060125461052b906001600160a01b031681565b3480156107bc57600080fd5b506102f26107cb36600461198b565b60166020526000908152604090205460ff1681565b3480156107ec57600080fd5b506015546102f29060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108559086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461089a5760405162461bcd60e51b815260040161089190611ab3565b60405180910390fd5b600c829055600d8190556108ae8282610d40565b600e819055600f555050565b6000546001600160a01b031633146108e45760405162461bcd60e51b815260040161089190611ab3565b6015805460ff1916911515919091179055565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109a4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461097f918490610d9f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109af848484610dd9565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610a06906005546001600160a01b0316600090815260086020526040902054610a00906002549061124d565b9061124d565b905090565b6000610861826000196107fa565b6000546001600160a01b03163314610a435760405162461bcd60e51b815260040161089190611ab3565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a875760405162461bcd60e51b815260040161089190611ab3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610adc5760405162461bcd60e51b815260040161089190611ab3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b505760405162461bcd60e51b815260040161089190611ab3565b60005b82811015610bbf578160166000868685818110610b7257610b72611ae8565b9050602002016020810190610b87919061198b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610bb881611b14565b9050610b53565b50505050565b60006109b2338484610dd9565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b815260040161089190611ab3565b600455565b6000546001600160a01b03163314610c2b5760405162461bcd60e51b815260040161089190611ab3565b6001600160a01b038116610c905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610891565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d155760405162461bcd60e51b815260040161089190611ab3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d4d8385611b2d565b9050838110156109b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610891565b60008184841115610dc35760405162461bcd60e51b81526004016108919190611866565b506000610dd08486611b40565b95945050505050565b60175460009060ff1615610df957610df284848461128f565b90506109b2565b6001600160a01b03841660009081526001602052604090205460ff16158015610e3b57506001600160a01b03831660009081526001602052604090205460ff16155b15610e895760155460ff16610e895760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610891565b60035482111580610eb257506001600160a01b0384166000908152600b602052604090205460ff165b610ef25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610891565b6013546001600160a01b03163314801590610f10575060175460ff16155b8015610f235750601754610100900460ff165b8015610f4057506018543060009081526008602052604090205410155b15610f4d57610f4d611375565b601454158015610f6a57506013546001600160a01b038481169116145b15610fd6576001600160a01b038416600090815260086020526040902054610fcd5760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b6044820152606401610891565b610fd643601455565b601554610100900460ff1615611062576001600160a01b03841660009081526016602052604090205460ff1615801561102857506001600160a01b03831660009081526016602052604090205460ff16155b6110625760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610891565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546110b4918490610d9f565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156110f95750600754600160a01b900460ff165b15611169576004546001600160a01b0384166000908152600860205260409020546111249084610d40565b11156111695760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b6044820152606401610891565b6001600160a01b0384166000908152600a602052604081205460ff161580156111ab57506001600160a01b0384166000908152600a602052604090205460ff16155b6111b557826111c0565b6111c08585856116b6565b6001600160a01b0385166000908152600860205260409020549091506111e69082610d40565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061123a9085815260200190565b60405180910390a3506001949350505050565b60006109b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d9f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112e0918490610d9f565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461130f9083610d40565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113639086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113b6916002916113b0919082908790611779565b906117fb565b905060006113c4838361124d565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113fe576113fe611ae8565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b9190611b53565b8160018151811061148e5761148e611ae8565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906114d4908590600090869030904290600401611b70565b600060405180830381600087803b1580156114ee57600080fd5b505af1158015611502573d6000803e3d6000fd5b5050600c54479250600091506115269061151d9060026117fb565b600e549061124d565b9050600061154860026113b0846113b0600c548861177990919063ffffffff16565b90506000611565836113b0600d548761177990919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115bc576040519150601f19603f3d011682016040523d82523d6000602084013e6115c1565b606091505b506000925050881590506116a15760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af115801561163f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116649190611be1565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b038581169116146116d857600e546116dc565b600f545b905060006116ef60646113b08685611779565b3060009081526008602052604090205490915061170c9082610d40565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061175d9085815260200190565b60405180910390a361176f848261124d565b9695505050505050565b60008260000361178b57506000610861565b60006117978385611c0f565b9050826117a48583611c26565b146109b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610891565b60006109b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118595760405162461bcd60e51b81526004016108919190611866565b506000610dd08486611c26565b600060208083528351808285015260005b8181101561189357858101830151858201604001528201611877565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118c957600080fd5b50565b600080604083850312156118df57600080fd5b82356118ea816118b4565b946020939093013593505050565b6000806040838503121561190b57600080fd5b50508035926020909101359150565b8035801515811461192a57600080fd5b919050565b60006020828403121561194157600080fd5b6109b28261191a565b60008060006060848603121561195f57600080fd5b833561196a816118b4565b9250602084013561197a816118b4565b929592945050506040919091013590565b60006020828403121561199d57600080fd5b81356109b2816118b4565b600080604083850312156119bb57600080fd5b82356119c6816118b4565b91506119d46020840161191a565b90509250929050565b6000806000604084860312156119f257600080fd5b833567ffffffffffffffff80821115611a0a57600080fd5b818601915086601f830112611a1e57600080fd5b813581811115611a2d57600080fd5b8760208260051b8501011115611a4257600080fd5b602092830195509350611a58918601905061191a565b90509250925092565b60008060408385031215611a7457600080fd5b8235611a7f816118b4565b91506020830135611a8f816118b4565b809150509250929050565b600060208284031215611aac57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b2657611b26611afe565b5060010190565b8082018082111561086157610861611afe565b8181038181111561086157610861611afe565b600060208284031215611b6557600080fd5b81516109b2816118b4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc05784516001600160a01b031683529383019391830191600101611b9b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611bf657600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761086157610861611afe565b600082611c4357634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220bd19c9e05c0ee632f9d82b5ce453e6aef85dec5abaf4bd9bb6c90ae6ee3e8b1c64736f6c63430008110033
0x6080604052620000126012600a62000593565b62000023906402540be400620005ab565b600281815560038281556004838155600580546001600160a01b031990811661dead1782556006805490911690556007805474017a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a81b0319909116179055600c93909355600d91909155600e829055600f919091556015805461ffff191690556017805462ffff0019166101001790556107d091620000bb91620005ab565b620000c79190620005c5565b601855348015620000d757600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200018f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b59190620005e8565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d9190620005e8565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200028a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b09190620005e8565b601380546001600160a01b03199081166001600160a01b03938416178255306000818152600960209081526040808320601254881684528252808320600019908190558654881684528184205533808452600a8352818420805460ff1990811660019081179092559585528285208054871682179055600580548a1686528386208054881683179055918552600b84528285208054871682179055965488168452818420805486168817905554909616825294902080549091169092179091556010805473f0b9867eda6eda56689e942b11cc25d0c74b65e9908316811790915560118054909216179055600d54600c54620003b89290919062000411811b62000d4017901c565b600e819055600f5560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000629565b60008062000420838562000613565b905083811015620004775760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004d7578160001904821115620004bb57620004bb62000480565b80851615620004c957918102915b93841c93908002906200049b565b509250929050565b600082620004f0575060016200047a565b81620004ff575060006200047a565b8160018114620005185760028114620005235762000543565b60019150506200047a565b60ff84111562000537576200053762000480565b50506001821b6200047a565b5060208310610133831016604e8410600b841016171562000568575081810a6200047a565b62000574838362000496565b80600019048211156200058b576200058b62000480565b029392505050565b6000620005a460ff841683620004df565b9392505050565b80820281158282048414176200047a576200047a62000480565b600082620005e357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005fb57600080fd5b81516001600160a01b03811681146200047757600080fd5b808201808211156200047a576200047a62000480565b611c7e80620006396000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610730578063f2fde38b14610750578063f84ba65d14610770578063f887ea4014610790578063fe575a87146107b0578063ffb54a99146107e057600080fd5b8063bf56b3711461067e578063ca33e64c14610694578063ca987b0e146106b4578063da00097d146106ca578063dd62ed3e146106ea57600080fd5b80638da5cb5b116101085780638da5cb5b1461056f5780638e2eee84146105dc57806395d89b41146105fc57806398118cb414610628578063a8aa1b311461063e578063a9059cbb1461065e57600080fd5b80637d1db4a514610543578063807c2d9c14610559578063893d20e81461056f578063896648c11461058d5780638b42507f146105ac57600080fd5b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b1461046a578063658d4b7f1461048a5780636b67c4df146104aa57806370a08231146104c0578063715018a6146104f657806375f0a8741461050b57600080fd5b8063313ce567146103be5780633f4218e0146103da57806344de2e4c1461040a5780634a74bb021461042b578063571ac8b01461044a57600080fd5b806318160ddd1161022457806318160ddd146103445780631df4ccfc14610359578063220f66961461036f57806323b872dd146103895780632b112e49146103a957600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102d25780630b78f9c0146103025780630d2959801461032457600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b5060408051808201909152600b81526a50657270657475616c414960a81b60208201525b60405161028c9190611866565b3480156102de57600080fd5b506102f26102ed3660046118cc565b6107fa565b604051901515815260200161028c565b34801561030e57600080fd5b5061032261031d3660046118f8565b610867565b005b34801561033057600080fd5b5061032261033f36600461192f565b6108ba565b34801561035057600080fd5b50600254610282565b34801561036557600080fd5b50610282600e5481565b34801561037b57600080fd5b506017546102f29060ff1681565b34801561039557600080fd5b506102f26103a436600461194a565b6108f7565b3480156103b557600080fd5b506102826109b9565b3480156103ca57600080fd5b506040516012815260200161028c565b3480156103e657600080fd5b506102f26103f536600461198b565b600a6020526000908152604090205460ff1681565b34801561041657600080fd5b506007546102f290600160a01b900460ff1681565b34801561043757600080fd5b506017546102f290610100900460ff1681565b34801561045657600080fd5b506102f261046536600461198b565b610a0b565b34801561047657600080fd5b5061032261048536600461192f565b610a19565b34801561049657600080fd5b506103226104a53660046119a8565b610a5d565b3480156104b657600080fd5b50610282600d5481565b3480156104cc57600080fd5b506102826104db36600461198b565b6001600160a01b031660009081526008602052604090205490565b34801561050257600080fd5b50610322610ab2565b34801561051757600080fd5b5060115461052b906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561054f57600080fd5b5061028260035481565b34801561056557600080fd5b5061028260045481565b34801561057b57600080fd5b506000546001600160a01b031661052b565b34801561059957600080fd5b506015546102f290610100900460ff1681565b3480156105b857600080fd5b506102f26105c736600461198b565b600b6020526000908152604090205460ff1681565b3480156105e857600080fd5b506103226105f73660046119dd565b610b26565b34801561060857600080fd5b5060408051808201909152600381526250414960e81b60208201526102c5565b34801561063457600080fd5b50610282600c5481565b34801561064a57600080fd5b5060135461052b906001600160a01b031681565b34801561066a57600080fd5b506102f26106793660046118cc565b610bc5565b34801561068a57600080fd5b5061028260145481565b3480156106a057600080fd5b5060105461052b906001600160a01b031681565b3480156106c057600080fd5b50610282600f5481565b3480156106d657600080fd5b506017546102f29062010000900460ff1681565b3480156106f657600080fd5b50610282610705366004611a61565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561073c57600080fd5b5061032261074b366004611a9a565b610bd2565b34801561075c57600080fd5b5061032261076b36600461198b565b610c01565b34801561077c57600080fd5b5061032261078b3660046119a8565b610ceb565b34801561079c57600080fd5b5060125461052b906001600160a01b031681565b3480156107bc57600080fd5b506102f26107cb36600461198b565b60166020526000908152604090205460ff1681565b3480156107ec57600080fd5b506015546102f29060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108559086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461089a5760405162461bcd60e51b815260040161089190611ab3565b60405180910390fd5b600c829055600d8190556108ae8282610d40565b600e819055600f555050565b6000546001600160a01b031633146108e45760405162461bcd60e51b815260040161089190611ab3565b6015805460ff1916911515919091179055565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109a4576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461097f918490610d9f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109af848484610dd9565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610a06906005546001600160a01b0316600090815260086020526040902054610a00906002549061124d565b9061124d565b905090565b6000610861826000196107fa565b6000546001600160a01b03163314610a435760405162461bcd60e51b815260040161089190611ab3565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a875760405162461bcd60e51b815260040161089190611ab3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610adc5760405162461bcd60e51b815260040161089190611ab3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b505760405162461bcd60e51b815260040161089190611ab3565b60005b82811015610bbf578160166000868685818110610b7257610b72611ae8565b9050602002016020810190610b87919061198b565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610bb881611b14565b9050610b53565b50505050565b60006109b2338484610dd9565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b815260040161089190611ab3565b600455565b6000546001600160a01b03163314610c2b5760405162461bcd60e51b815260040161089190611ab3565b6001600160a01b038116610c905760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610891565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d155760405162461bcd60e51b815260040161089190611ab3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d4d8385611b2d565b9050838110156109b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610891565b60008184841115610dc35760405162461bcd60e51b81526004016108919190611866565b506000610dd08486611b40565b95945050505050565b60175460009060ff1615610df957610df284848461128f565b90506109b2565b6001600160a01b03841660009081526001602052604090205460ff16158015610e3b57506001600160a01b03831660009081526001602052604090205460ff16155b15610e895760155460ff16610e895760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610891565b60035482111580610eb257506001600160a01b0384166000908152600b602052604090205460ff165b610ef25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610891565b6013546001600160a01b03163314801590610f10575060175460ff16155b8015610f235750601754610100900460ff165b8015610f4057506018543060009081526008602052604090205410155b15610f4d57610f4d611375565b601454158015610f6a57506013546001600160a01b038481169116145b15610fd6576001600160a01b038416600090815260086020526040902054610fcd5760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b6044820152606401610891565b610fd643601455565b601554610100900460ff1615611062576001600160a01b03841660009081526016602052604090205460ff1615801561102857506001600160a01b03831660009081526016602052604090205460ff16155b6110625760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610891565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546110b4918490610d9f565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156110f95750600754600160a01b900460ff165b15611169576004546001600160a01b0384166000908152600860205260409020546111249084610d40565b11156111695760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b6044820152606401610891565b6001600160a01b0384166000908152600a602052604081205460ff161580156111ab57506001600160a01b0384166000908152600a602052604090205460ff16155b6111b557826111c0565b6111c08585856116b6565b6001600160a01b0385166000908152600860205260409020549091506111e69082610d40565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061123a9085815260200190565b60405180910390a3506001949350505050565b60006109b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d9f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112e0918490610d9f565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461130f9083610d40565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113639086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113b6916002916113b0919082908790611779565b906117fb565b905060006113c4838361124d565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113fe576113fe611ae8565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b9190611b53565b8160018151811061148e5761148e611ae8565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906114d4908590600090869030904290600401611b70565b600060405180830381600087803b1580156114ee57600080fd5b505af1158015611502573d6000803e3d6000fd5b5050600c54479250600091506115269061151d9060026117fb565b600e549061124d565b9050600061154860026113b0846113b0600c548861177990919063ffffffff16565b90506000611565836113b0600d548761177990919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115bc576040519150601f19603f3d011682016040523d82523d6000602084013e6115c1565b606091505b506000925050881590506116a15760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af115801561163f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116649190611be1565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b038581169116146116d857600e546116dc565b600f545b905060006116ef60646113b08685611779565b3060009081526008602052604090205490915061170c9082610d40565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061175d9085815260200190565b60405180910390a361176f848261124d565b9695505050505050565b60008260000361178b57506000610861565b60006117978385611c0f565b9050826117a48583611c26565b146109b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610891565b60006109b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118595760405162461bcd60e51b81526004016108919190611866565b506000610dd08486611c26565b600060208083528351808285015260005b8181101561189357858101830151858201604001528201611877565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146118c957600080fd5b50565b600080604083850312156118df57600080fd5b82356118ea816118b4565b946020939093013593505050565b6000806040838503121561190b57600080fd5b50508035926020909101359150565b8035801515811461192a57600080fd5b919050565b60006020828403121561194157600080fd5b6109b28261191a565b60008060006060848603121561195f57600080fd5b833561196a816118b4565b9250602084013561197a816118b4565b929592945050506040919091013590565b60006020828403121561199d57600080fd5b81356109b2816118b4565b600080604083850312156119bb57600080fd5b82356119c6816118b4565b91506119d46020840161191a565b90509250929050565b6000806000604084860312156119f257600080fd5b833567ffffffffffffffff80821115611a0a57600080fd5b818601915086601f830112611a1e57600080fd5b813581811115611a2d57600080fd5b8760208260051b8501011115611a4257600080fd5b602092830195509350611a58918601905061191a565b90509250925092565b60008060408385031215611a7457600080fd5b8235611a7f816118b4565b91506020830135611a8f816118b4565b809150509250929050565b600060208284031215611aac57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b2657611b26611afe565b5060010190565b8082018082111561086157610861611afe565b8181038181111561086157610861611afe565b600060208284031215611b6557600080fd5b81516109b2816118b4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc05784516001600160a01b031683529383019391830191600101611b9b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611bf657600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761086157610861611afe565b600082611c4357634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220bd19c9e05c0ee632f9d82b5ce453e6aef85dec5abaf4bd9bb6c90ae6ee3e8b1c64736f6c63430008110033