0x6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f517146106fc578063f2fde38b1461071c578063f84ba65d1461073c578063f887ea401461075c578063fe575a871461077c578063ffb54a99146107ac57600080fd5b8063bf56b3711461064a578063ca33e64c14610660578063ca987b0e14610680578063da00097d14610696578063dd62ed3e146106b657600080fd5b80638da5cb5b116101085780638da5cb5b146105675780638e2eee84146105d457806395d89b411461029557806398118cb4146105f4578063a8aa1b311461060a578063a9059cbb1461062a57600080fd5b80637d1db4a51461053b578063807c2d9c14610551578063893d20e814610567578063896648c1146105855780638b42507f146105a457600080fd5b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b14610462578063658d4b7f146104825780636b67c4df146104a257806370a08231146104b8578063715018a6146104ee57806375f0a8741461050357600080fd5b8063313ce567146103b65780633f4218e0146103d257806344de2e4c146104025780634a74bb0214610423578063571ac8b01461044257600080fd5b806318160ddd1161022457806318160ddd1461033c5780631df4ccfc14610351578063220f66961461036757806323b872dd146103815780632b112e49146103a157600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102ca5780630b78f9c0146102fa5780630d2959801461031c57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b50604080518082018252600681526546696761726f60d01b6020820152905161028c9190611a9a565b3480156102d657600080fd5b506102ea6102e5366004611970565b6107c6565b604051901515815260200161028c565b34801561030657600080fd5b5061031a610315366004611a4c565b610833565b005b34801561032857600080fd5b5061031a610337366004611a1a565b610886565b34801561034857600080fd5b50600254610282565b34801561035d57600080fd5b50610282600e5481565b34801561037357600080fd5b506017546102ea9060ff1681565b34801561038d57600080fd5b506102ea61039c3660046118fc565b6108c3565b3480156103ad57600080fd5b50610282610985565b3480156103c257600080fd5b506040516012815260200161028c565b3480156103de57600080fd5b506102ea6103ed36600461188c565b600a6020526000908152604090205460ff1681565b34801561040e57600080fd5b506007546102ea90600160a01b900460ff1681565b34801561042f57600080fd5b506017546102ea90610100900460ff1681565b34801561044e57600080fd5b506102ea61045d36600461188c565b6109d7565b34801561046e57600080fd5b5061031a61047d366004611a1a565b6109e5565b34801561048e57600080fd5b5061031a61049d36600461193c565b610a29565b3480156104ae57600080fd5b50610282600d5481565b3480156104c457600080fd5b506102826104d336600461188c565b6001600160a01b031660009081526008602052604090205490565b3480156104fa57600080fd5b5061031a610a7e565b34801561050f57600080fd5b50601154610523906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561054757600080fd5b5061028260035481565b34801561055d57600080fd5b5061028260045481565b34801561057357600080fd5b506000546001600160a01b0316610523565b34801561059157600080fd5b506015546102ea90610100900460ff1681565b3480156105b057600080fd5b506102ea6105bf36600461188c565b600b6020526000908152604090205460ff1681565b3480156105e057600080fd5b5061031a6105ef36600461199b565b610af2565b34801561060057600080fd5b50610282600c5481565b34801561061657600080fd5b50601354610523906001600160a01b031681565b34801561063657600080fd5b506102ea610645366004611970565b610b9f565b34801561065657600080fd5b5061028260145481565b34801561066c57600080fd5b50601054610523906001600160a01b031681565b34801561068c57600080fd5b50610282600f5481565b3480156106a257600080fd5b506017546102ea9062010000900460ff1681565b3480156106c257600080fd5b506102826106d13660046118c4565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561070857600080fd5b5061031a610717366004611a34565b610bac565b34801561072857600080fd5b5061031a61073736600461188c565b610bdb565b34801561074857600080fd5b5061031a61075736600461193c565b610cc5565b34801561076857600080fd5b50601254610523906001600160a01b031681565b34801561078857600080fd5b506102ea61079736600461188c565b60166020526000908152604090205460ff1681565b3480156107b857600080fd5b506015546102ea9060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108219086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161085d90611aed565b60405180910390fd5b600c829055600d81905561087a8282610d1a565b600e819055600f555050565b6000546001600160a01b031633146108b05760405162461bcd60e51b815260040161085d90611aed565b6015805460ff1916911515919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610970576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461094b918490610d79565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61097b848484610db3565b90505b9392505050565b6006546001600160a01b03166000908152600860205260408120546109d2906005546001600160a01b03166000908152600860205260409020546109cc9060025490611227565b90611227565b905090565b600061082d826000196107c6565b6000546001600160a01b03163314610a0f5760405162461bcd60e51b815260040161085d90611aed565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a535760405162461bcd60e51b815260040161085d90611aed565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610aa85760405162461bcd60e51b815260040161085d90611aed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161085d90611aed565b60005b82811015610b99578160166000868685818110610b4c57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b61919061188c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b9281611c00565b9050610b1f565b50505050565b600061097e338484610db3565b6000546001600160a01b03163314610bd65760405162461bcd60e51b815260040161085d90611aed565b600455565b6000546001600160a01b03163314610c055760405162461bcd60e51b815260040161085d90611aed565b6001600160a01b038116610c6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cef5760405162461bcd60e51b815260040161085d90611aed565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d278385611b92565b90508381101561097e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161085d565b60008184841115610d9d5760405162461bcd60e51b815260040161085d9190611a9a565b506000610daa8486611be9565b95945050505050565b60175460009060ff1615610dd357610dcc848484611269565b905061097e565b6001600160a01b03841660009081526001602052604090205460ff16158015610e1557506001600160a01b03831660009081526001602052604090205460ff16155b15610e635760155460ff16610e635760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161085d565b60035482111580610e8c57506001600160a01b0384166000908152600b602052604090205460ff165b610ecc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161085d565b6013546001600160a01b03163314801590610eea575060175460ff16155b8015610efd5750601754610100900460ff165b8015610f1a57506018543060009081526008602052604090205410155b15610f2757610f2761134f565b601454158015610f4457506013546001600160a01b038481169116145b15610fb0576001600160a01b038416600090815260086020526040902054610fa75760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161085d565b610fb043601455565b601554610100900460ff161561103c576001600160a01b03841660009081526016602052604090205460ff1615801561100257506001600160a01b03831660009081526016602052604090205460ff16155b61103c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161085d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461108e918490610d79565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156110d35750600754600160a01b900460ff165b15611143576004546001600160a01b0384166000908152600860205260409020546110fe9084610d1a565b11156111435760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161085d565b6001600160a01b0384166000908152600a602052604081205460ff1615801561118557506001600160a01b0384166000908152600a602052604090205460ff16155b61118f578261119a565b61119a8585856116ca565b6001600160a01b0385166000908152600860205260409020549091506111c09082610d1a565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112149085815260200190565b60405180910390a3506001949350505050565b600061097e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d79565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112ba918490610d79565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112e99083610d1a565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061133d9086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113909160029161138a91908290879061178d565b9061180c565b9050600061139e8383611227565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113e657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561143a57600080fd5b505afa15801561144e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147291906118a8565b8160018151811061149357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906114d9908590600090869030904290600401611b22565b600060405180830381600087803b1580156114f357600080fd5b505af1158015611507573d6000803e3d6000fd5b5050600c544792506000915061152b9061152290600261180c565b600e5490611227565b9050600061154d600261138a8461138a600c548861178d90919063ffffffff16565b9050600061156a8361138a600d548761178d90919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115c1576040519150601f19603f3d011682016040523d82523d6000602084013e6115c6565b606091505b506000925050881590506116b55760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116789190611a6d565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b038581169116146116ec57600e546116f0565b600f545b90506000611703606461138a868561178d565b306000908152600860205260409020549091506117209082610d1a565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117719085815260200190565b60405180910390a36117838482611227565b9695505050505050565b60008261179c5750600061082d565b60006117a88385611bca565b9050826117b58583611baa565b1461097e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161085d565b600061097e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361186a5760405162461bcd60e51b815260040161085d9190611a9a565b506000610daa8486611baa565b8035801515811461188757600080fd5b919050565b60006020828403121561189d578081fd5b813561097e81611c31565b6000602082840312156118b9578081fd5b815161097e81611c31565b600080604083850312156118d6578081fd5b82356118e181611c31565b915060208301356118f181611c31565b809150509250929050565b600080600060608486031215611910578081fd5b833561191b81611c31565b9250602084013561192b81611c31565b929592945050506040919091013590565b6000806040838503121561194e578182fd5b823561195981611c31565b915061196760208401611877565b90509250929050565b60008060408385031215611982578182fd5b823561198d81611c31565b946020939093013593505050565b6000806000604084860312156119af578283fd5b833567ffffffffffffffff808211156119c6578485fd5b818601915086601f8301126119d9578485fd5b8135818111156119e7578586fd5b8760208260051b85010111156119fb578586fd5b602092830195509350611a119186019050611877565b90509250925092565b600060208284031215611a2b578081fd5b61097e82611877565b600060208284031215611a45578081fd5b5035919050565b60008060408385031215611a5e578182fd5b50508035926020909101359150565b600080600060608486031215611a81578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611ac657858101830151858201604001528201611aaa565b81811115611ad75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b715784516001600160a01b031683529383019391830191600101611b4c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ba557611ba5611c1b565b500190565b600082611bc557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611be457611be4611c1b565b500290565b600082821015611bfb57611bfb611c1b565b500390565b6000600019821415611c1457611c14611c1b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c4657600080fd5b5056fea2646970667358221220896af7bcc040bd3734f953d481ff0f764cbdca117c7610dd8bf5b08face8bca364736f6c63430008040033
0x6080604052620000126012600a6200056b565b62000023906402540be40062000637565b600281905560038190556004818155600580546001600160a01b031990811661dead1782556006805490911690556007805474017a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a81b03199091161790556001600c55600d829055600e819055600f556015805461ffff191690556017805462ffff0019166101001790556107d091620000b69162000637565b620000c2919062000501565b601855348015620000d257600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200018557600080fd5b505afa1580156200019a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c09190620004bd565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021d57600080fd5b505afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002589190620004bd565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002a057600080fd5b505af1158015620002b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002db9190620004bd565b601380546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601254881684528252808320600019908190558654881684528184205533808452600a8352818420805460ff1990811660019081179092559585528285208054871682179055600580548a1686528386208054881683179055918552600b845282852080548716821790559654881684528184208054861688179055549096168252949020805490911690921790915560108054821673894553ee5a9e05787a7cec253cf77a824b06bc451790556011805490911673872858e4e9dca1236a63946d596ba6786973b385179055600d54600c54620003f59290919062000d1a6200044e821b17901c565b600e819055600f5560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200066f565b6000806200045d8385620004e6565b905083811015620004b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b600060208284031215620004cf578081fd5b81516001600160a01b0381168114620004b4578182fd5b60008219821115620004fc57620004fc62000659565b500190565b6000826200051d57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156200056357816000190482111562000547576200054762000659565b808516156200055557918102915b93841c939080029062000527565b509250929050565b60006200057c60ff84168362000583565b9392505050565b6000826200059457506001620004b7565b81620005a357506000620004b7565b8160018114620005bc5760028114620005c757620005e7565b6001915050620004b7565b60ff841115620005db57620005db62000659565b50506001821b620004b7565b5060208310610133831016604e8410600b84101617156200060c575081810a620004b7565b62000618838362000522565b80600019048211156200062f576200062f62000659565b029392505050565b600081600019048311821515161562000654576200065462000659565b500290565b634e487b7160e01b600052601160045260246000fd5b611c7f806200067f6000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f517146106fc578063f2fde38b1461071c578063f84ba65d1461073c578063f887ea401461075c578063fe575a871461077c578063ffb54a99146107ac57600080fd5b8063bf56b3711461064a578063ca33e64c14610660578063ca987b0e14610680578063da00097d14610696578063dd62ed3e146106b657600080fd5b80638da5cb5b116101085780638da5cb5b146105675780638e2eee84146105d457806395d89b411461029557806398118cb4146105f4578063a8aa1b311461060a578063a9059cbb1461062a57600080fd5b80637d1db4a51461053b578063807c2d9c14610551578063893d20e814610567578063896648c1146105855780638b42507f146105a457600080fd5b8063313ce567116101dd5780635e562f3b116101a15780635e562f3b14610462578063658d4b7f146104825780636b67c4df146104a257806370a08231146104b8578063715018a6146104ee57806375f0a8741461050357600080fd5b8063313ce567146103b65780633f4218e0146103d257806344de2e4c146104025780634a74bb0214610423578063571ac8b01461044257600080fd5b806318160ddd1161022457806318160ddd1461033c5780631df4ccfc14610351578063220f66961461036757806323b872dd146103815780632b112e49146103a157600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102ca5780630b78f9c0146102fa5780630d2959801461031c57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b50604080518082018252600681526546696761726f60d01b6020820152905161028c9190611a9a565b3480156102d657600080fd5b506102ea6102e5366004611970565b6107c6565b604051901515815260200161028c565b34801561030657600080fd5b5061031a610315366004611a4c565b610833565b005b34801561032857600080fd5b5061031a610337366004611a1a565b610886565b34801561034857600080fd5b50600254610282565b34801561035d57600080fd5b50610282600e5481565b34801561037357600080fd5b506017546102ea9060ff1681565b34801561038d57600080fd5b506102ea61039c3660046118fc565b6108c3565b3480156103ad57600080fd5b50610282610985565b3480156103c257600080fd5b506040516012815260200161028c565b3480156103de57600080fd5b506102ea6103ed36600461188c565b600a6020526000908152604090205460ff1681565b34801561040e57600080fd5b506007546102ea90600160a01b900460ff1681565b34801561042f57600080fd5b506017546102ea90610100900460ff1681565b34801561044e57600080fd5b506102ea61045d36600461188c565b6109d7565b34801561046e57600080fd5b5061031a61047d366004611a1a565b6109e5565b34801561048e57600080fd5b5061031a61049d36600461193c565b610a29565b3480156104ae57600080fd5b50610282600d5481565b3480156104c457600080fd5b506102826104d336600461188c565b6001600160a01b031660009081526008602052604090205490565b3480156104fa57600080fd5b5061031a610a7e565b34801561050f57600080fd5b50601154610523906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561054757600080fd5b5061028260035481565b34801561055d57600080fd5b5061028260045481565b34801561057357600080fd5b506000546001600160a01b0316610523565b34801561059157600080fd5b506015546102ea90610100900460ff1681565b3480156105b057600080fd5b506102ea6105bf36600461188c565b600b6020526000908152604090205460ff1681565b3480156105e057600080fd5b5061031a6105ef36600461199b565b610af2565b34801561060057600080fd5b50610282600c5481565b34801561061657600080fd5b50601354610523906001600160a01b031681565b34801561063657600080fd5b506102ea610645366004611970565b610b9f565b34801561065657600080fd5b5061028260145481565b34801561066c57600080fd5b50601054610523906001600160a01b031681565b34801561068c57600080fd5b50610282600f5481565b3480156106a257600080fd5b506017546102ea9062010000900460ff1681565b3480156106c257600080fd5b506102826106d13660046118c4565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561070857600080fd5b5061031a610717366004611a34565b610bac565b34801561072857600080fd5b5061031a61073736600461188c565b610bdb565b34801561074857600080fd5b5061031a61075736600461193c565b610cc5565b34801561076857600080fd5b50601254610523906001600160a01b031681565b34801561078857600080fd5b506102ea61079736600461188c565b60166020526000908152604090205460ff1681565b3480156107b857600080fd5b506015546102ea9060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108219086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108665760405162461bcd60e51b815260040161085d90611aed565b60405180910390fd5b600c829055600d81905561087a8282610d1a565b600e819055600f555050565b6000546001600160a01b031633146108b05760405162461bcd60e51b815260040161085d90611aed565b6015805460ff1916911515919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610970576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260098252838120338252909152919091205461094b918490610d79565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61097b848484610db3565b90505b9392505050565b6006546001600160a01b03166000908152600860205260408120546109d2906005546001600160a01b03166000908152600860205260409020546109cc9060025490611227565b90611227565b905090565b600061082d826000196107c6565b6000546001600160a01b03163314610a0f5760405162461bcd60e51b815260040161085d90611aed565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a535760405162461bcd60e51b815260040161085d90611aed565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610aa85760405162461bcd60e51b815260040161085d90611aed565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161085d90611aed565b60005b82811015610b99578160166000868685818110610b4c57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b61919061188c565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b9281611c00565b9050610b1f565b50505050565b600061097e338484610db3565b6000546001600160a01b03163314610bd65760405162461bcd60e51b815260040161085d90611aed565b600455565b6000546001600160a01b03163314610c055760405162461bcd60e51b815260040161085d90611aed565b6001600160a01b038116610c6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161085d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cef5760405162461bcd60e51b815260040161085d90611aed565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d278385611b92565b90508381101561097e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161085d565b60008184841115610d9d5760405162461bcd60e51b815260040161085d9190611a9a565b506000610daa8486611be9565b95945050505050565b60175460009060ff1615610dd357610dcc848484611269565b905061097e565b6001600160a01b03841660009081526001602052604090205460ff16158015610e1557506001600160a01b03831660009081526001602052604090205460ff16155b15610e635760155460ff16610e635760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161085d565b60035482111580610e8c57506001600160a01b0384166000908152600b602052604090205460ff165b610ecc5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161085d565b6013546001600160a01b03163314801590610eea575060175460ff16155b8015610efd5750601754610100900460ff165b8015610f1a57506018543060009081526008602052604090205410155b15610f2757610f2761134f565b601454158015610f4457506013546001600160a01b038481169116145b15610fb0576001600160a01b038416600090815260086020526040902054610fa75760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161085d565b610fb043601455565b601554610100900460ff161561103c576001600160a01b03841660009081526016602052604090205460ff1615801561100257506001600160a01b03831660009081526016602052604090205460ff16155b61103c5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161085d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461108e918490610d79565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156110d35750600754600160a01b900460ff165b15611143576004546001600160a01b0384166000908152600860205260409020546110fe9084610d1a565b11156111435760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161085d565b6001600160a01b0384166000908152600a602052604081205460ff1615801561118557506001600160a01b0384166000908152600a602052604090205460ff16155b61118f578261119a565b61119a8585856116ca565b6001600160a01b0385166000908152600860205260409020549091506111c09082610d1a565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112149085815260200190565b60405180910390a3506001949350505050565b600061097e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d79565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112ba918490610d79565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546112e99083610d1a565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061133d9086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113909160029161138a91908290879061178d565b9061180c565b9050600061139e8383611227565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106113e657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561143a57600080fd5b505afa15801561144e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147291906118a8565b8160018151811061149357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac947906114d9908590600090869030904290600401611b22565b600060405180830381600087803b1580156114f357600080fd5b505af1158015611507573d6000803e3d6000fd5b5050600c544792506000915061152b9061152290600261180c565b600e5490611227565b9050600061154d600261138a8461138a600c548861178d90919063ffffffff16565b9050600061156a8361138a600d548761178d90919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115c1576040519150601f19603f3d011682016040523d82523d6000602084013e6115c6565b606091505b506000925050881590506116b55760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116789190611a6d565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b038581169116146116ec57600e546116f0565b600f545b90506000611703606461138a868561178d565b306000908152600860205260409020549091506117209082610d1a565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117719085815260200190565b60405180910390a36117838482611227565b9695505050505050565b60008261179c5750600061082d565b60006117a88385611bca565b9050826117b58583611baa565b1461097e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161085d565b600061097e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361186a5760405162461bcd60e51b815260040161085d9190611a9a565b506000610daa8486611baa565b8035801515811461188757600080fd5b919050565b60006020828403121561189d578081fd5b813561097e81611c31565b6000602082840312156118b9578081fd5b815161097e81611c31565b600080604083850312156118d6578081fd5b82356118e181611c31565b915060208301356118f181611c31565b809150509250929050565b600080600060608486031215611910578081fd5b833561191b81611c31565b9250602084013561192b81611c31565b929592945050506040919091013590565b6000806040838503121561194e578182fd5b823561195981611c31565b915061196760208401611877565b90509250929050565b60008060408385031215611982578182fd5b823561198d81611c31565b946020939093013593505050565b6000806000604084860312156119af578283fd5b833567ffffffffffffffff808211156119c6578485fd5b818601915086601f8301126119d9578485fd5b8135818111156119e7578586fd5b8760208260051b85010111156119fb578586fd5b602092830195509350611a119186019050611877565b90509250925092565b600060208284031215611a2b578081fd5b61097e82611877565b600060208284031215611a45578081fd5b5035919050565b60008060408385031215611a5e578182fd5b50508035926020909101359150565b600080600060608486031215611a81578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611ac657858101830151858201604001528201611aaa565b81811115611ad75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b715784516001600160a01b031683529383019391830191600101611b4c565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ba557611ba5611c1b565b500190565b600082611bc557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611be457611be4611c1b565b500290565b600082821015611bfb57611bfb611c1b565b500390565b6000600019821415611c1457611c14611c1b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c4657600080fd5b5056fea2646970667358221220896af7bcc040bd3734f953d481ff0f764cbdca117c7610dd8bf5b08face8bca364736f6c63430008040033