2.6k txs
29.7k calls
constructor
constructor(string name_, string symbol_, uint256 decimals_, uint256 total_, address USDT_, address fundAddress_, address ReceiveAddress_, address swapRouter_, address _owner)
functions
_auto_swap_fee
viewfunction _auto_swap_fee() view returns (uint256)
_burn_fee
viewfunction _burn_fee() view returns (uint256)
_feeWhiteList
viewfunction _feeWhiteList(address) view returns (bool)
_getReserves
viewfunction _getReserves() view returns (uint256 rOther, uint256 rThis, uint256 balanceOther)
_mainPair
viewfunction _mainPair() view returns (address)
_reward_fee
viewfunction _reward_fee() view returns (uint256)
_rewardTokenDistributor
viewfunction _rewardTokenDistributor() view returns (address)
_swapPairList
viewfunction _swapPairList(address) view returns (bool)
_swapRouter
viewfunction _swapRouter() view returns (address)
_swapRouters
viewfunction _swapRouters(address) view returns (bool)
_tokenDistributor
viewfunction _tokenDistributor() view returns (address)
_total_fee
viewfunction _total_fee() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
antiSYNC
viewfunction antiSYNC() view returns (bool)
autoSwapReceiverAddr
viewfunction autoSwapReceiverAddr() view returns (address)
autoSwapToken
viewfunction autoSwapToken() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint256)
fundAddress
viewfunction fundAddress() view returns (address)
getUserHoldLpTokenAmount
viewfunction getUserHoldLpTokenAmount(address user) view returns (uint256)
holderRewardCondition
viewfunction holderRewardCondition() view returns (uint256)
holders
viewfunction holders(uint256) view returns (address)
leftAutoSwapAmount
viewfunction leftAutoSwapAmount() view returns (uint256)
leftRewardAmount
viewfunction leftRewardAmount() view returns (uint256)
limitTimes
viewfunction limitTimes() view returns (uint256)
limitUSDT
viewfunction limitUSDT() view returns (uint256)
lpRewardGas
viewfunction lpRewardGas() view returns (uint256)
lpValueByUSDT
viewfunction lpValueByUSDT() view returns (uint256)
name
viewfunction name() view returns (string)
numTokensSellRate
viewfunction numTokensSellRate() view returns (uint256)
owner
viewfunction owner() view returns (address)
processRewardWaitBlock
viewfunction processRewardWaitBlock() view returns (uint256)
startTradeBlock
viewfunction startTradeBlock() view returns (uint256)
swapAtAmount
viewfunction swapAtAmount() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalFundAmountReceive
viewfunction totalFundAmountReceive() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
USDT
viewfunction USDT() view returns (address)
user2blocks
viewfunction user2blocks(address) view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claimBalance
nonpayablefunction claimBalance()
claimToken
nonpayablefunction claimToken(address token, uint256 amount, address to)
launch
nonpayablefunction launch()
multiAddHolder
nonpayablefunction multiAddHolder(address[] accounts)
renounceOwnership
nonpayablefunction renounceOwnership()
setAntiSYNCEnable
nonpayablefunction setAntiSYNCEnable(bool s)
setAutoSwap
nonpayablefunction setAutoSwap(address _autoSwapToken, address _autoSwapReceiverAddr)
setExcludeHolder
nonpayablefunction setExcludeHolder(address addr, bool enable)
setFeeWhiteList
nonpayablefunction setFeeWhiteList(address[] addr, bool enable)
setFundAddress
nonpayablefunction setFundAddress(address addr)
setHolderRewardCondition
nonpayablefunction setHolderRewardCondition(uint256 amount)
setLimitTimes
nonpayablefunction setLimitTimes(uint256 _limitTimes)
setLimitUSDT
nonpayablefunction setLimitUSDT(uint256 _limitUSDT)
setLpRewardGas
nonpayablefunction setLpRewardGas(uint256 newValue)
setLpValueByUSDT
nonpayablefunction setLpValueByUSDT(uint256 _lpValueByUSDT)
setNumTokensSellRate
nonpayablefunction setNumTokensSellRate(uint256 newValue)
setProcessRewardWaitBlock
nonpayablefunction setProcessRewardWaitBlock(uint256 newValue)
setSwapAtAmount
nonpayablefunction setSwapAtAmount(uint256 newValue)
setSwapPairList
nonpayablefunction setSwapPairList(address addr, bool enable)
setSwapRouter
nonpayablefunction setSwapRouter(address addr, bool enable)
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)
events
_tokenTransferEvent
event _tokenTransferEvent(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell, bool isTransfer, bool isAdd, bool isRemove)
addHolderEvent
event addHolderEvent(address _user, uint256 _index, uint256 _time)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
processRewardEvent
event processRewardEvent(address _tx_origin, uint256 _time, uint256 _times)
SwapFailedWithReason
event SwapFailedWithReason(string reason)
swapTokenForFundEvent
event swapTokenForFundEvent(uint256 _time, uint256 _tokenAmount, uint256 _swapFee)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x60806040526005600e55600a600f55600f6010556103e86011556064601355678ac7230489e8000060145568056bc75e2d63100000601555600060165562055730601755610e10601a556001601d5534801561005a57600080fd5b50604051614bc2380380614bc283398101604081905261007991610695565b600080546001600160a01b03191633908117825560405190918291600080516020614ba2833981519152908290a350600a6100b48a826107f3565b50600b6100c189826107f3565b50600c879055600d869055600180546001600160a01b0319166001600160a01b0386169081179091556100fa903b63ffffffff16151590565b156101565760405162461bcd60e51b815260206004820152602160248201527f46756e6420616464726573732063616e6e6f74206265206120636f6e747261636044820152601d60fa1b60648201526084015b60405180910390fd5b600680546001600160a01b03199081166001600160a01b03858116918217909355600580549092168884161782553060009081526022602081815260408084208585528252808420600019908190558888168552928252808420858552909152918290208190559254905163095ea7b360e01b81526004810192909252602482019290925284928692169063095ea7b3906044016020604051808303816000875af1158015610209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022d91906108b1565b506001600160a01b038216600081815260208080526040808320805460ff19166001179055805163c45a015560e01b8152905192939263c45a0155926004808401939192918290030181865afa15801561028b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102af91906108da565b6040516364e329cb60e11b81523060048201526001600160a01b038a8116602483015291925060009183169063c9c65396906044016020604051808303816000875af1158015610303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032791906108da565b600280546001600160a01b0319166001600160a01b038381169182179092556000908152602460209081526040808320805460ff19166001179055928716808352602182528383208f905592518e8152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600180546001600160a01b039081166000908152602360209081526040808320805460ff199081168717909155888516845281842080548216871790553084528184208054821687179055938a168352808320805485168617905560279091527f552d06d8e69b1fc894b5bb152d5c34ccb2ea2834fd646ff017b1562d77bdb85a805484168517905561dead82527f5b81ed81fd8c0839a30b67983eab49280895d3199fc1130fb03b7c33e425e0eb8054909316909317909155601b55518990610472906105a7565b6001600160a01b039091168152602001604051809103906000f08015801561049e573d6000803e3d6000fd5b50600780546001600160a01b0319166001600160a01b03929092169190911790556104c8856104da565b505050505050505050505050506108f7565b6000546001600160a01b0316331461051d5760405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b604482015260640161014d565b6001600160a01b03811661055e5760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b604482015260640161014d565b600080546040516001600160a01b0380851693921691600080516020614ba283398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61014780614a5b83390190565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126105db57600080fd5b81516001600160401b038111156105f4576105f46105b4565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610622576106226105b4565b60405281815283820160200185101561063a57600080fd5b60005b828110156106595760208186018101518383018201520161063d565b506000918101602001919091529392505050565b6001600160a01b038116811461068257600080fd5b50565b80516106908161066d565b919050565b60008060008060008060008060006101208a8c0312156106b457600080fd5b89516001600160401b038111156106ca57600080fd5b6106d68c828d016105ca565b60208c0151909a5090506001600160401b038111156106f457600080fd5b6107008c828d016105ca565b60408c015160608d015160808e0151929b50909950975090506107228161066d565b945061073060a08b01610685565b935061073e60c08b01610685565b925061074c60e08b01610685565b915061075b6101008b01610685565b90509295985092959850929598565b600181811c9082168061077e57607f821691505b60208210810361079e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156107ee57806000526020600020601f840160051c810160208510156107cb5750805b601f840160051c820191505b818110156107eb57600081556001016107d7565b50505b505050565b81516001600160401b0381111561080c5761080c6105b4565b6108208161081a845461076a565b846107a4565b6020601f821160018114610854576000831561083c5750848201515b600019600385901b1c1916600184901b1784556107eb565b600084815260208120601f198516915b828110156108845787850151825560209485019460019092019101610864565b50848210156108a25786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000602082840312156108c357600080fd5b815180151581146108d357600080fd5b9392505050565b6000602082840312156108ec57600080fd5b81516108d38161066d565b614155806109066000396000f3fe6080604052600436106103bc5760003560e01c806371142364116101f2578063bfac5ee01161010d578063dd62ed3e116100a0578063ef6e4f171161006f578063ef6e4f1714610b14578063ef6f7f3e14610b2a578063f2fde38b14610b40578063f613b34314610b6057600080fd5b8063dd62ed3e14610a78578063e82bef2914610abe578063ea10510e14610ade578063eb10b74114610afe57600080fd5b8063ce4d9f15116100dc578063ce4d9f15146109fc578063d285e6ab14610a2c578063d37e768314610a42578063d943781014610a5857600080fd5b8063bfac5ee01461097c578063c213d62d1461099c578063c2d737f6146109bc578063c54e44eb146109dc57600080fd5b80638f6cd17d11610185578063a842486111610154578063a842486114610906578063a9059cbb14610926578063ac7f8d8314610946578063bb9864e61461096657600080fd5b80638f6cd17d146108af578063941e274c146108c557806395d89b41146108db5780639fafee31146108f057600080fd5b80638718b24f116101c15780638718b24f1461083b57806388faa0e41461085b5780638bef37a41461087b5780638da5cb5b1461089157600080fd5b806371142364146107d0578063715018a6146107f057806385dc300414610805578063869175241461082557600080fd5b80632a11ced0116102e25780634188bf5a11610275578063605324f211610244578063605324f21461075a578063621823e61461077a5780636402511e1461079057806370a08231146107b057600080fd5b80634188bf5a146106ee5780634330efe51461070e5780634a9a774014610724578063553193ca1461074457600080fd5b806335c96089116102b157806335c96089146106505780633bb82eb6146106715780633c11100d146106915780633ccfdbcd146106c157600080fd5b80632a11ced0146105e657806330509bca14610606578063313ce5671461061b57806332ea7db61461063057600080fd5b80630c95feae1161035a5780631dbbaebd116103295780631dbbaebd1461054e578063206c17bb1461056e5780632171dcc9146105a657806323b872dd146105c657600080fd5b80630c95feae146104d5578063150e4c47146104f9578063166a6b9d1461051957806318160ddd1461053957600080fd5b806305833c2b1161039657806305833c2b14610453578063060e304e1461047357806306fdde0314610493578063095ea7b3146104b557600080fd5b806301339c21146103c857806301873d8f146103df57806301986fad1461042357600080fd5b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610b76565b005b3480156103eb57600080fd5b5061040e6103fa3660046137a4565b602080526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561042f57600080fd5b5061040e61043e3660046137a4565b60236020526000908152604090205460ff1681565b34801561045f57600080fd5b506103dd61046e3660046137cf565b610bff565b34801561047f57600080fd5b506103dd61048e366004613808565b610c54565b34801561049f57600080fd5b506104a8610cdf565b60405161041a9190613845565b3480156104c157600080fd5b5061040e6104d0366004613878565b610d71565b3480156104e157600080fd5b506104eb601a5481565b60405190815260200161041a565b34801561050557600080fd5b506103dd6105143660046138f0565b610d88565b34801561052557600080fd5b506103dd610534366004613808565b610e1f565b34801561054557600080fd5b50600d546104eb565b34801561055a57600080fd5b506103dd610569366004613947565b610e4e565b34801561057a57600080fd5b5060065461058e906001600160a01b031681565b6040516001600160a01b03909116815260200161041a565b3480156105b257600080fd5b506103dd6105c13660046137cf565b610f68565b3480156105d257600080fd5b5061040e6105e1366004613989565b610fbc565b3480156105f257600080fd5b5061058e610601366004613808565b611053565b34801561061257600080fd5b506103dd61107d565b34801561062757600080fd5b50600c546104eb565b34801561063c57600080fd5b5060045461058e906001600160a01b031681565b34801561065c57600080fd5b5060005461040e90600160a81b900460ff1681565b34801561067d57600080fd5b506103dd61068c366004613808565b6110b9565b34801561069d57600080fd5b5061040e6106ac3660046137a4565b60246020526000908152604090205460ff1681565b3480156106cd57600080fd5b506104eb6106dc3660046137a4565b60256020526000908152604090205481565b3480156106fa57600080fd5b5060025461058e906001600160a01b031681565b34801561071a57600080fd5b506104eb601e5481565b34801561073057600080fd5b5060085461058e906001600160a01b031681565b34801561075057600080fd5b506104eb60125481565b34801561076657600080fd5b506103dd610775366004613808565b6110e8565b34801561078657600080fd5b506104eb601d5481565b34801561079c57600080fd5b506103dd6107ab366004613808565b611195565b3480156107bc57600080fd5b506104eb6107cb3660046137a4565b6111c4565b3480156107dc57600080fd5b506103dd6107eb3660046139ca565b611299565b3480156107fc57600080fd5b506103dd61136d565b34801561081157600080fd5b506103dd6108203660046137a4565b6113e1565b34801561083157600080fd5b506104eb60165481565b34801561084757600080fd5b5060075461058e906001600160a01b031681565b34801561086757600080fd5b5060035461058e906001600160a01b031681565b34801561088757600080fd5b506104eb60115481565b34801561089d57600080fd5b506000546001600160a01b031661058e565b3480156108bb57600080fd5b506104eb60135481565b3480156108d157600080fd5b506104eb60105481565b3480156108e757600080fd5b506104a861149b565b3480156108fc57600080fd5b506104eb60145481565b34801561091257600080fd5b506103dd6109213660046137cf565b6114aa565b34801561093257600080fd5b5061040e610941366004613878565b6114ff565b34801561095257600080fd5b506103dd610961366004613808565b61150c565b34801561097257600080fd5b506104eb600e5481565b34801561098857600080fd5b506103dd6109973660046139f8565b61153b565b3480156109a857600080fd5b506103dd6109b7366004613808565b61162d565b3480156109c857600080fd5b506103dd6109d7366004613808565b61165c565b3480156109e857600080fd5b5060055461058e906001600160a01b031681565b348015610a0857600080fd5b50610a1161168b565b6040805193845260208401929092529082015260600161041a565b348015610a3857600080fd5b506104eb60175481565b348015610a4e57600080fd5b506104eb60155481565b348015610a6457600080fd5b506104eb610a733660046137a4565b6117bf565b348015610a8457600080fd5b506104eb610a933660046139ca565b6001600160a01b03918216600090815260226020908152604080832093909416825291909152205490565b348015610aca57600080fd5b5060015461058e906001600160a01b031681565b348015610aea57600080fd5b506103dd610af9366004613a2f565b6119c8565b348015610b0a57600080fd5b506104eb601b5481565b348015610b2057600080fd5b506104eb60185481565b348015610b3657600080fd5b506104eb601f5481565b348015610b4c57600080fd5b506103dd610b5b3660046137a4565b611a10565b348015610b6c57600080fd5b506104eb600f5481565b6000546001600160a01b03163314610ba95760405162461bcd60e51b8152600401610ba090613a4c565b60405180910390fd5b60125415610bf95760405162461bcd60e51b815260206004820152601f60248201527f54726164696e672068617320616c7265616479206265656e206f70656e6564006044820152606401610ba0565b42601255565b6000546001600160a01b03163314610c295760405162461bcd60e51b8152600401610ba090613a4c565b6001600160a01b03919091166000908152602760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c7e5760405162461bcd60e51b8152600401610ba090613a4c565b80600003610cda5760405162461bcd60e51b815260206004820152602360248201527f4e65772076616c7565206d7573742062652067726561746572207468616e207a60448201526265726f60e81b6064820152608401610ba0565b601355565b6060600a8054610cee90613a6c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a90613a6c565b8015610d675780601f10610d3c57610100808354040283529160200191610d67565b820191906000526020600020905b815481529060010190602001808311610d4a57829003601f168201915b5050505050905090565b6000610d7e338484611ad6565b5060015b92915050565b6000546001600160a01b03163314610db25760405162461bcd60e51b8152600401610ba090613a4c565b60005b82811015610e19578160236000868685818110610dd457610dd4613aa0565b9050602002016020810190610de991906137a4565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055600101610db5565b50505050565b6000546001600160a01b03163314610e495760405162461bcd60e51b8152600401610ba090613a4c565b601455565b6000546001600160a01b03163314610e785760405162461bcd60e51b8152600401610ba090613a4c565b60005b81811015610f63576002546000906001600160a01b03166370a08231858585818110610ea957610ea9613aa0565b9050602002016020810190610ebe91906137a4565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610f02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f269190613ab6565b1115610f5b57610f5b838383818110610f4157610f41613aa0565b9050602002016020810190610f5691906137a4565b611b38565b600101610e7b565b505050565b6000546001600160a01b03163314610f925760405162461bcd60e51b8152600401610ba090613a4c565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6000610fc9848484611c54565b6001600160a01b038416600090815260226020908152604080832033845290915290205460001914611049576001600160a01b0384166000908152602260209081526040808320338452909152902054611024908390613ae5565b6001600160a01b03851660009081526022602090815260408083203384529091529020555b5060019392505050565b6009818154811061106357600080fd5b6000918252602090912001546001600160a01b0316905081565b6001546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156110b6573d6000803e3d6000fd5b50565b6000546001600160a01b031633146110e35760405162461bcd60e51b8152600401610ba090613a4c565b601d55565b6000546001600160a01b031633146111125760405162461bcd60e51b8152600401610ba090613a4c565b62030d4081101580156111285750621e84808111155b6111905760405162461bcd60e51b815260206004820152603360248201527f4c502072657761726420676173206d757374206265206265747765656e2032306044820152720302c30303020616e6420322c3030302c30303606c1b6064820152608401610ba0565b601755565b6000546001600160a01b031633146111bf5760405162461bcd60e51b8152600401610ba090613a4c565b601655565b6002546000906001600160a01b0383811691161480156111ee57506002546001600160a01b031633145b80156112035750600054600160a81b900460ff165b1561127d576002546001600160a01b031660009081526021602052604090205461127d5760405162461bcd60e51b815260206004820152602560248201527f53796e63206572726f723a204d61696e20706169722062616c616e6365206973604482015264207a65726f60d81b6064820152608401610ba0565b506001600160a01b031660009081526021602052604090205490565b6000546001600160a01b031633146112c35760405162461bcd60e51b8152600401610ba090613a4c565b600380546001600160a01b03199081166001600160a01b03858116918217845560009182526023602052604091829020805460ff1916600117905560048054909316858216179092559154915191169061131c90613782565b6001600160a01b039091168152602001604051809103906000f080158015611348573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03929092169190911790555050565b6000546001600160a01b031633146113975760405162461bcd60e51b8152600401610ba090613a4c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461140b5760405162461bcd60e51b8152600401610ba090613a4c565b803b63ffffffff16156114605760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e7472616374200000000000006044820152606401610ba0565b600180546001600160a01b039092166001600160a01b031990921682178155600091825260236020526040909120805460ff19169091179055565b6060600b8054610cee90613a6c565b6000546001600160a01b031633146114d45760405162461bcd60e51b8152600401610ba090613a4c565b6001600160a01b03919091166000908152602460205260409020805460ff1916911515919091179055565b6000610d7e338484611c54565b6000546001600160a01b031633146115365760405162461bcd60e51b8152600401610ba090613a4c565b601555565b6000546001600160a01b031633148061155e57506001546001600160a01b031633145b6115ba5760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f7420746865206f776e6572206f722066756e64206044820152666164647265737360c81b6064820152608401610ba0565b60405163a9059cbb60e01b81526001600160a01b0382811660048301526024820184905284169063a9059cbb906044016020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e199190613af8565b6000546001600160a01b031633146116575760405162461bcd60e51b8152600401610ba090613a4c565b601b55565b6000546001600160a01b031633146116865760405162461bcd60e51b8152600401610ba090613a4c565b601a55565b600080600080600260009054906101000a90046001600160a01b03169050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e9190613b2c565b506005546001600160701b039283169450911691506001600160a01b03163081101561173f57829650819550611746565b8196508295505b6002546040516370a0823160e01b81526001600160a01b039182166004820152908216906370a0823190602401602060405180830381865afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b49190613ab6565b945050505050909192565b60025460408051630240bc6b60e21b815290516000926001600160a01b031691839182918491630902f1ac916004808201926060929091908290030181865afa158015611810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118349190613b2c565b506005546001600160701b039283169450911691506001600160a01b0316600030821015611863575081611866565b50825b846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c89190613ab6565b156119bb57846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561190b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192f9190613ab6565b6040516370a0823160e01b81526001600160a01b0389811660048301528391908816906370a0823190602401602060405180830381865afa158015611978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199c9190613ab6565b6119a69190613b71565b6119b09190613b88565b979650505050505050565b5060009695505050505050565b6000546001600160a01b031633146119f25760405162461bcd60e51b8152600401610ba090613a4c565b60008054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314611a3a5760405162461bcd60e51b8152600401610ba090613a4c565b6001600160a01b038116611a7b5760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610ba0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526022602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b803b8015611b44575050565b6001600160a01b0382166000908152602660205260408120549003611c50576009541580611ba35750816001600160a01b03166009600081548110611b8b57611b8b613aa0565b6000918252602090912001546001600160a01b031614155b15611c5057600954604080516001600160a01b038516815260208101929092524282820152517f610927ea9054acb8dbdcc45de059355be9f7e1d99786df027933336acdf94b379181900360600190a1600980546001600160a01b0384166000818152602660205260408120839055600183018455929092527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b03191690911790555b5050565b6001600160a01b0383166000908152602160205260408120549080808080808088881015611cce5760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e742062616c616e636520666f72207472616e7366656044820152603960f91b6064820152608401610ba0565b600054600160a01b900460ff1615611cf957611ceb8b8b8b611ff0565b505050505050505050505050565b6002546001600160a01b038b81169116148015611d24575033600090815260208052604090205460ff165b8015611d385750326001600160a01b038c16145b15611d6657611d46896120a5565b9650600087118015611d5d575063ffffffff8b3b16155b15611d66575060015b6002546001600160a01b03908116908c1603611d9257611d8589612110565b95508515611d9257600191505b6001600160a01b038b1660009081526024602052604090205460ff1680611dd157506001600160a01b038a1660009081526024602052604090205460ff165b15611f5d576001600160a01b038b1660009081526023602052604090205460ff16158015611e1857506001600160a01b038a1660009081526023602052604090205460ff16155b15611f37576000601254118015611e3157506012544210155b611e7d5760405162461bcd60e51b815260206004820152601b60248201527f54726164696e6720686173206e6f7420737461727465642079657400000000006044820152606401610ba0565b6001600160a01b038a1660009081526024602052604090205460ff1615611f2157600054600160a01b900460ff16158015611eb6575080155b15611f215730600090815260216020526040902054601654811115611f1f576000601054600f54611ee79190613baa565b9050600060646013548d611efb9190613b71565b611f059190613b88565b905082811115611f125750815b611f1c81836121df565b50505b505b80158015611f2d575081155b15611f3757600194505b6001600160a01b038a1660009081526024602052604090205460ff1615611f5d57600193505b6001600160a01b038b1660009081526024602052604090205460ff16158015611f9f57506001600160a01b038a1660009081526024602052604090205460ff16155b15611fa957600192505b611fb98b8b8b88888887896124d9565b6001600160a01b038b163014611fe3578315611fd857611fd88b611b38565b611fe36017546128b8565b5050505050505050505050565b6001600160a01b03831660009081526021602052604081208054839190839061201a908490613ae5565b90915550506001600160a01b03831660009081526021602052604081208054849290612047908490613baa565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161209391815260200190565b60405180910390a35060019392505050565b6000806000806120b361168b565b925092509250600080841180156120ca5750600083115b156120e757826120da8588613b71565b6120e49190613b88565b90505b6120f18185613baa565b82106121075761210382878686612e38565b5094505b50505050919050565b600080600061211d61168b565b92505091508181116121d8576002548490612140906001600160a01b03166111c4565b61214a9190613ae5565b600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c19190613ab6565b6121cb9086613b71565b6121d59190613b88565b92505b5050919050565b6000805460ff60a01b1916600160a01b1790558015806121fd575081155b6124c857604080516002808252606082018352600092602083019080368337019050509050308160008151811061223657612236613aa0565b6001600160a01b03928316602091820292909201015260055482519116908290600190811061226757612267613aa0565b60200260200101906001600160a01b031690816001600160a01b03168152505060006122ac8260008151811061229f5761229f613aa0565b6020026020010151613128565b6122c28360018151811061229f5761229f613aa0565b6040516020016122d3929190613bd3565b60408051601f1981840301815290829052600654600754635c11d79560e01b84529193506001600160a01b0390811692635c11d79592612320928992600092899216904290600401613c69565b600060405180830381600087803b15801561233a57600080fd5b505af192505050801561234b575060015b61240957612357613ca5565b806308c379a0036123c0575061236b613cee565b8061237657506123c2565b6000805160206141008339815191528183604051602001612398929190613d73565b60408051601f19818403018152908290526123b291613845565b60405180910390a150612484565b505b600080516020614100833981519152816040516020016123e29190613dc9565b60408051601f19818403018152908290526123fc91613845565b60405180910390a1612484565b60055460075460009161242a916001600160a01b0391821691309116613309565b90506000601054600f5461243e9190613baa565b60105461244b9084613b71565b6124559190613b88565b90506124618183613ae5565b601e60008282546124729190613baa565b90915550612481905081613403565b50505b60408051428152602081018690529081018490527f7ad23435defed3734df4d11c482fbc32d81845ada872c44f2133b04e1f6927109060600160405180910390a150505b50506000805460ff60a01b19169055565b604080516001600160a01b03808b168252891660208201529081018790528515156060820152841515608082015283151560a082015282151560c082015281151560e08201527fc487182f3aa16d225b6b0e62829f6346c1b7fd247d886448e99afeaf28799319906101000160405180910390a16001600160a01b038816600090815260216020526040902054612571908790613ae5565b6001600160a01b038916600090815260216020526040812091909155851561289957841580156125a357506000601254115b80156125b157506012544210155b80156125cc5750601a546012546125c89190613baa565b4211155b15612809573260009081526028602052604090205460ff1615801561260a57506001600160a01b03881660009081526028602052604090205460ff16155b6126665760405162461bcd60e51b815260206004820152602760248201527f416c7265616479207075726368617365642077697468696e207468652066697260448201526639ba103437bab960c91b6064820152608401610ba0565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061269b5761269b613aa0565b6001600160a01b0392831660209182029290920101526005548251911690829060019081106126cc576126cc613aa0565b6001600160a01b03928316602091820292909201015260065460405163d06ca61f60e01b8152600092919091169063d06ca61f90612710908c908690600401613e0e565b600060405180830381865afa15801561272d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127559190810190613e27565b90506014548160018151811061276d5761276d613aa0565b602002602001015111156127cd5760405162461bcd60e51b815260206004820152602160248201527f507572636861736520616d6f756e74206578636565647320746865206c696d696044820152601d60fa1b6064820152608401610ba0565b5050326000908152602860205260408082208054600160ff1991821681179092556001600160a01b038c16845291909220805490911690911790555b6000601054600f5461281b9190613baa565b90506000601154828a61282e9190613b71565b6128389190613b88565b905080156128575761284a8184613baa565b92506128578b3083613682565b6000601154600e548b61286a9190613b71565b6128749190613b88565b90508015612895576128868185613baa565b93506128958c61dead83613682565b5050505b6128ad89896128a8848b613ae5565b613682565b505050505050505050565b43601d54601c546128c99190613baa565b11156128d25750565b612978604051806101e001604052806000815260200160006001600160a01b031681526020016000815260200160006001600160701b0316815260200160006001600160701b0316815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b601e54808252158061298c5750601b548151105b15612995575050565b6002546001600160a01b03166020808301829052604080516318160ddd60e01b815290516318160ddd926004808401939192918290030181865afa1580156129e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a059190613ab6565b60408201819052600003612a17575050565b80602001516001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7d9190613b2c565b506001600160701b03908116608084015216606082015260208082015160408051630dfe168160e01b815290516001600160a01b0390921692630dfe1681926004808401938290030181865afa158015612adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aff9190613ed8565b6001600160a01b0390811660a0830181905260055490911614612b26578060800151612b2c565b80606001515b6001600160701b031660c0820152600954610140820152600061016082018190526101808201525a6101a08201525b81816101600151108015612b785750806101400151816101800151105b15612deb5780610140015160195410612b915760006019555b600960195481548110612ba657612ba6613aa0565b600091825260209182902001546001600160a01b0390811660e08401819052918301516040516370a0823160e01b8152600481019390935216906370a0823190602401602060405180830381865afa158015612c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2a9190613ab6565b6101008201819052604082015160c0830151909190612c4a906002613b71565b612c549190613b71565b612c5e9190613b88565b6101c082015261010081015115801590612c95575060e08101516001600160a01b031660009081526027602052604090205460ff16155b8015612ca85750601554816101c0015110155b15612d8f5760408101516101008201518251612cc49190613b71565b612cce9190613b88565b610120820181905215801590612cea5750806101200151601e54115b15612d8f5760055460e082015161012083015160405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015612d4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d719190613af8565b50806101200151601e6000828254612d899190613ae5565b90915550505b5a816101a00151612da09190613ae5565b816101600151612db09190613baa565b6101608201525a6101a082015260198054906000612dcd83613ef5565b90915550506101808101805190612de382613ef5565b905250612b5b565b6101808101516040805132815242602082015280820192909252517ffa65b7233c7b4172d06ef0dae14be4d38a65263e2d03fd5098aa6281ab7c5d4e9181900360600190a1505043601c55565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb49190613ab6565b90506000600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f2f9190613ed8565b6001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f909190613ed8565b60025460408051637464fc3d60e01b815290519293506001600160a01b0380851615159360009390911691637464fc3d9160048083019260209291908290030181865afa158015612fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130099190613ab6565b905081156130ae5780156130ae57600061302b613026898b613b71565b6136fa565b90506000613038836136fa565b9050808211156130ab57600061304e8284613ae5565b6130589088613b71565b613063906008613b71565b90506000613072836008613b71565b61307d856011613b71565b6130879190613baa565b90506130938183613b88565b985088156130a8576130a58989613baa565b97505b50505b50505b60006130ba898c613ae5565b9050846000036130e5576103e86130d46130268c84613b71565b6130de9190613ae5565b965061311a565b613117896130f38784613b71565b6130fd9190613b88565b89613108888e613b71565b6131129190613b88565b61376a565b96505b505050505094509492505050565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b60208201528151602a80825260608281019094526001600160a01b0385169291600091602082018180368337019050509050600360fc1b8160008151811061319357613193613aa0565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106131c2576131c2613aa0565b60200101906001600160f81b031916908160001a90535060005b601481101561330057826004856131f484600c613baa565b6020811061320457613204613aa0565b1a60f81b6001600160f81b031916901c60f81c60ff168151811061322a5761322a613aa0565b01602001516001600160f81b03191682613245836002613b71565b613250906002613baa565b8151811061326057613260613aa0565b60200101906001600160f81b031916908160001a905350828461328483600c613baa565b6020811061329457613294613aa0565b825191901a600f169081106132ab576132ab613aa0565b01602001516001600160f81b031916826132c6836002613b71565b6132d1906003613baa565b815181106132e1576132e1613aa0565b60200101906001600160f81b031916908160001a9053506001016131dc565b50949350505050565b6040516370a0823160e01b81526001600160a01b03828116600483015260009182918616906370a0823190602401602060405180830381865afa158015613354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133789190613ab6565b905080156133fb576040516323b872dd60e01b81526001600160a01b0384811660048301528581166024830152604482018390528616906323b872dd906064016020604051808303816000875af11580156133d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133009190613af8565b949350505050565b604080516002808252606082018352600092602083019080368337505060055482519293506001600160a01b03169183915060009061344457613444613aa0565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061347557613475613aa0565b60200260200101906001600160a01b031690816001600160a01b03168152505060006134ad8260008151811061229f5761229f613aa0565b6134c38360018151811061229f5761229f613aa0565b6040516020016134d4929190613bd3565b60408051601f19818403018152919052600654601f549192506001600160a01b031690635c11d795906135079086613baa565b6008546040516001600160e01b031960e085901b16815261353c929160009188916001600160a01b0316904290600401613c69565b600060405180830381600087803b15801561355657600080fd5b505af1925050508015613567575060015b61365557613573613ca5565b806308c379a0036135f45750613587613cee565b8061359257506135f6565b60008051602061410083398151915281836040516020016135b4929190613f0e565b60408051601f19818403018152908290526135ce91613845565b60405180910390a183601f60008282546135e89190613baa565b90915550610f63915050565b505b600080516020614100833981519152816040516020016136169190613f69565b60408051601f198184030181529082905261363091613845565b60405180910390a182601f600082825461364a9190613baa565b90915550610f639050565b600354600454600854613677926001600160a01b039081169281169116613309565b506000601f55505050565b6001600160a01b0382166000908152602160205260409020546136a6908290613baa565b6001600160a01b0380841660008181526021602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b2b9085815260200190565b6000600382111561375b5750806000613714600283613b88565b61371f906001613baa565b90505b818110156137555790508060028161373a8186613b88565b6137449190613baa565b61374e9190613b88565b9050613722565b50919050565b8115613765575060015b919050565b6000818310613779578161377b565b825b9392505050565b61014780613fb983390190565b6001600160a01b03811681146110b657600080fd5b6000602082840312156137b657600080fd5b813561377b8161378f565b80151581146110b657600080fd5b600080604083850312156137e257600080fd5b82356137ed8161378f565b915060208301356137fd816137c1565b809150509250929050565b60006020828403121561381a57600080fd5b5035919050565b60005b8381101561383c578181015183820152602001613824565b50506000910152565b6020815260008251806020840152613864816040850160208701613821565b601f01601f19169190910160400192915050565b6000806040838503121561388b57600080fd5b82356138968161378f565b946020939093013593505050565b60008083601f8401126138b657600080fd5b50813567ffffffffffffffff8111156138ce57600080fd5b6020830191508360208260051b85010111156138e957600080fd5b9250929050565b60008060006040848603121561390557600080fd5b833567ffffffffffffffff81111561391c57600080fd5b613928868287016138a4565b909450925050602084013561393c816137c1565b809150509250925092565b6000806020838503121561395a57600080fd5b823567ffffffffffffffff81111561397157600080fd5b61397d858286016138a4565b90969095509350505050565b60008060006060848603121561399e57600080fd5b83356139a98161378f565b925060208401356139b98161378f565b929592945050506040919091013590565b600080604083850312156139dd57600080fd5b82356139e88161378f565b915060208301356137fd8161378f565b600080600060608486031215613a0d57600080fd5b8335613a188161378f565b925060208401359150604084013561393c8161378f565b600060208284031215613a4157600080fd5b813561377b816137c1565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b600181811c90821680613a8057607f821691505b60208210810361375557634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215613ac857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d8257610d82613acf565b600060208284031215613b0a57600080fd5b815161377b816137c1565b80516001600160701b038116811461376557600080fd5b600080600060608486031215613b4157600080fd5b613b4a84613b15565b9250613b5860208501613b15565b9150604084015163ffffffff8116811461393c57600080fd5b8082028115828204841417610d8257610d82613acf565b600082613ba557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610d8257610d82613acf565b634e487b7160e01b600052604160045260246000fd5b6502830ba341d160d51b815260008351613bf4816006850160208801613821565b63010169f160e51b6006918401918201528351613c1881600a840160208801613821565b01600a01949350505050565b600081518084526020840193506020830160005b82811015613c5f5781516001600160a01b0316865260209586019590910190600101613c38565b5093949350505050565b85815284602082015260a060408201526000613c8860a0830186613c24565b6001600160a01b0394909416606083015250608001529392505050565b600060033d1115613cbe5760046000803e5060005160e01c5b90565b601f8201601f1916810167ffffffffffffffff81118282101715613ce757613ce7613bbd565b6040525050565b600060443d1015613cfc5790565b6040513d600319016004823e80513d602482011167ffffffffffffffff82111715613d2657505090565b808201805167ffffffffffffffff811115613d42575050505090565b3d8401600319018282016020011115613d5c575050505090565b613d6b60208285010185613cc1565b509392505050565b6c029bbb0b8103330b4b632b21d1609d1b815260008351613d9b81600d850160208801613821565b61017160f51b600d918401918201528351613dbd81600f840160208801613821565b01600f01949350505050565b7f53776170206661696c65643a20556e6b6e6f776e206572726f722e2000000000815260008251613e0181601c850160208701613821565b91909101601c0192915050565b8281526040602082015260006133fb6040830184613c24565b600060208284031215613e3957600080fd5b815167ffffffffffffffff811115613e5057600080fd5b8201601f81018413613e6157600080fd5b805167ffffffffffffffff811115613e7b57613e7b613bbd565b8060051b604051613e8f6020830182613cc1565b918252602081840181019290810187841115613eaa57600080fd5b6020850194505b83851015613ecd57845180825260209586019590935001613eb1565b509695505050505050565b600060208284031215613eea57600080fd5b815161377b8161378f565b600060018201613f0757613f07613acf565b5060010190565b71020baba379039bbb0b8103330b4b632b21d160751b815260008351613f3b816012850160208801613821565b61017160f51b6012918401918201528351613f5d816014840160208801613821565b01601401949350505050565b7f4175746f2073776170206661696c65643a20556e6b6e6f776e206572726f722e8152600160fd1b602082015260008251613fab816021850160208701613821565b919091016021019291505056fe608060405234801561001057600080fd5b5060405161014738038061014783398101604081905261002f916100a8565b60405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b3906044016020604051808303816000875af115801561007d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a191906100d8565b50506100fa565b6000602082840312156100ba57600080fd5b81516001600160a01b03811681146100d157600080fd5b9392505050565b6000602082840312156100ea57600080fd5b815180151581146100d157600080fd5b603f806101086000396000f3fe6080604052600080fdfea26469706673582212207639ae745f5866779dd78565a00ff699c9ed4c7f3f599cc309186d28f5c0460d64736f6c634300081a00337654f5627170c8c611e846c6a0975b839bba70fab53fcdfdbf48ef218348d521a2646970667358221220794b95e20315d72ee330905332aca3d5ced9d997193e5018cf35601eeb98071864736f6c634300081a0033608060405234801561001057600080fd5b5060405161014738038061014783398101604081905261002f916100a8565b60405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b3906044016020604051808303816000875af115801561007d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a191906100d8565b50506100fa565b6000602082840312156100ba57600080fd5b81516001600160a01b03811681146100d157600080fd5b9392505050565b6000602082840312156100ea57600080fd5b815180151581146100d157600080fd5b603f806101086000396000f3fe6080604052600080fdfea26469706673582212207639ae745f5866779dd78565a00ff699c9ed4c7f3f599cc309186d28f5c0460d64736f6c634300081a00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000174b1ca8ab05a8c0000000000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000008c3a4c64e2f4b407a5e90b85562b44e5db38123c0000000000000000000000008c3a4c64e2f4b407a5e90b85562b44e5db38123c00000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000008c3a4c64e2f4b407a5e90b85562b44e5db38123c000000000000000000000000000000000000000000000000000000000000000c436f696e204469616d6f6e64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024344000000000000000000000000000000000000000000000000000000000000