60806040526003805460ff19166009908117909155600260045560006005556200002b90600a620007d9565b6200003b90633b9aca00620007ea565b60068190556200004e906000196200081a565b6200005c9060001962000831565b60075562000097600a620000836103e86006546200054660201b62001fe81790919060201c565b6200059960201b6200202a1790919060201c565b6009556000600a556064600b556000600c556000600d556101c2600e556000600f55600a54601055600b54601155600c54601255620000e96011546010546200062760201b620020ac1790919060201c565b601355601354601455620001166014620000836127106006546200054660201b62001fe81790919060201c565b6015556016805463ffffff001916630100000017905560408051808201909152600681526525b0b4bd32b760d11b6020820152601790620001589082620008ec565b5060408051808201909152600381526225ad2760e91b6020820152601890620001829082620008ec565b50601b80546001600160a01b031990811673c5c883faaebf22c29658d67bf40d617b5c19006917909155601c805490911661dead179055348015620001c657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000908152601d602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa1580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002959190620009b8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003099190620009b8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000357573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037d9190620009b8565b601a80546001600160a01b03199081166001600160a01b039384161790915560198054909116918316919091179055600160216000620003c56000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260219092528120805490921660019081179092556022906200041e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526022909352818320805485166001908117909155601a54821684528284208054861682179055601c54909116835290822080549093168117909255602490620004a06000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601a5490911681526024909252902080549091166001179055620004ef3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200053791815260200190565b60405180910390a35062000a60565b60006200059083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200068a60201b60201c565b90505b92915050565b600082600003620005ad5750600062000593565b6000620005bb8385620007ea565b905082620005ca8583620009e3565b14620005905760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b600080620006368385620009fa565b905083811015620005905760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200061e565b60008183620006ae5760405162461bcd60e51b81526004016200061e919062000a10565b506000620006bd8486620009e3565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200071d578160001904821115620007015762000701620006c6565b808516156200070f57918102915b93841c9390800290620006e1565b509250929050565b600082620007365750600162000593565b81620007455750600062000593565b81600181146200075e5760028114620007695762000789565b600191505062000593565b60ff8411156200077d576200077d620006c6565b50506001821b62000593565b5060208310610133831016604e8410600b8410161715620007ae575081810a62000593565b620007ba8383620006dc565b8060001904821115620007d157620007d1620006c6565b029392505050565b60006200059060ff84168362000725565b8082028115828204841417620005935762000593620006c6565b634e487b7160e01b600052601260045260246000fd5b6000826200082c576200082c62000804565b500690565b81810381811115620005935762000593620006c6565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200087257607f821691505b6020821081036200089357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008e757600081815260208120601f850160051c81016020861015620008c25750805b601f850160051c820191505b81811015620008e357828155600101620008ce565b5050505b505050565b81516001600160401b0381111562000908576200090862000847565b62000920816200091984546200085d565b8462000899565b602080601f8311600181146200095857600084156200093f5750858301515b600019600386901b1c1916600185901b178555620008e3565b600085815260208120601f198616915b82811015620009895788860151825594840194600190910190840162000968565b5085821015620009a85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009cb57600080fd5b81516001600160a01b03811681146200059057600080fd5b600082620009f557620009f562000804565b500490565b80820180821115620005935762000593620006c6565b600060208083528351808285015260005b8181101562000a3f5785810183015185820160400152820162000a21565b506000604082860101526040601f19601f8301168501019250505092915050565b613a1a8062000a706000396000f3fe6080604052600436106103545760003560e01c806370a08231116101c6578063a9059cbb116100f7578063eafb5a3c11610095578063f3b1e83b1161006f578063f3b1e83b146109da578063fabb0b4f146109f0578063fde9dd9814610a06578063ffb54a9914610a2657600080fd5b8063eafb5a3c1461097a578063f259c57b1461099a578063f2fde38b146109ba57600080fd5b8063dc44b6a0116100d1578063dc44b6a0146108de578063dd62ed3e146108f4578063deaa59df1461093a578063ea2f0b371461095a57600080fd5b8063a9059cbb14610888578063afb8865e146108a8578063bf56b371146108c857600080fd5b806378109e541161016457806388f820201161013e57806388f82020146107fc5780638da5cb5b1461083557806395d89b4114610853578063a457c2d71461086857600080fd5b806378109e54146107b057806384530c46146107c657806388790a68146107e657600080fd5b806372fdf6ee116101a057806372fdf6ee14610744578063743942b61461075a5780637598f8bc1461077a57806376ccdf9a1461079057600080fd5b806370a08231146106ef578063715018a61461070f57806371b9189c1461072457600080fd5b80632d838119116102a057806343b127a61161023e5780634eeaf458116102185780634eeaf4581461066f57806352390c021461068f5780635d54c0af146106af578063632e5442146106cf57600080fd5b806343b127a61461060f5780634549b0391461062f57806349bd5a5e1461064f57600080fd5b80633685d4191161027a5780633685d4191461059957806339509351146105b95780633bd5d173146105d9578063401aa5c0146105f957600080fd5b80632d838119146105375780632dd5efe714610557578063313ce5671461057757600080fd5b80631694505e1161030d57806323b872dd116102e757806323b872dd146104b75780632691bc80146104d757806328a23cd1146104f75780632d4103d61461051757600080fd5b80631694505e1461044a57806318160ddd146104825780631e89d5451461049757600080fd5b80630445b6671461036057806306fdde0314610389578063095ea7b3146103ab5780630f3a325f146103db57806313114a9d1461041357806315e5aba41461042857600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b5061037660155481565b6040519081526020015b60405180910390f35b34801561039557600080fd5b5061039e610a45565b60405161038091906132be565b3480156103b757600080fd5b506103cb6103c6366004613324565b610ad7565b6040519015158152602001610380565b3480156103e757600080fd5b506103cb6103f6366004613350565b6001600160a01b0316600090815260208052604090205460ff1690565b34801561041f57600080fd5b50600854610376565b34801561043457600080fd5b5061044861044336600461337b565b610aee565b005b34801561045657600080fd5b5060195461046a906001600160a01b031681565b6040516001600160a01b039091168152602001610380565b34801561048e57600080fd5b50600654610376565b3480156104a357600080fd5b506104486104b23660046133e4565b610b3f565b3480156104c357600080fd5b506103cb6104d2366004613450565b610d70565b3480156104e357600080fd5b506016546103cb9062010000900460ff1681565b34801561050357600080fd5b50610448610512366004613491565b610dd9565b34801561052357600080fd5b506104486105323660046134ca565b610eeb565b34801561054357600080fd5b506103766105523660046134e8565b610f70565b34801561056357600080fd5b50610448610572366004613350565b610ff4565b34801561058357600080fd5b5060035460405160ff9091168152602001610380565b3480156105a557600080fd5b506104486105b4366004613350565b611042565b3480156105c557600080fd5b506103cb6105d4366004613324565b6111f4565b3480156105e557600080fd5b506104486105f43660046134e8565b61122a565b34801561060557600080fd5b50610376600c5481565b34801561061b57600080fd5b5061044861062a366004613501565b611314565b34801561063b57600080fd5b5061037661064a36600461352d565b61136e565b34801561065b57600080fd5b50601a5461046a906001600160a01b031681565b34801561067b57600080fd5b5061044861068a366004613501565b6113fb565b34801561069b57600080fd5b506104486106aa366004613350565b611433565b3480156106bb57600080fd5b506104486106ca366004613552565b61151d565b3480156106db57600080fd5b506104486106ea3660046135a9565b6115b6565b3480156106fb57600080fd5b5061037661070a366004613350565b611736565b34801561071b57600080fd5b50610448611795565b34801561073057600080fd5b5061044861073f3660046135f5565b611809565b34801561075057600080fd5b50610376600b5481565b34801561076657600080fd5b50610448610775366004613350565b6118a8565b34801561078657600080fd5b50610376600f5481565b34801561079c57600080fd5b506104486107ab366004613637565b611907565b3480156107bc57600080fd5b5061037660095481565b3480156107d257600080fd5b506104486107e13660046135f5565b611951565b3480156107f257600080fd5b50610376600d5481565b34801561080857600080fd5b506103cb610817366004613350565b6001600160a01b031660009081526023602052604090205460ff1690565b34801561084157600080fd5b506000546001600160a01b031661046a565b34801561085f57600080fd5b5061039e6119eb565b34801561087457600080fd5b506103cb610883366004613324565b6119fa565b34801561089457600080fd5b506103cb6108a3366004613324565b611a49565b3480156108b457600080fd5b506104486108c33660046134e8565b611a56565b3480156108d457600080fd5b5061037660055481565b3480156108ea57600080fd5b50610376600a5481565b34801561090057600080fd5b5061037661090f366004613491565b6001600160a01b039182166000908152601f6020908152604080832093909416825291909152205490565b34801561094657600080fd5b50610448610955366004613350565b611aa7565b34801561096657600080fd5b50610448610975366004613350565b611af3565b34801561098657600080fd5b50610448610995366004613350565b611b3e565b3480156109a657600080fd5b506104486109b5366004613350565b611e6a565b3480156109c657600080fd5b506104486109d5366004613350565b611eb8565b3480156109e657600080fd5b50610376600e5481565b3480156109fc57600080fd5b5061037660045481565b348015610a1257600080fd5b50610448610a2136600461337b565b611fa2565b348015610a3257600080fd5b506016546103cb90610100900460ff1681565b606060178054610a5490613659565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8090613659565b8015610acd5780601f10610aa257610100808354040283529160200191610acd565b820191906000526020600020905b815481529060010190602001808311610ab057829003601f168201915b5050505050905090565b6000610ae433848461210b565b5060015b92915050565b6000546001600160a01b03163314610b215760405162461bcd60e51b8152600401610b1890613693565b60405180910390fd5b6016805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b03163314610b695760405162461bcd60e51b8152600401610b1890613693565b6103218310610bd05760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610b18565b828114610c305760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610b18565b6000805b84811015610c8e57600354610c4d9060ff16600a6137c2565b848483818110610c5f57610c5f6137d1565b90506020020135610c7091906137e7565b610c7a90836137fe565b915080610c8681613811565b915050610c34565b5080610c9933611736565b1015610ce75760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610b18565b60005b84811015610d6857610d5633878784818110610d0857610d086137d1565b9050602002016020810190610d1d9190613350565b600354610d2e9060ff16600a6137c2565b878786818110610d4057610d406137d1565b90506020020135610d5191906137e7565b61222f565b80610d6081613811565b915050610cea565b505050505050565b6000610d7d84848461222f565b610dcf8433610dca85604051806060016040528060288152602001613998602891396001600160a01b038a166000908152601f602090815260408083203384529091529020549190612773565b61210b565b5060019392505050565b6000546001600160a01b03163314610e035760405162461bcd60e51b8152600401610b1890613693565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6e919061382a565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af1158015610ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee59190613843565b50505050565b6000546001600160a01b03163314610f155760405162461bcd60e51b8152600401610b1890613693565b6016805461ff00191661010084151502179055610f3130611433565b601a54610f46906001600160a01b0316611433565b601654610100900460ff168015610f5d5750600554155b15610f6c574360055560048190555b5050565b6000600754821115610fd75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610b18565b6000610fe16127ad565b9050610fed8382611fe8565b9392505050565b6000546001600160a01b0316331461101e5760405162461bcd60e51b8152600401610b1890613693565b6001600160a01b03166000908152602260205260409020805460ff19166001179055565b6000546001600160a01b0316331461106c5760405162461bcd60e51b8152600401610b1890613693565b6001600160a01b03811660009081526023602052604090205460ff166110d45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610b18565b60005b602554811015610f6c57816001600160a01b0316602582815481106110fe576110fe6137d1565b6000918252602090912001546001600160a01b0316036111e2576025805461112890600190613860565b81548110611138576111386137d1565b600091825260209091200154602580546001600160a01b039092169183908110611164576111646137d1565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152601e82526040808220829055602390925220805460ff1916905560258054806111bc576111bc613873565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806111ec81613811565b9150506110d7565b336000818152601f602090815260408083206001600160a01b03871684529091528120549091610ae4918590610dca90866120ac565b3360008181526023602052604090205460ff161561129f5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610b18565b60006112aa836127d0565b505050506001600160a01b0384166000908152601d60205260409020549192506112d69190508261281f565b6001600160a01b0383166000908152601d60205260409020556007546112fc908261281f565b60075560085461130c90846120ac565b600855505050565b6000546001600160a01b0316331461133e5760405162461bcd60e51b8152600401610b1890613693565b600a829055600b819055600c83905560128390556010829055601181905561136682826120ac565b601355505050565b60006006548311156113c25760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610b18565b816113e15760006113d2846127d0565b50939550610ae8945050505050565b60006113ec846127d0565b50929550610ae8945050505050565b6000546001600160a01b031633146114255760405162461bcd60e51b8152600401610b1890613693565b600d91909155600e55600f55565b6000546001600160a01b0316331461145d5760405162461bcd60e51b8152600401610b1890613693565b6001600160a01b0381166000908152601d6020526040902054156114b7576001600160a01b0381166000908152601d602052604090205461149d90610f70565b6001600160a01b0382166000908152601e60205260409020555b6001600160a01b03166000818152602360205260408120805460ff191660019081179091556025805491820181559091527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c0180546001600160a01b0319169091179055565b6000546001600160a01b031633146115475760405162461bcd60e51b8152600401610b1890613693565b60005b82811015610ee5578160206000868685818110611569576115696137d1565b905060200201602081019061157e9190613350565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556115af81613811565b905061154a565b6000546001600160a01b031633146115e05760405162461bcd60e51b8152600401610b1890613693565b6107d182106116485760405162461bcd60e51b815260206004820152602e60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526d323030302061646472657373657360901b6064820152608401610b18565b600354600090839061165e9060ff16600a6137c2565b61166890846137e7565b61167291906137e7565b90508061167e33611736565b10156116cc5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610b18565b60005b8381101561172f5761171d338686848181106116ed576116ed6137d1565b90506020020160208101906117029190613350565b6003546117139060ff16600a6137c2565b610d5190876137e7565b8061172781613811565b9150506116cf565b5050505050565b6001600160a01b03811660009081526023602052604081205460ff161561177357506001600160a01b03166000908152601e602052604090205490565b6001600160a01b0382166000908152601d6020526040902054610ae890610f70565b6000546001600160a01b031633146117bf5760405162461bcd60e51b8152600401610b1890613693565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146118335760405162461bcd60e51b8152600401610b1890613693565b60005b818110156118a357600160216000858585818110611856576118566137d1565b905060200201602081019061186b9190613350565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561189c81613811565b9050611836565b505050565b6000546001600160a01b031633146118d25760405162461bcd60e51b8152600401610b1890613693565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610f6c573d6000803e3d6000fd5b6000546001600160a01b031633146119315760405162461bcd60e51b8152600401610b1890613693565b808260065461194091906137e7565b61194a9190613889565b6015555050565b6000546001600160a01b0316331461197b5760405162461bcd60e51b8152600401610b1890613693565b60005b818110156118a35760016024600085858581811061199e5761199e6137d1565b90506020020160208101906119b39190613350565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556119e481613811565b905061197e565b606060188054610a5490613659565b6000610ae43384610dca856040518060600160405280602581526020016139c060259139336000908152601f602090815260408083206001600160a01b038d1684529091529020549190612773565b6000610ae433848461222f565b6000546001600160a01b03163314611a805760405162461bcd60e51b8152600401610b1890613693565b611aa181611a9b6103e8600654611fe890919063ffffffff16565b9061202a565b60095550565b6000546001600160a01b03163314611ad15760405162461bcd60e51b8152600401610b1890613693565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b1d5760405162461bcd60e51b8152600401610b1890613693565b6001600160a01b03166000908152602160205260409020805460ff19169055565b6000546001600160a01b03163314611b685760405162461bcd60e51b8152600401610b1890613693565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd191906138ab565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4291906138ab565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb191906138ab565b90506001600160a01b038116611e2a57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2391906138ab565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9491906138ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0591906138ab565b601a80546001600160a01b0319166001600160a01b0392909216919091179055611e46565b601a80546001600160a01b0319166001600160a01b0383161790555b50601980546001600160a01b0319166001600160a01b039290921691909117905550565b6000546001600160a01b03163314611e945760405162461bcd60e51b8152600401610b1890613693565b6001600160a01b03166000908152602160205260409020805460ff19166001179055565b6000546001600160a01b03163314611ee25760405162461bcd60e51b8152600401610b1890613693565b6001600160a01b038116611f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b18565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611fcc5760405162461bcd60e51b8152600401610b1890613693565b60168054911515620100000262ff000019909216919091179055565b6000610fed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612861565b60008260000361203c57506000610ae8565b600061204883856137e7565b9050826120558583613889565b14610fed5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b18565b6000806120b983856137fe565b905083811015610fed5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b18565b6001600160a01b03831661216d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b18565b6001600160a01b0382166121ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b18565b6001600160a01b038381166000818152601f602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166122935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b18565b6001600160a01b0382166122f55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b18565b600081116123575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b18565b6001600160a01b038216600090815260208052604090205460ff16156123ac5760405162461bcd60e51b815260206004820152600a602482015269536f72727920426f737360b01b6044820152606401610b18565b6001600160a01b038316600090815260208052604090205460ff16156124015760405162461bcd60e51b815260206004820152600a602482015269536f72727920426f737360b01b6044820152606401610b18565b6000546001600160a01b0384811691161480159061242d57506000546001600160a01b03838116911614155b1561248957601654610100900460ff166124895760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610b18565b601a546000906001600160a01b03858116911614806124b55750601a546001600160a01b038481169116145b80156124fd57506001600160a01b03841660009081526021602052604090205460ff16806124fb57506001600160a01b03831660009081526021602052604090205460ff165b155b15612506575060015b600060055411801561254a57506001600160a01b03831660009081526022602052604090205460ff1615801561254a57506000546001600160a01b03858116911614155b801561256457504360045460055461256291906137fe565b115b156125d85760095461257584611736565b61257f90846137fe565b11156125d85760405162461bcd60e51b815260206004820152602260248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d6974604482015261195960f21b6064820152608401610b18565b601354601455600c54601255601654610100900460ff1680156126085750601a546001600160a01b038481169116145b1561262657600e54600d5461261c916120ac565b601455600f546012555b600060055411801561264657504360045460055461264491906137fe565b115b1561266e576001600160a01b03831660009081526020805260409020805460ff191660011790555b600060055411801561268e57506000546001600160a01b03858116911614155b80156126a957506004546005546126a591906137fe565b4311155b80156126be57506016546301000000900460ff165b156126ca576103de6014555b60165462010000900460ff161561270a57601654610100900460ff1680156126ff5750601a546001600160a01b038581169116145b1561270a5760006014555b60165460ff161580156127245750601654610100900460ff165b801561273d5750601a546001600160a01b038481169116145b1561276757600061274d30611736565b9050601554811061276557506015546127658161288f565b505b610ee58484848461297b565b600081848411156127975760405162461bcd60e51b8152600401610b1891906132be565b5060006127a48486613860565b95945050505050565b60008060006127ba612aa7565b90925090506127c98282611fe8565b9250505090565b60008060008060008060008060006127e78a612c29565b92509250925060008060006128058d86866128006127ad565b612c6b565b919f909e50909c50959a5093985091965092945050505050565b6000610fed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612773565b600081836128825760405162461bcd60e51b8152600401610b1891906132be565b5060006127a48486613889565b6016805460ff191660011790556013546010546000916128bf916002916128b9918290879061202a565b90611fe8565b905060006128cd838361281f565b90506128d881612cbb565b60105447906000906128f8906128ef906002611fe8565b6013549061281f565b9050600061291a60026128b9846128b96010548861202a90919063ffffffff16565b90506000612937836128b96011548761202a90919063ffffffff16565b905047801561295757601b546129579083906001600160a01b0316612e4e565b8615612967576129678784612e84565b50506016805460ff19169055505050505050565b6012546014548261299157600060128190556014555b6001600160a01b03861660009081526023602052604090205460ff1680156129d257506001600160a01b03851660009081526023602052604090205460ff16155b156129e7576129e2868686612f52565b612a93565b6001600160a01b03861660009081526023602052604090205460ff16158015612a2857506001600160a01b03851660009081526023602052604090205460ff165b15612a38576129e2868686613078565b6001600160a01b03861660009081526023602052604090205460ff168015612a7857506001600160a01b03851660009081526023602052604090205460ff165b15612a88576129e2868686613121565b612a93868686613194565b82610d685760129190915560145550505050565b6007546006546000918291825b602554811015612bf95782601d600060258481548110612ad657612ad66137d1565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612b41575081601e600060258481548110612b1a57612b1a6137d1565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15612b5757600754600654945094505050509091565b612b9d601d600060258481548110612b7157612b716137d1565b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061281f565b9250612be5601e600060258481548110612bb957612bb96137d1565b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061281f565b915080612bf181613811565b915050612ab4565b50600654600754612c0991611fe8565b821015612c20576007546006549350935050509091565b90939092509050565b600080600080612c38856131d8565b90506000612c45866131f5565b90506000612c5d82612c57898661281f565b9061281f565b979296509094509092505050565b6000808080612c7a888661202a565b90506000612c88888761202a565b90506000612c96888861202a565b90506000612ca882612c57868661281f565b939b939a50919850919650505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612cf057612cf06137d1565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6d91906138ab565b81600181518110612d8057612d806137d1565b6001600160a01b039283166020918202929092010152601954612da6913091168461210b565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790612ddf90859060009086903090429060040161390c565b600060405180830381600087803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612e42929190613948565b60405180910390a15050565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156118a3573d6000803e3d6000fd5b601954612e9c9030906001600160a01b03168461210b565b6019546001600160a01b031663f305d719823085600080612ec56000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612f2d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061172f9190613969565b600080600080600080612f64876127d0565b6001600160a01b038f166000908152601e6020526040902054959b50939950919750955093509150612f96908861281f565b6001600160a01b038a166000908152601e6020908152604080832093909355601d90522054612fc5908761281f565b6001600160a01b03808b166000908152601d602052604080822093909355908a1681522054612ff490866120ac565b6001600160a01b0389166000908152601d602052604090205561301681613212565b613020848361329a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161306591815260200190565b60405180910390a3505050505050505050565b60008060008060008061308a876127d0565b6001600160a01b038f166000908152601d6020526040902054959b509399509197509550935091506130bc908761281f565b6001600160a01b03808b166000908152601d6020908152604080832094909455918b168152601e90915220546130f290846120ac565b6001600160a01b0389166000908152601e6020908152604080832093909355601d90522054612ff490866120ac565b600080600080600080613133876127d0565b6001600160a01b038f166000908152601e6020526040902054959b50939950919750955093509150613165908861281f565b6001600160a01b038a166000908152601e6020908152604080832093909355601d905220546130bc908761281f565b6000806000806000806131a6876127d0565b6001600160a01b038f166000908152601d6020526040902054959b50939950919750955093509150612fc5908761281f565b6000610ae86103e86128b96012548561202a90919063ffffffff16565b6000610ae86103e86128b96014548561202a90919063ffffffff16565b600061321c6127ad565b9050600061322a838361202a565b306000908152601d602052604090205490915061324790826120ac565b306000908152601d602090815260408083209390935560239052205460ff16156118a357306000908152601e602052604090205461328590846120ac565b306000908152601e6020526040902055505050565b6007546132a7908361281f565b6007556008546132b790826120ac565b6008555050565b600060208083528351808285015260005b818110156132eb578581018301518582016040015282016132cf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461332157600080fd5b50565b6000806040838503121561333757600080fd5b82356133428161330c565b946020939093013593505050565b60006020828403121561336257600080fd5b8135610fed8161330c565b801515811461332157600080fd5b60006020828403121561338d57600080fd5b8135610fed8161336d565b60008083601f8401126133aa57600080fd5b50813567ffffffffffffffff8111156133c257600080fd5b6020830191508360208260051b85010111156133dd57600080fd5b9250929050565b600080600080604085870312156133fa57600080fd5b843567ffffffffffffffff8082111561341257600080fd5b61341e88838901613398565b9096509450602087013591508082111561343757600080fd5b5061344487828801613398565b95989497509550505050565b60008060006060848603121561346557600080fd5b83356134708161330c565b925060208401356134808161330c565b929592945050506040919091013590565b600080604083850312156134a457600080fd5b82356134af8161330c565b915060208301356134bf8161330c565b809150509250929050565b600080604083850312156134dd57600080fd5b82356133428161336d565b6000602082840312156134fa57600080fd5b5035919050565b60008060006060848603121561351657600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561354057600080fd5b8235915060208301356134bf8161336d565b60008060006040848603121561356757600080fd5b833567ffffffffffffffff81111561357e57600080fd5b61358a86828701613398565b909450925050602084013561359e8161336d565b809150509250925092565b6000806000604084860312156135be57600080fd5b833567ffffffffffffffff8111156135d557600080fd5b6135e186828701613398565b909790965060209590950135949350505050565b6000806020838503121561360857600080fd5b823567ffffffffffffffff81111561361f57600080fd5b61362b85828601613398565b90969095509350505050565b6000806040838503121561364a57600080fd5b50508035926020909101359150565b600181811c9082168061366d57607f821691505b60208210810361368d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137195781600019048211156136ff576136ff6136c8565b8085161561370c57918102915b93841c93908002906136e3565b509250929050565b60008261373057506001610ae8565b8161373d57506000610ae8565b8160018114613753576002811461375d57613779565b6001915050610ae8565b60ff84111561376e5761376e6136c8565b50506001821b610ae8565b5060208310610133831016604e8410600b841016171561379c575081810a610ae8565b6137a683836136de565b80600019048211156137ba576137ba6136c8565b029392505050565b6000610fed60ff841683613721565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610ae857610ae86136c8565b80820180821115610ae857610ae86136c8565b600060018201613823576138236136c8565b5060010190565b60006020828403121561383c57600080fd5b5051919050565b60006020828403121561385557600080fd5b8151610fed8161336d565b81810381811115610ae857610ae86136c8565b634e487b7160e01b600052603160045260246000fd5b6000826138a657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156138bd57600080fd5b8151610fed8161330c565b600081518084526020808501945080840160005b838110156139015781516001600160a01b0316875295820195908201906001016138dc565b509495945050505050565b85815284602082015260a06040820152600061392b60a08301866138c8565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061396160408301846138c8565b949350505050565b60008060006060848603121561397e57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f5e1c33904e3086406bc118d7d8276ce1c06b506650c8bb3b12b31b6736da56364736f6c63430008120033