15 txs
8.5k calls
constructor
constructor()
functions
_blacklist
viewfunction _blacklist(address) view returns (bool)
_getReserves
viewfunction _getReserves(address pair) view returns (uint256 rOther, uint256 rThis, uint256 balanceOther)
_isExcludedFromFees
viewfunction _isExcludedFromFees(address) view returns (bool)
_userInfo
viewfunction _userInfo(address) view returns (uint256 lpAmount, bool preLP)
addLPTax
viewfunction addLPTax() view returns (uint256)
ai
viewfunction ai() view returns (address)
airdrop
viewfunction airdrop() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
automatedMarketMakerPairs
viewfunction automatedMarketMakerPairs(address) view returns (bool)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
buyCLPTax
viewfunction buyCLPTax() view returns (uint256)
buyLPTax
viewfunction buyLPTax() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
gasForProcessing
viewfunction gasForProcessing() view returns (uint256)
getUserInfo
viewfunction getUserInfo(address account) view returns (uint256 lpAmount, uint256 lpBalance, bool preLP)
isExcludedFromFees
viewfunction isExcludedFromFees(address account) view returns (bool)
limitAmount
viewfunction limitAmount() view returns (uint256)
lpTracker
viewfunction lpTracker() view returns (address)
marketAddress
viewfunction marketAddress() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
receiveAddress
viewfunction receiveAddress() view returns (address)
removeLPTax
viewfunction removeLPTax() view returns (uint256)
router
viewfunction router() view returns (address)
sellCLPTax
viewfunction sellCLPTax() view returns (uint256)
sellLPTax
viewfunction sellLPTax() view returns (uint256)
startSwapTime
viewfunction startSwapTime() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
tokenDistributor
viewfunction tokenDistributor() view returns (address)
totalBuyTax
viewfunction totalBuyTax() view returns (uint256)
totalSellTax
viewfunction totalSellTax() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalTransTax
viewfunction totalTransTax() view returns (uint256)
uniswapV2Pair
viewfunction uniswapV2Pair() view returns (address)
uniswapV2Router
viewfunction uniswapV2Router() view returns (address)
usdt
viewfunction usdt() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claim
nonpayablefunction claim()
claimStuckETH
nonpayablefunction claimStuckETH()
claimStuckToken
nonpayablefunction claimStuckToken(address _token, uint256 _amount)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
excludeFromDividends
nonpayablefunction excludeFromDividends(address account)
excludeFromFees
nonpayablefunction excludeFromFees(address account, bool excluded)
excludeMultipleAccountsFromDividends
nonpayablefunction excludeMultipleAccountsFromDividends(address[] accounts)
excludeMultipleAccountsFromFees
nonpayablefunction excludeMultipleAccountsFromFees(address[] accounts, bool excluded)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initLPAmounts
nonpayablefunction initLPAmounts(address[] accounts, uint256 lpAmounts)
matchLPAmounts
nonpayablefunction matchLPAmounts(address[] accounts)
renounceOwnership
nonpayablefunction renounceOwnership()
setAIAddr
nonpayablefunction setAIAddr(address _addr)
setAirdrop
nonpayablefunction setAirdrop(uint256 _airdrop)
setAutomatedMarketMakerPair
nonpayablefunction setAutomatedMarketMakerPair(address pair, bool value)
setBlacklist
nonpayablefunction setBlacklist(address[] accounts, bool excluded)
setBuyFees
nonpayablefunction setBuyFees(uint256 _buyCLPTax, uint256 _buyLPTax)
setLimitAmount
nonpayablefunction setLimitAmount(uint256 _limitAmount)
setLPFees
nonpayablefunction setLPFees(uint256 _addLPTax, uint256 _removeLPTax)
setMarketAddress
nonpayablefunction setMarketAddress(address _marketAddress)
setSellFees
nonpayablefunction setSellFees(uint256 _sellCLPTax, uint256 _sellLPTax)
setStartTime
nonpayablefunction setStartTime(uint256 _starttime)
setTransFees
nonpayablefunction setTransFees(uint256 _totalTransTax)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateClaimWait
nonpayablefunction updateClaimWait(uint256 claimWait)
updateGasForProcessing
nonpayablefunction updateGasForProcessing(uint256 newValue)
updateLPAmount
nonpayablefunction updateLPAmount(address account, uint256 lpAmount)
updateLPAmountByLP
nonpayablefunction updateLPAmountByLP(address account)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
ExcludeFromFees
event ExcludeFromFees(address indexed account, bool isExcluded)
ExcludeMultipleAccountsFromFees
event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded)
GasForProcessingUpdated
event GasForProcessingUpdated(uint256 indexed newValue, uint256 indexed oldValue)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProcessedDividendTracker
event ProcessedDividendTracker(uint256 iterations, uint256 claims, uint256 lastProcessedIndex, bool indexed automatic, uint256 gas, address indexed processor)
SendDividends
event SendDividends(uint256 tokensSwapped, uint256 amount)
SetAutomatedMarketMakerPair
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
UpdateDividendTracker
event UpdateDividendTracker(address indexed newAddress, address indexed oldAddress)
errors
No errors.
creation bytecode
0x6080604052683635c9adc5dea00000600955600c80546001600160a01b03199081167305723062c1cf930b4b21f97b4e24f4ff658b545917909155600d80549091167344b67ef34245ea59bf969fb540eea2d259530e14179055620493e0600e55600060118190556012819055601355601480805560158190556200008590806200091d565b601655601460178190556018819055620000a090806200091d565b6019556000601a556001601f55348015620000ba57600080fd5b5060408051808201825260038082526208292b60eb1b60208084018290528451808601909552828552840152909190620000f58382620009e5565b506004620001048282620009e5565b5050506000620001196200057e60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350466038819003620001c057600a80546001600160a01b03199081167310ed43c718714eb63d5aa57b78b54704e256024e17909155600b80549091167355d398326f99059ff775485246999027b319795517905562000209565b600a80546001600160a01b031990811673d99d1c33f9fc3444f8101754abc46c52416550d117909155600b8054909116734b0ff2e3d7fef9205f88f54a9fed361cea53ef6f1790555b600b54306001600160a01b0390911610620002555760405162461bcd60e51b81526020600482015260076024820152663a9032b93937b960c91b60448201526064015b60405180910390fd5b600b546040516001600160a01b0390911690620002729062000901565b6001600160a01b039091168152602001604051809103906000f0801580156200029f573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03928316908117909155600c5460405163031e79db60e41b815292166004830152906331e79db090602401600060405180830381600087803b158015620002fb57600080fd5b505af115801562000310573d6000803e3d6000fd5b505060085460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b1580156200035a57600080fd5b505af11580156200036f573d6000803e3d6000fd5b5050600a546040805163c45a015560e01b815290516001600160a01b03909216935060009250839163c45a0155916004808201926020929091908290030181865afa158015620003c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e9919062000ab1565b600b546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af11580156200043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000461919062000ab1565b600680546001600160a01b038086166001600160a01b03199283161790925560078054928416929091169190911790559050620004a081600162000582565b620004bf620004b76005546001600160a01b031690565b6001620006f1565b600c54620004d8906001600160a01b03166001620006f1565b620004e5306001620006f1565b620004f461dead6001620006f1565b600b546040516001600160a01b039091169062000511906200090f565b6001600160a01b039091168152602001604051809103906000f0801580156200053e573d6000803e3d6000fd5b50601b80546001600160a01b0319166001600160a01b03928316179055600c5462000575911669d3c21bcecceda1000000620007ac565b50505062000adc565b3390565b6001600160a01b03821660009081526010602052604090205481151560ff909116151503620006255760405162461bcd60e51b815260206004820152604260248201527f42414259555344543a204175746f6d61746564206d61726b6574206d616b657260448201527f207061697220697320616c72656164792073657420746f20746861742076616c606482015261756560f01b608482015260a4016200024c565b6001600160a01b0382166000908152601060205260409020805460ff19168215801591909117909155620006b55760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b1580156200069b57600080fd5b505af1158015620006b0573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b031633146200074d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200024c565b6001600160a01b0382166000818152600f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620008045760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200024c565b60025462000813908262000895565b6002556001600160a01b0382166000908152602081905260409020546200083b908262000895565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b600080620008a483856200091d565b905083811015620008f85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200024c565b90505b92915050565b6124938062004e6383390190565b61032b80620072f683390190565b80820180821115620008fb57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200096a57607f821691505b6020821081036200098b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000890576000816000526020600020601f850160051c81016020861015620009bc5750805b601f850160051c820191505b81811015620009dd57828155600101620009c8565b505050505050565b81516001600160401b0381111562000a015762000a016200093f565b62000a198162000a12845462000955565b8462000991565b602080601f83116001811462000a51576000841562000a385750858301515b600019600386901b1c1916600185901b178555620009dd565b600085815260208120601f198616915b8281101562000a825788860151825594840194600190910190840162000a61565b508582101562000aa15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000ac457600080fd5b81516001600160a01b0381168114620008f857600080fd5b6143778062000aec6000396000f3fe6080604052600436106104185760003560e01c8063715018a611610228578063b340364f11610128578063e0bf7fd1116100bb578063f2fde38b1161008a578063f97f22081161006f578063f97f220814610c9c578063fae9261214610cb1578063fffe42e914610cd157600080fd5b8063f2fde38b14610c5c578063f887ea4014610c7c57600080fd5b8063e0bf7fd114610bd6578063e6d20a4314610c06578063e98030c714610c1c578063eba3bb1814610c3c57600080fd5b8063c492f046116100f7578063c492f04614610b30578063c4b294a914610b50578063cc2bc19014610b70578063dd62ed3e14610b9057600080fd5b8063b340364f14610a8f578063b62496f514610aca578063baa69f1414610afa578063c024666814610b1057600080fd5b80639a7a23d6116101bb578063a20623ce1161018a578063a5696d891161016f578063a5696d8914610a2f578063a9059cbb14610a4f578063b2d8f20814610a6f57600080fd5b8063a20623ce146109df578063a457c2d714610a0f57600080fd5b80639a7a23d6146109695780639bcda849146109895780639c1b8af5146109a95780639fd8234e146109bf57600080fd5b8063871c128d116101f7578063871c128d146108f65780638da5cb5b14610916578063956236411461093457806395d89b411461095457600080fd5b8063715018a61461088b5780637355b15b146108a057806376d6f199146108c057806378abafaf146108e057600080fd5b80632bf3a9081161033357806346469afb116102c6578063579274bd1161029557806368be1b1e1161027a57806368be1b1e146107e95780636f17d6111461080957806370a082311461085557600080fd5b8063579274bd1461078c5780636386c1c7146107ac57600080fd5b806346469afb1461070857806349bd5a5e1461071e5780634e71d92d1461073e5780634fbee1931461075357600080fd5b806335d0d3f51161030257806335d0d3f5146106925780633884d635146106b257806339509351146106c85780633e0a322d146106e857600080fd5b80632bf3a908146106205780632f48ab7d14610636578063313ce5671461065657806331e79db01461067257600080fd5b806318160ddd116103ab5780631bff78981161037a5780631bff7898146105b45780631f107a45146105ca57806323b872dd146105ea578063251720381461060a57600080fd5b806318160ddd146105495780631896e1a11461055e57806318a6bc32146105745780631a23f0bd1461059457600080fd5b80630e85d1e3116103e75780630e85d1e3146104b95780630edf9c35146104db5780630f77a2d3146104fb5780631694505e1461051157600080fd5b806306fdde0314610424578063070a6e761461044f57806308e2cfaa14610473578063095ea7b31461048957600080fd5b3661041f57005b600080fd5b34801561043057600080fd5b50610439610cf1565b6040516104469190613c74565b60405180910390f35b34801561045b57600080fd5b5061046560095481565b604051908152602001610446565b34801561047f57600080fd5b5061046560175481565b34801561049557600080fd5b506104a96104a4366004613ce3565b610d83565b6040519015158152602001610446565b3480156104c557600080fd5b506104d96104d4366004613d69565b610d9a565b005b3480156104e757600080fd5b506104d96104f6366004613ce3565b610e54565b34801561050757600080fd5b5061046560145481565b34801561051d57600080fd5b50600654610531906001600160a01b031681565b6040516001600160a01b039091168152602001610446565b34801561055557600080fd5b50600254610465565b34801561056a57600080fd5b50610465601a5481565b34801561058057600080fd5b50601b54610531906001600160a01b031681565b3480156105a057600080fd5b506104d96105af366004613dc0565b610f13565b3480156105c057600080fd5b5061046560195481565b3480156105d657600080fd5b506104d96105e5366004613ddd565b610f8a565b3480156105f657600080fd5b506104a9610605366004613df6565b610fd7565b34801561061657600080fd5b5061046560155481565b34801561062c57600080fd5b5061046560125481565b34801561064257600080fd5b50600b54610531906001600160a01b031681565b34801561066257600080fd5b5060405160128152602001610446565b34801561067e57600080fd5b506104d961068d366004613dc0565b611040565b34801561069e57600080fd5b506104d96106ad366004613ef2565b6110eb565b3480156106be57600080fd5b50610465601f5481565b3480156106d457600080fd5b506104a96106e3366004613ce3565b6112d6565b3480156106f457600080fd5b506104d9610703366004613ddd565b61130c565b34801561071457600080fd5b5061046560165481565b34801561072a57600080fd5b50600754610531906001600160a01b031681565b34801561074a57600080fd5b506104d9611380565b34801561075f57600080fd5b506104a961076e366004613dc0565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561079857600080fd5b506104d96107a7366004613f2f565b611411565b3480156107b857600080fd5b506107cc6107c7366004613dc0565b611464565b604080519384526020840192909252151590820152606001610446565b3480156107f557600080fd5b50601e54610531906001600160a01b031681565b34801561081557600080fd5b50610840610824366004613dc0565b601d602052600090815260409020805460019091015460ff1682565b60408051928352901515602083015201610446565b34801561086157600080fd5b50610465610870366004613dc0565b6001600160a01b031660009081526020819052604090205490565b34801561089757600080fd5b506104d9611514565b3480156108ac57600080fd5b506104d96108bb366004613f51565b6115b3565b3480156108cc57600080fd5b506104d96108db366004613ddd565b6116f2565b3480156108ec57600080fd5b5061046560135481565b34801561090257600080fd5b506104d9610911366004613ddd565b61173f565b34801561092257600080fd5b506005546001600160a01b0316610531565b34801561094057600080fd5b50600d54610531906001600160a01b031681565b34801561096057600080fd5b50610439611831565b34801561097557600080fd5b506104d9610984366004613f96565b611840565b34801561099557600080fd5b50600854610531906001600160a01b031681565b3480156109b557600080fd5b50610465600e5481565b3480156109cb57600080fd5b506104d96109da366004613f2f565b611940565b3480156109eb57600080fd5b506104a96109fa366004613dc0565b601c6020526000908152604090205460ff1681565b348015610a1b57600080fd5b506104a9610a2a366004613ce3565b6119a3565b348015610a3b57600080fd5b506104d9610a4a366004613ce3565b6119f2565b348015610a5b57600080fd5b506104a9610a6a366004613ce3565b611aba565b348015610a7b57600080fd5b506104d9610a8a366004613f2f565b611ac7565b348015610a9b57600080fd5b50610aaf610aaa366004613dc0565b611b2a565b60408051938452602084019290925290820152606001610446565b348015610ad657600080fd5b506104a9610ae5366004613dc0565b60106020526000908152604090205460ff1681565b348015610b0657600080fd5b5061046560115481565b348015610b1c57600080fd5b506104d9610b2b366004613f96565b611d9d565b348015610b3c57600080fd5b506104d9610b4b366004613d69565b611e44565b348015610b5c57600080fd5b506104d9610b6b366004613ddd565b611f34565b348015610b7c57600080fd5b506104d9610b8b366004613fcf565b611f81565b348015610b9c57600080fd5b50610465610bab366004614011565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610be257600080fd5b506104a9610bf1366004613dc0565b600f6020526000908152604090205460ff1681565b348015610c1257600080fd5b5061046560185481565b348015610c2857600080fd5b506104d9610c37366004613ddd565b612071565b348015610c4857600080fd5b506104d9610c57366004613dc0565b612103565b348015610c6857600080fd5b506104d9610c77366004613dc0565b612208565b348015610c8857600080fd5b50600a54610531906001600160a01b031681565b348015610ca857600080fd5b506104d9612335565b348015610cbd57600080fd5b506104d9610ccc366004613dc0565b6123aa565b348015610cdd57600080fd5b50600c54610531906001600160a01b031681565b606060038054610d009061403f565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2c9061403f565b8015610d795780601f10610d4e57610100808354040283529160200191610d79565b820191906000526020600020905b815481529060010190602001808311610d5c57829003601f168201915b5050505050905090565b6000610d90338484612421565b5060015b92915050565b6005546001600160a01b03163314610de75760405162461bcd60e51b815260206004820181905260248201526000805160206142fd83398151915260448201526064015b60405180910390fd5b60005b82811015610e4e5781601c6000868685818110610e0957610e09614073565b9050602002016020810190610e1e9190613dc0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610dea565b50505050565b336000908152600f602052604090205460ff16610e9d5760405162461bcd60e51b81526020600482015260076024820152663737ba103232bb60c91b6044820152606401610dde565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190614089565b505050565b6005546001600160a01b03163314610f5b5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b601e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610fd25760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b601355565b6000610fe484848461257a565b6110368433611031856040518060600160405280602881526020016142d5602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190612b40565b612421565b5060019392505050565b6005546001600160a01b031633146110885760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b60085460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db0906024015b600060405180830381600087803b1580156110d057600080fd5b505af11580156110e4573d6000803e3d6000fd5b5050505050565b6005546001600160a01b031633146111335760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b80516000805b82811015610e4e57601d600085838151811061115757611157614073565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000209150600760009054906101000a90046001600160a01b03166001600160a01b03166370a082318583815181106111b7576111b7614073565b60200260200101516040518263ffffffff1660e01b81526004016111ea91906001600160a01b0391909116815260200190565b602060405180830381865afa158015611207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122b91906140a6565b825560085484516001600160a01b039091169063e30443bc9086908490811061125657611256614073565b602090810291909101015184546040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156112a957600080fd5b505af11580156112bd573d6000803e3d6000fd5b505050506001828101805460ff19168217905501611139565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610d909185906110319086612b7a565b6005546001600160a01b031633148061132f5750601e546001600160a01b031633145b61137b5760405162461bcd60e51b815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152606401610dde565b600955565b6008546040517fbc4c4b37000000000000000000000000000000000000000000000000000000008152336004820152600060248201526001600160a01b039091169063bc4c4b37906044016020604051808303816000875af11580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e9190614089565b50565b6005546001600160a01b031633146114595760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b601191909155601255565b6001600160a01b038181166000818152601d60205260408082205460075491516370a0823160e01b81526004810194909452939192839291909116906370a0823190602401602060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea91906140a6565b6001600160a01b039094166000908152601d6020526040902060010154929460ff90931692915050565b6005546001600160a01b0316331461155c5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805473ffffffffffffffffffffffffffffffffffffffff19169055565b6005546001600160a01b031633146115fb5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b81516000805b828110156110e457601d600086838151811061161f5761161f614073565b6020908102919091018101516001600160a01b039081168352908201929092526040016000208581556001808201805460ff1916909117905560085487519194509091169063e30443bc9087908490811061167c5761167c614073565b602090810291909101015184546040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b50505050806001019050611601565b6005546001600160a01b0316331461173a5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b601f55565b6005546001600160a01b031633146117875760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b600e5481036117fe5760405162461bcd60e51b815260206004820152603660248201527f42414259555344543a2043616e6e6f742075706461746520676173466f72507260448201527f6f63657373696e6720746f2073616d652076616c7565000000000000000000006064820152608401610dde565b600e5460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3600e55565b606060048054610d009061403f565b6005546001600160a01b031633146118885760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b6007546001600160a01b03908116908316036119325760405162461bcd60e51b815260206004820152604f60248201527f42414259555344543a205468652050616e55534454537761702070616972206360448201527f616e6e6f742062652072656d6f7665642066726f6d206175746f6d617465644d60648201527f61726b65744d616b657250616972730000000000000000000000000000000000608482015260a401610dde565b61193c8282612be0565b5050565b6005546001600160a01b031633146119885760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b6017829055601881905561199c81836140d5565b6019555050565b6000610d9033846110318560405180606001604052806025815260200161431d602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190612b40565b336000908152600f602052604090205460ff16611a3b5760405162461bcd60e51b81526020600482015260076024820152663737ba103232bb60c91b6044820152606401610dde565b6001600160a01b038281166000818152601d60205260409081902084905560085490516338c110ef60e21b81526004810192909252602482018490529091169063e30443bc90604401600060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b505050505050565b6000610d9033848461257a565b6005546001600160a01b03163314611b0f5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b60148290556015819055611b2381836140d5565b6016555050565b600080600080849050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b989190614106565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000306001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2b919061414b565b6001600160a01b031614611ca057836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9b919061414b565b611d02565b836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d02919061414b565b9050306001600160a01b0382161015611d2057829650819550611d27565b8196508295505b6040516370a0823160e01b81526001600160a01b0389811660048301528216906370a0823190602401602060405180830381865afa158015611d6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9191906140a6565b96989597505050505050565b6005546001600160a01b03163314611de55760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b6001600160a01b0382166000818152600f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314611e8c5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b60005b82811015611ef35781600f6000868685818110611eae57611eae614073565b9050602002016020810190611ec39190613dc0565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101611e8f565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b35838383604051611f2793929190614168565b60405180910390a1505050565b6005546001600160a01b03163314611f7c5760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b601a55565b6005546001600160a01b03163314611fc95760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b60005b81811015610f0e576008546001600160a01b03166331e79db0848484818110611ff757611ff7614073565b905060200201602081019061200c9190613dc0565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561204d57600080fd5b505af1158015612061573d6000803e3d6000fd5b505060019092019150611fcc9050565b6005546001600160a01b031633146120b95760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b6008546040517fe98030c7000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063e98030c7906024016110b6565b336000908152600f602052604090205460ff1661214c5760405162461bcd60e51b81526020600482015260076024820152663737ba103232bb60c91b6044820152606401610dde565b6007546040516370a0823160e01b81526001600160a01b038381166004830152909116906370a0823190602401602060405180830381865afa158015612196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ba91906140a6565b6001600160a01b038281166000818152601d60205260409081902084905560085490516338c110ef60e21b81526004810192909252602482019390935291169063e30443bc906044016110b6565b6005546001600160a01b031633146122505760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b6001600160a01b0381166122cc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610dde565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b336000908152600f602052604090205460ff1661237e5760405162461bcd60e51b81526020600482015260076024820152663737ba103232bb60c91b6044820152606401610dde565b60405133904780156108fc02916000818181858888f1935050505015801561140e573d6000803e3d6000fd5b6005546001600160a01b031633146123f25760405162461bcd60e51b815260206004820181905260248201526000805160206142fd8339815191526044820152606401610dde565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b03831661249c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610dde565b6001600160a01b0382166125185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610dde565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166125de5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610dde565b6001600160a01b0382166126405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610dde565b80612660846001600160a01b031660009081526020819052604090205490565b10156126ae5760405162461bcd60e51b815260206004820152600560248201527f6572726f720000000000000000000000000000000000000000000000000000006044820152606401610dde565b6001600160a01b0383166000908152601c602052604090205460ff16156127175760405162461bcd60e51b815260206004820152600260248201527f626c0000000000000000000000000000000000000000000000000000000000006044820152606401610dde565b8060000361272a57610f0e838383612d65565b600080612738858585612ee8565b6001600160a01b0387166000908152600f6020526040902054919350915060ff168061277c57506001600160a01b0384166000908152600f602052604090205460ff165b1561278c576110e4858585612d65565b61279583613195565b6009544210156127e75760405162461bcd60e51b815260206004820152600960248201527f6e6f7420737461727400000000000000000000000000000000000000000000006044820152606401610dde565b81156128375760006103e86011548561280091906141c1565b61280a91906141d8565b9050801561281d5761281d863083612d65565b612831868661282c84886141fa565b612d65565b506129a1565b80156128505760006103e86012548561280091906141c1565b6001600160a01b03851660009081526010602052604090205460ff16156128845760006103e86016548561280091906141c1565b6001600160a01b03841660009081526010602052604090205460ff161561296057600754600160a01b900460ff161580156128cd57506005546001600160a01b03868116911614155b80156128e757506005546001600160a01b03858116911614155b1561294d5760078054600160a01b60ff60a01b1982161790915530600090815260208190526040808220546001600160a01b03909316825290205461292f906101f4906141d8565b811061293e5761293e81613211565b506007805460ff60a01b191690555b60006103e86019548561280091906141c1565b60006103e8601a548561297391906141c1565b61297d91906141d8565b9050801561299057612990863083612d65565b61299f868661282c84886141fa565b505b60006013541180156129cc57506001600160a01b03841660009081526010602052604090205460ff16155b80156129f157506001600160a01b0384166000908152600f602052604090205460ff16155b15612a60576001600160a01b0384166000908152602081905260409020546013541015612a605760405162461bcd60e51b815260206004820152600560248201527f4c696d69740000000000000000000000000000000000000000000000000000006044820152606401610dde565b600e546008546040517fffb2c479000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063ffb2c479906024016060604051808303816000875af1925050508015612ae3575060408051601f3d908101601f19168201909252612ae09181019061420d565b60015b15611ab25760408051848152602081018490529081018290526060810185905232906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a3505050505050505050565b60008184841115612b645760405162461bcd60e51b8152600401610dde9190613c74565b506000612b7184866141fa565b95945050505050565b600080612b8783856140d5565b905083811015612bd95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610dde565b9392505050565b6001600160a01b03821660009081526010602052604090205481151560ff909116151503612c9c5760405162461bcd60e51b815260206004820152604260248201527f42414259555344543a204175746f6d61746564206d61726b6574206d616b657260448201527f207061697220697320616c72656164792073657420746f20746861742076616c60648201527f7565000000000000000000000000000000000000000000000000000000000000608482015260a401610dde565b6001600160a01b0382166000908152601060205260409020805460ff19168215801591909117909155612d295760085460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b158015612d1057600080fd5b505af1158015612d24573d6000803e3d6000fd5b505050505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6001600160a01b038316612dc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610dde565b6001600160a01b038216612e2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610dde565b612e68816040518060600160405280602681526020016142af602691396001600160a01b0386166000908152602081905260409020549190612b40565b6001600160a01b038085166000908152602081905260408082209390935590841681522054612e979082612b7a565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161256d565b6001600160a01b0382166000908152601060205260408120548190819060ff168015612f1e57506006546001600160a01b031633145b15613025576001600160a01b0386166000908152600f6020526040902054849060ff16612f6f576103e86011546103e8612f5891906141fa565b612f6290836141c1565b612f6c91906141d8565b90505b612f798682613716565b91508115613023576001600160a01b0387166000908152601d60205260408120805460019650849290612fad9084906140d5565b90915550506008546001600160a01b038881166000818152601d6020526040908190205490516338c110ef60e21b81526004810192909252602482015291169063e30443bc90604401600060405180830381600087803b15801561301057600080fd5b505af1925050508015613021575060015b505b505b6001600160a01b03861660009081526010602052604081205460ff1615613053576130508786613784565b90505b60008111801561307c57506001600160a01b0386166000908152600f602052604090205460ff16155b1561318b576001600160a01b0386166000908152601d60205260409020548111156130e95760405162461bcd60e51b815260206004820152600660248201527f6c70206d696e00000000000000000000000000000000000000000000000000006044820152606401610dde565b6001600160a01b0386166000908152601d602052604081208054600195508392906131159084906141fa565b90915550506008546001600160a01b038781166000818152601d6020526040908190205490516338c110ef60e21b81526004810192909252602482015291169063e30443bc90604401600060405180830381600087803b15801561317857600080fd5b505af1925050508015613189575060015b505b5050935093915050565b6000601f5460646131a691906141c1565b306000908152602081905260409020541061193c5760005b601f54811015610f0e5760408051602081018390529081018490524260608201526080016040516020818303038152906040528051906020012060001c915061320930836064612d65565b6001016131be565b600654819061322b9030906001600160a01b031683612421565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061326057613260614073565b6001600160a01b039283166020918202929092010152600b5482519116908290600190811061329157613291614073565b60200260200101906001600160a01b031690816001600160a01b031681525050600060026019546016546132c591906140d5565b856018546015546132d691906140d5565b6132e091906141c1565b6132ea91906141d8565b6132f491906141d8565b6006549091506001600160a01b0316635c11d79561331283866141fa565b601b546040516001600160e01b031960e085901b168152613347929160009188916001600160a01b031690429060040161423b565b600060405180830381600087803b15801561336157600080fd5b505af1158015613375573d6000803e3d6000fd5b5050600b54601b546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156133c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ec91906140a6565b600b54601b546040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523060248201526044810184905292935016906323b872dd906064016020604051808303816000875af1158015613462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134869190614089565b50600060195460165461349991906140d5565b826018546015546134aa91906140d5565b6134b491906141c1565b6134be91906141d8565b6008546040517f3243c791000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b031690633243c79190602401600060405180830381600087803b15801561351e57600080fd5b505af192505050801561352f575060015b156135af57600b5460085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015613589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ad9190614089565b505b8215611ab257600b546006546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015613623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136479190614089565b50600654600b546001600160a01b039182169163e8e3370091163061366c85876141fa565b600d5460405160e086901b6001600160e01b03191681526001600160a01b039485166004820152928416602484015260448301919091526064820188905260006084830181905260a48301529190911660c48201524260e4820152610104016060604051808303816000875af1925050508015613706575060408051601f3d908101601f191682019092526137039181019061420d565b60015b15611ab257505050505050505050565b60008060008061372586611b2a565b9250925092506000808411801561373c5750600083115b15613759578261374c85886141c1565b61375691906141d8565b90505b61376381856140d5565b821061377a576137768783888787613849565b5094505b5050505092915050565b600080600061379285611b2a565b925050915081811161384157836137be866001600160a01b031660009081526020819052604090205490565b6137c891906141fa565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382a91906140a6565b61383490866141c1565b61383e91906141d8565b92505b505092915050565b6000806000876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561388c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b091906140a6565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015613907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392b919061414b565b6001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015613968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398c919061414b565b90506000806001600160a01b0316826001600160a01b03161415905060008a6001600160a01b0316637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a0c91906140a6565b90508115613b6c578015613b6c576000613a2e613a29898b6141c1565b613bee565b90506000613a3b83613bee565b905080821115613b695760065460009081906001600160a01b03167fffffffffffffffffffffffffef12bc38e78eb149c2a55a84874ab8fb1da9fdb201613ac457613a8683856141fa565b613a9090896141c1565b613a9b9060086141c1565b9150613aa88360086141c1565b613ab38560116141c1565b613abd91906140d5565b9050613b47565b6006546001600160a01b03167fffffffffffffffffffffffff2662e3cc0603cbbb07efe8ab543b93adbe9aaf2f01613b1857613b0083856141fa565b613b0a90896141c1565b915082613ab38560036141c1565b613b2283856141fa565b613b2c90896141c1565b915082613b3a8560056141c1565b613b4491906140d5565b90505b613b5181836141d8565b98508815613b6657613b6389896140d5565b97505b50505b50505b6000613b78898c6141fa565b905084600003613baa578015613ba5576103e8613b98613a298c846141c1565b613ba291906141fa565b96505b613bdf565b613bdc89613bb887846141c1565b613bc291906141d8565b89613bcd888e6141c1565b613bd791906141d8565b613c5e565b96505b50505050509550959350505050565b60006003821115613c4f5750806000613c086002836141d8565b613c139060016140d5565b90505b81811015613c4957905080600281613c2e81866141d8565b613c3891906140d5565b613c4291906141d8565b9050613c16565b50919050565b8115613c59575060015b919050565b6000818310613c6d5781612bd9565b5090919050565b60006020808352835180602085015260005b81811015613ca257858101830151858201604001528201613c86565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461140e57600080fd5b8035613c5981613cc3565b60008060408385031215613cf657600080fd5b8235613d0181613cc3565b946020939093013593505050565b60008083601f840112613d2157600080fd5b50813567ffffffffffffffff811115613d3957600080fd5b6020830191508360208260051b8501011115613d5457600080fd5b9250929050565b801515811461140e57600080fd5b600080600060408486031215613d7e57600080fd5b833567ffffffffffffffff811115613d9557600080fd5b613da186828701613d0f565b9094509250506020840135613db581613d5b565b809150509250925092565b600060208284031215613dd257600080fd5b8135612bd981613cc3565b600060208284031215613def57600080fd5b5035919050565b600080600060608486031215613e0b57600080fd5b8335613e1681613cc3565b92506020840135613e2681613cc3565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613e5e57600080fd5b8135602067ffffffffffffffff80831115613e7b57613e7b613e37565b8260051b604051601f19603f83011681018181108482111715613ea057613ea0613e37565b6040529384526020818701810194908101925087851115613ec057600080fd5b6020870191505b84821015613ee757613ed882613cd8565b83529183019190830190613ec7565b979650505050505050565b600060208284031215613f0457600080fd5b813567ffffffffffffffff811115613f1b57600080fd5b613f2784828501613e4d565b949350505050565b60008060408385031215613f4257600080fd5b50508035926020909101359150565b60008060408385031215613f6457600080fd5b823567ffffffffffffffff811115613f7b57600080fd5b613f8785828601613e4d565b95602094909401359450505050565b60008060408385031215613fa957600080fd5b8235613fb481613cc3565b91506020830135613fc481613d5b565b809150509250929050565b60008060208385031215613fe257600080fd5b823567ffffffffffffffff811115613ff957600080fd5b61400585828601613d0f565b90969095509350505050565b6000806040838503121561402457600080fd5b823561402f81613cc3565b91506020830135613fc481613cc3565b600181811c9082168061405357607f821691505b602082108103613c4957634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561409b57600080fd5b8151612bd981613d5b565b6000602082840312156140b857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d9457610d946140bf565b80516dffffffffffffffffffffffffffff81168114613c5957600080fd5b60008060006060848603121561411b57600080fd5b614124846140e8565b9250614132602085016140e8565b9150604084015163ffffffff81168114613db557600080fd5b60006020828403121561415d57600080fd5b8151612bd981613cc3565b6040808252810183905260008460608301825b868110156141ab57823561418e81613cc3565b6001600160a01b031682526020928301929091019060010161417b565b5080925050508215156020830152949350505050565b8082028115828204841417610d9457610d946140bf565b6000826141f557634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610d9457610d946140bf565b60008060006060848603121561422257600080fd5b8351925060208401519150604084015190509250925092565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b8181101561428d5784516001600160a01b031683529383019391830191600101614268565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122078bf3c82ebddcd4afda9ae5e7df9cce9b473a6efbfc76fa27eac260e4383825264736f6c634300081800336080604052662386f26fc100006013553480156200001c57600080fd5b5060405162002493380380620024938339810160408190526200003f916200012e565b604080518082018252600f8082526e2234bb34b232b7322a3930b1b5b2b960891b602080840182905284518086019095529184529083015290828282600362000089838262000207565b50600462000098828262000207565b5050506000620000ad6200012a60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319166001600160a01b0392909216919091179055505061012c60125550620002d3565b3390565b6000602082840312156200014157600080fd5b81516001600160a01b03811681146200015957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018b57607f821691505b602082108103620001ac57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000202576000816000526020600020601f850160051c81016020861015620001dd5750805b601f850160051c820191505b81811015620001fe57828155600101620001e9565b5050505b505050565b81516001600160401b0381111562000223576200022362000160565b6200023b8162000234845462000176565b84620001b2565b602080601f8311600181146200027357600084156200025a5750858301515b600019600386901b1c1916600185901b178555620001fe565b600085815260208120601f198616915b82811015620002a45788860151825594840194600190910190840162000283565b5085821015620002c35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6121b080620002e36000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c8063807ab4f711610160578063bc4c4b37116100d8578063e7841ec01161008c578063f2fde38b11610071578063f2fde38b14610581578063fbcbc0f114610594578063ffb2c479146105a757600080fd5b8063e7841ec014610566578063e98030c71461056e57600080fd5b8063c54e44eb116100bd578063c54e44eb14610507578063dd62ed3e1461051a578063e30443bc1461055357600080fd5b8063bc4c4b37146104eb578063be10b614146104fe57600080fd5b806395d89b411161012f578063a8b9d24011610114578063a8b9d2401461049c578063a9059cbb146104af578063aafd847a146104c257600080fd5b806395d89b4114610481578063a457c2d71461048957600080fd5b8063807ab4f71461042d57806385a6b3ae146104405780638da5cb5b1461044957806391b89fba1461046e57600080fd5b806331e79db0116101f35780635183d6fd116101c25780636f2789ec116101a75780636f2789ec146103f357806370a08231146103fc578063715018a61461042557600080fd5b80635183d6fd146103935780636a474002146103eb57600080fd5b806331e79db0146103355780633243c7911461034a578063395093511461035d5780634e7b827f1461037057600080fd5b8063226cfa3d1161024a57806327ce01471161022f57806327ce01471461030a5780633009a6091461031d578063313ce5671461032657600080fd5b8063226cfa3d146102d757806323b872dd146102f757600080fd5b806306fdde031461027c578063095ea7b31461029a57806309bbedde146102bd57806318160ddd146102cf575b600080fd5b6102846105d5565b6040516102919190611e16565b60405180910390f35b6102ad6102a8366004611e7a565b610667565b6040519015158152602001610291565b600b545b604051908152602001610291565b6002546102c1565b6102c16102e5366004611ea6565b60116020526000908152604090205481565b6102ad610305366004611ec3565b61067e565b6102c1610318366004611ea6565b6106e7565b6102c1600f5481565b60405160128152602001610291565b610348610343366004611ea6565b610750565b005b610348610358366004611f04565b610886565b6102ad61036b366004611e7a565b610981565b6102ad61037e366004611ea6565b60106020526000908152604090205460ff1681565b6103a66103a1366004611f04565b6109b7565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e082015261010001610291565b610348610b24565b6102c160125481565b6102c161040a366004611ea6565b6001600160a01b031660009081526020819052604090205490565b610348610bde565b6102c161043b366004611ea6565b610c8f565b6102c1600a5481565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610291565b6102c161047c366004611ea6565b610d52565b610284610d5d565b6102ad610497366004611e7a565b610d6c565b6102c16104aa366004611ea6565b610dbb565b6102ad6104bd366004611e7a565b610de7565b6102c16104d0366004611ea6565b6001600160a01b031660009081526009602052604090205490565b6102ad6104f9366004611f2b565b610df4565b6102c160135481565b600654610456906001600160a01b031681565b6102c1610528366004611f64565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610348610561366004611e7a565b610ed2565b600f546102c1565b61034861057c366004611f04565b611085565b61034861058f366004611ea6565b61118b565b6103a66105a2366004611ea6565b6112ca565b6105ba6105b5366004611f04565b61144c565b60408051938452602084019290925290820152606001610291565b6060600380546105e490611f92565b80601f016020809104026020016040519081016040528092919081815260200182805461061090611f92565b801561065d5780601f106106325761010080835404028352916020019161065d565b820191906000526020600020905b81548152906001019060200180831161064057829003601f168201915b5050505050905090565b6000610674338484611569565b5060015b92915050565b600061068b8484846116c1565b6106dd84336106d88560405180606001604052806028815260200161212e602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919061172f565b611569565b5060019392505050565b6001600160a01b0381166000908152600860209081526040808320549183905282205460075470010000000000000000000000000000000092610746926107419261073b916107369190611769565b61180e565b9061181e565b61185c565b6106789190611fe2565b6005546001600160a01b031633146107af5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0381166000908152601060205260408120805460ff191660011790556107dd90829061186f565b60405163131836e760e21b8152600b60048201526001600160a01b03821660248201527392bd6aaf40afe9ac46a6e42b4689779c7b5dda0390634c60db9c9060440160006040518083038186803b15801561083757600080fd5b505af415801561084b573d6000803e3d6000fd5b50506040516001600160a01b03841692507fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b259150600090a250565b6005546001600160a01b031633146108e05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b60006108eb60025490565b116108f557600080fd5b801561097e5761093561090760025490565b61092283700100000000000000000000000000000000611769565b61092c9190611fe2565b600754906118d4565b60075560405181815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a2600a5461097a90826118d4565b600a555b50565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106749185906106d890866118d4565b600080600080600080600080600b7392bd6aaf40afe9ac46a6e42b4689779c7b5dda0363deb3d89690916040518263ffffffff1660e01b81526004016109ff91815260200190565b602060405180830381865af4158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190612004565b8910610a65575060009650600019955085945086935083925082915081905080610b19565b6040517fd1aa9e7e000000000000000000000000000000000000000000000000000000008152600b6004820152602481018a90526000907392bd6aaf40afe9ac46a6e42b4689779c7b5dda039063d1aa9e7e90604401602060405180830381865af4158015610ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afc919061201d565b9050610b07816112ca565b98509850985098509850985098509850505b919395975091939597565b60405162461bcd60e51b815260206004820152606d60248201527f42414259555344545f4469766964656e645f547261636b65723a20776974686460448201527f7261774469766964656e642064697361626c65642e205573652074686520276360648201527f6c61696d272066756e6374696f6e206f6e20746865206d61696e20424142595560848201527f53445420636f6e74726163742e0000000000000000000000000000000000000060a482015260c4016107a6565b6005546001600160a01b03163314610c385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36005805473ffffffffffffffffffffffffffffffffffffffff19169055565b6005546000906001600160a01b03163314610cec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b610cf582611933565b508015610d4d576001600160a01b0382166000818152601160209081526040808320429055518481529192917fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf092910160405180910390a35b919050565b600061067882610dbb565b6060600480546105e490611f92565b600061067433846106d885604051806060016040528060258152602001612156602591393360009081526001602090815260408083206001600160a01b038d168452909152902054919061172f565b6001600160a01b03811660009081526009602052604081205461067890610de1846106e7565b90611ab1565b60006106743384846116c1565b6005546000906001600160a01b03163314610e515760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b6000610e5c84611933565b90508015610ec8576001600160a01b038416600081815260116020526040908190204290555184151591907fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf09290610eb69085815260200190565b60405180910390a36001915050610678565b5060009392505050565b6005546001600160a01b03163314610f2c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b6001600160a01b03821660009081526010602052604090205460ff16611081576013548110610ff657610f5f828261186f565b6040517fbc2b405c000000000000000000000000000000000000000000000000000000008152600b60048201526001600160a01b0383166024820152604481018290527392bd6aaf40afe9ac46a6e42b4689779c7b5dda039063bc2b405c9060640160006040518083038186803b158015610fd957600080fd5b505af4158015610fed573d6000803e3d6000fd5b50505050611074565b61100182600061186f565b60405163131836e760e21b8152600b60048201526001600160a01b03831660248201527392bd6aaf40afe9ac46a6e42b4689779c7b5dda0390634c60db9c9060440160006040518083038186803b15801561105b57600080fd5b505af415801561106f573d6000803e3d6000fd5b505050505b61107f826001610df4565b505b5050565b6005546001600160a01b031633146110df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b6012548103611158576040805162461bcd60e51b81526020600482015260248101919091527f42414259555344545f4469766964656e645f547261636b65723a2043616e6e6f60448201527f742075706461746520636c61696d5761697420746f2073616d652076616c756560648201526084016107a6565b60125460405182907f474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f90600090a3601255565b6005546001600160a01b031633146111e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a6565b6001600160a01b0381166112615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107a6565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6040517f17e142d1000000000000000000000000000000000000000000000000000000008152600b60048201526001600160a01b038216602482015281906000908190819081908190819081907392bd6aaf40afe9ac46a6e42b4689779c7b5dda03906317e142d190604401602060405180830381865af4158015611353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113779190612004565b96506000199550600087126113d957600f548711156113a557600f5461139e908890611af3565b95506113d9565b600f54600b54600091106113ba5760006113c9565b600f54600b546113c991611ab1565b90506113d5888261181e565b9650505b6113e288610dbb565b94506113ed886106e7565b6001600160a01b038916600090815260116020526040902054909450925082611417576000611425565b6012546114259084906118d4565b915042821161143557600061143f565b61143f8242611ab1565b9050919395975091939597565b600b546000908190819080820361146e575050600f5460009250829150611562565b600f546000805a90506000805b898410801561148957508582105b1561155157846114988161203a565b600b54909650861090506114ab57600094505b6000600b60000186815481106114c3576114c3612053565b60009182526020808320909101546001600160a01b031680835260119091526040909120549091506114f490611b30565b1561151757611504816001610df4565b1561151757816115138161203a565b9250505b826115218161203a565b93505060005a9050808511156115485761154561153e8683611ab1565b87906118d4565b95505b935061147b9050565b600f85905590975095509193505050505b9193909250565b6001600160a01b0383166115e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107a6565b6001600160a01b0382166116605760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60405162461bcd60e51b815260206004820152602f60248201527f42414259555344545f4469766964656e645f547261636b65723a204e6f20747260448201527f616e736665727320616c6c6f776564000000000000000000000000000000000060648201526084016107a6565b600081848411156117535760405162461bcd60e51b81526004016107a69190611e16565b5060006117608486612069565b95945050505050565b60008260000361177b57506000610678565b6000611787838561207c565b9050826117948583611fe2565b146118075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016107a6565b9392505050565b6000818181121561067857600080fd5b60008061182b8385612093565b90506000831215801561183e5750838112155b80611853575060008312801561185357508381125b61180757600080fd5b60008082121561186b57600080fd5b5090565b6001600160a01b038216600090815260208190526040902054808211156118ae57600061189c8383611ab1565b90506118a88482611b57565b5061107f565b8082101561107f5760006118c28284611ab1565b90506118ce8482611bbb565b50505050565b6000806118e183856120bb565b9050838110156118075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a6565b60008061193f83610dbb565b90508015611aa8576001600160a01b03831660009081526009602052604090205461196a90826118d4565b6001600160a01b038416600081815260096020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d906119b99084815260200190565b60405180910390a26006546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015260248201849052600092169063a9059cbb906044016020604051808303816000875af1158015611a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5291906120ce565b905080611aa1576001600160a01b038416600090815260096020526040902054611a7c9083611ab1565b6001600160a01b03909416600090815260096020526040812094909455509192915050565b5092915050565b50600092915050565b600061180783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061172f565b600080611b0083856120eb565b905060008312158015611b135750838113155b806118535750600083128015611853575083811361180757600080fd5b600042821115611b4257506000919050565b601254611b4f4284611ab1565b101592915050565b611b618282611bff565b611b9b611b7c6107368360075461176990919063ffffffff16565b6001600160a01b03841660009081526008602052604090205490611af3565b6001600160a01b0390921660009081526008602052604090209190915550565b611bc58282611cea565b611b9b611be06107368360075461176990919063ffffffff16565b6001600160a01b0384166000908152600860205260409020549061181e565b6001600160a01b038216611c555760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016107a6565b611c616000838361107f565b600254611c6e90826118d4565b6002556001600160a01b038216600090815260208190526040902054611c9490826118d4565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038216611d665760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016107a6565b611d728260008361107f565b611daf8160405180606001604052806022815260200161210c602291396001600160a01b038516600090815260208190526040902054919061172f565b6001600160a01b038316600090815260208190526040902055600254611dd59082611ab1565b6002556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611cde565b60006020808352835180602085015260005b81811015611e4457858101830151858201604001528201611e28565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097e57600080fd5b60008060408385031215611e8d57600080fd5b8235611e9881611e65565b946020939093013593505050565b600060208284031215611eb857600080fd5b813561180781611e65565b600080600060608486031215611ed857600080fd5b8335611ee381611e65565b92506020840135611ef381611e65565b929592945050506040919091013590565b600060208284031215611f1657600080fd5b5035919050565b801515811461097e57600080fd5b60008060408385031215611f3e57600080fd5b8235611f4981611e65565b91506020830135611f5981611f1d565b809150509250929050565b60008060408385031215611f7757600080fd5b8235611f8281611e65565b91506020830135611f5981611e65565b600181811c90821680611fa657607f821691505b602082108103611fc657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082611fff57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561201657600080fd5b5051919050565b60006020828403121561202f57600080fd5b815161180781611e65565b60006001820161204c5761204c611fcc565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8181038181111561067857610678611fcc565b808202811582820484141761067857610678611fcc565b80820182811260008312801582168215821617156120b3576120b3611fcc565b505092915050565b8082018082111561067857610678611fcc565b6000602082840312156120e057600080fd5b815161180781611f1d565b8181036000831280158383131683831282161715611aa157611aa1611fcc56fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204ae1e76884309ebe922affb3c3ed15844472d0751714a819d7065cd7ed786edf64736f6c63430008180033608060405234801561001057600080fd5b5060405161032b38038061032b83398101604081905261002f916100ba565b600080546001600160a01b0319163217905560405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b3906044016020604051808303816000875af115801561008f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b391906100ea565b505061010c565b6000602082840312156100cc57600080fd5b81516001600160a01b03811681146100e357600080fd5b9392505050565b6000602082840312156100fc57600080fd5b815180151581146100e357600080fd5b6102108061011b6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80631698755f14610030575b600080fd5b61004361003e36600461016c565b610045565b005b60005473ffffffffffffffffffffffffffffffffffffffff1633146100ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015260640160405180910390fd5b6000546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016791906101b1565b505050565b6000806040838503121561017f57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146101a357600080fd5b946020939093013593505050565b6000602082840312156101c357600080fd5b815180151581146101d357600080fd5b939250505056fea26469706673582212209c9dca5481aefdb3aaa95574ba8f4352d502856406e42bf521c7fb9228d15f8f64736f6c63430008180033