827 txs
9.1k calls
constructor
constructor()
functions
accRewardPerToken
viewfunction accRewardPerToken() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
burnRate
viewfunction burnRate() view returns (uint16)
calculateRewards
viewfunction calculateRewards(address user) view returns (uint256)
calculateVestedAmount
viewfunction calculateVestedAmount(address beneficiary) view returns (uint256 vestedAmount, uint256 releasableAmount)
CLIFF_DURATION
viewfunction CLIFF_DURATION() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
emergencyMode
viewfunction emergencyMode() view returns (bool)
getAllBeneficiaries
viewfunction getAllBeneficiaries() view returns (address[])
getBeneficiaryCount
viewfunction getBeneficiaryCount() view returns (uint256)
getContractStats
viewfunction getContractStats() view returns (uint256 totalSupply_, uint256 totalStaked_, uint256 contractBalance, uint256 burnRate_, uint256 redistributionRate_, uint256 accRewardPerToken_, uint256 totalVestedTokens)
getRateLimitInfo
viewfunction getRateLimitInfo(address user) view returns (uint256 sellsInLastHour, uint256 remainingSells, uint256 timeUntilReset, bool isExemptFromRateLimit)
getSlippageInfo
viewfunction getSlippageInfo(uint256 amount, address from, address to) view returns (uint256 taxAmount, uint256 expectedReceive)
getStakeInfo
viewfunction getStakeInfo(address user) view returns (uint256 stakedAmount, uint256 pendingRewards, uint256 rewardDebt)
getTaxInfo
viewfunction getTaxInfo(address user) view returns (uint256 effectiveTaxRate, bool isExemptFromTax, uint256 burnRate_, uint256 redistributionRate_, uint256 ownerRate, uint256 teamRate)
getUserLimits
viewfunction getUserLimits(address user) view returns (uint256 maxBuy, uint256 maxSell, uint256 maxWallet, bool isExemptFromLimits)
getVestingInfo
viewfunction getVestingInfo(address beneficiary) view returns (tuple info, uint256 vestedAmount, uint256 releasableAmount, uint256 remainingTime)
getVestingSummary
viewfunction getVestingSummary() view returns (uint256 ownerVested, uint256 ownerReleasable, uint256 teamVested, uint256 teamReleasable, uint256 totalVestedInContract)
isBeneficiary
viewfunction isBeneficiary(address) view returns (bool)
isLiquidityPool
viewfunction isLiquidityPool(address) view returns (bool)
launchMode
viewfunction launchMode() view returns (bool)
MAX_CONSECUTIVE_BLOCKS
viewfunction MAX_CONSECUTIVE_BLOCKS() view returns (uint256)
MAX_SELLS_PER_HOUR
viewfunction MAX_SELLS_PER_HOUR() view returns (uint256)
MAX_SUPPLY
viewfunction MAX_SUPPLY() view returns (uint256)
MAX_TAX_RATE
viewfunction MAX_TAX_RATE() view returns (uint256)
maxBuyAmount
viewfunction maxBuyAmount() view returns (uint128)
maxSellAmount
viewfunction maxSellAmount() view returns (uint128)
maxWalletAmount
viewfunction maxWalletAmount() view returns (uint128)
MIN_TIME_BETWEEN_TRADES
viewfunction MIN_TIME_BETWEEN_TRADES() view returns (uint256)
name
viewfunction name() view returns (string)
originalOwner
viewfunction originalOwner() view returns (address)
OWNER_ALLOCATION
viewfunction OWNER_ALLOCATION() view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerTaxRate
viewfunction ownerTaxRate() view returns (uint16)
paused
viewfunction paused() view returns (bool)
RATE_LIMIT_WINDOW
viewfunction RATE_LIMIT_WINDOW() view returns (uint256)
rateLimitData
viewfunction rateLimitData(address) view returns (uint64 windowStart, uint8 sellCount)
redistributionRate
viewfunction redistributionRate() view returns (uint16)
symbol
viewfunction symbol() view returns (string)
TEAM_ALLOCATION
viewfunction TEAM_ALLOCATION() view returns (uint256)
teamMember
viewfunction teamMember() view returns (address)
teamMemberSet
viewfunction teamMemberSet() view returns (bool)
teamTaxRate
viewfunction teamTaxRate() view returns (uint16)
totalStaked
viewfunction totalStaked() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalTaxRate
viewfunction totalTaxRate() view returns (uint16)
tradeData
viewfunction tradeData(address) view returns (uint64 lastTradeBlock, uint64 lastTradeTime, uint8 consecutiveBlocks, uint8 quickTradeCount)
tradingEnabled
viewfunction tradingEnabled() view returns (bool)
userData
viewfunction userData(address) view returns (uint128 stakedAmount, uint128 rewardDebt, bool isExcludedFromTax, bool isExcludedFromLimits, bool isExcludedFromRateLimit)
VESTING_DURATION
viewfunction VESTING_DURATION() view returns (uint256)
VESTING_PRECISION
viewfunction VESTING_PRECISION() view returns (uint256)
vestingBeneficiaries
viewfunction vestingBeneficiaries(uint256) view returns (address)
vestingRemainder
viewfunction vestingRemainder(address) view returns (uint256)
vestingSchedules
viewfunction vestingSchedules(address) view returns (uint256 totalAmount, uint256 releasedAmount, uint256 startTime, uint256 cliffTime, uint256 endTime, bool isActive)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
batchSetLiquidityPools
nonpayablefunction batchSetLiquidityPools(address[] pools, bool[] statuses)
batchSetRateLimitExemptions
nonpayablefunction batchSetRateLimitExemptions(address[] accounts, bool[] exemptions)
batchSetTaxExemptions
nonpayablefunction batchSetTaxExemptions(address[] accounts, bool[] exemptions)
claimRewards
nonpayablefunction claimRewards()
disableLaunchMode
nonpayablefunction disableLaunchMode()
emergencyPause
nonpayablefunction emergencyPause()
emergencyUnpause
nonpayablefunction emergencyUnpause()
enableLaunchMode
nonpayablefunction enableLaunchMode()
releaseVestedTokens
nonpayablefunction releaseVestedTokens(uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setLimitExemption
nonpayablefunction setLimitExemption(address account, bool exempt)
setLiquidityPool
nonpayablefunction setLiquidityPool(address pool, bool isLP)
setRateLimitExemption
nonpayablefunction setRateLimitExemption(address account, bool exempt)
setTaxExemption
nonpayablefunction setTaxExemption(address account, bool exempt)
setTeamMember
nonpayablefunction setTeamMember(address _teamMember)
stake
nonpayablefunction stake(uint256 amount)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unstake
nonpayablefunction unstake(uint256 amount)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BotDetected
event BotDetected(address indexed user, string reason)
EmergencyModeToggled
event EmergencyModeToggled(bool enabled)
ExemptionChanged
event ExemptionChanged(address indexed account, string exemptionType, bool status)
LaunchModeToggled
event LaunchModeToggled(bool enabled)
LiquidityPoolAdded
event LiquidityPoolAdded(address indexed pool, bool isPool)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RateLimitExceeded
event RateLimitExceeded(address indexed user, uint256 currentSells, uint256 maxSells)
RewardsClaimed
event RewardsClaimed(address indexed user, uint256 amount)
SandwichProtectionTriggered
event SandwichProtectionTriggered(address indexed user, uint256 blockNumber)
Staked
event Staked(address indexed user, uint256 amount)
TaxCollected
event TaxCollected(uint256 burnAmount, uint256 redistributeAmount, uint256 ownerAmount, uint256 teamAmount)
TeamMemberSet
event TeamMemberSet(address indexed teamMember)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
Unstaked
event Unstaked(address indexed user, uint256 amount)
VestingClaimed
event VestingClaimed(address indexed beneficiary, uint256 amount)
VestingStarted
event VestingStarted(address indexed beneficiary, uint256 amount, uint256 startTime)
errors
E1
error E1()
E10
error E10()
E11
error E11()
E12
error E12()
E14
error E14()
E16
error E16()
E17
error E17()
E18
error E18()
E19
error E19()
E2
error E2()
E20
error E20()
E21
error E21()
E22
error E22()
E23
error E23()
E3
error E3()
E4
error E4()
E5
error E5()
E6
error E6()
E7
error E7()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x6101a060405260108054606460a081905260c052603260e08190526101005261012c6101205263ffffffff60a01b19166201000160a81b17905534801561004557600080fd5b5033604051806040016040528060128152602001712834b1b5b632a1b430b93a39902a37b5b2b760711b8152506040518060400160405280600381526020016250434360e81b815250816003908161009d91906106f5565b5060046100aa82826106f5565b5050506001600160a01b0381166100dc57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100e58161044c565b5060016006556007805460ff19169055610120516101005160e05160c05160a05161ffff9094169361011791906107c9565b61012191906107c9565b61012b91906107c9565b61ffff16146101715760405162461bcd60e51b81526020600482015260126024820152710a8c2f040e4c2e8cae640dad2e6dac2e8c6d60731b60448201526064016100d3565b33608052606461018d6a108b2a2c2802909400000060016107e9565b6101979190610800565b6001600160801b0316610140526127106101bd6a108b2a2c2802909400000060196107e9565b6101c79190610800565b6001600160801b03166101605260646101ec6a108b2a2c2802909400000060016107e9565b6101f69190610800565b6001600160801b03166101805260006103e861021e604b6a108b2a2c280290940000006107e9565b6102289190610800565b905060006103e8610245604b6a108b2a2c280290940000006107e9565b61024f9190610800565b9050600061025d8284610822565b90506000610276826a108b2a2c28029094000000610835565b905061028e608051600180600161049e60201b60201c565b306000908152600860205260409020600101805462ffffff1916620101011790556102ca6102c46005546001600160a01b031690565b826104f2565b6102d430836104f2565b6040518060c001604052808581526020016000815260200142815260200162f099c0426103019190610822565b81526020016103146303c2670042610822565b81526001602090910152600c60006103346005546001600160a01b031690565b6001600160a01b031681526020808201929092526040908101600020835181559183015160018301558201516002820155606082015160038201556080820151600482015560a0909101516005909101805460ff1916911515919091179055600e6103a76005546001600160a01b031690565b8154600180820184556000938452602080852090920180546001600160a01b0319166001600160a01b039485161790556005805484168552600f9092526040909320805460ff19169093179092559054166001600160a01b03167f8fe19f160f86d04fb1a90dde93e5e1a47df0810685adf4b990153c107d7b3924854260405161043b929190918252602082015260400190565b60405180910390a250505050610848565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03939093166000908152600860205260409020600101805461ffff191692151561ff00191692909217610100911515919091021762ff000019166201000092151592909202919091179055565b6001600160a01b03821661051c5760405163ec442f0560e01b8152600060048201526024016100d3565b6105286000838361052c565b5050565b6001600160a01b03831661055757806002600082825461054c9190610822565b909155506105c99050565b6001600160a01b038316600090815260208190526040902054818110156105aa5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100d3565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166105e557600280548290039055610604565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161064991815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061068057607f821691505b6020821081036106a057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106f057806000526020600020601f840160051c810160208510156106cd5750805b601f840160051c820191505b818110156106ed57600081556001016106d9565b50505b505050565b81516001600160401b0381111561070e5761070e610656565b6107228161071c845461066c565b846106a6565b6020601f821160018114610756576000831561073e5750848201515b600019600385901b1c1916600184901b1784556106ed565b600084815260208120601f198516915b828110156107865787850151825560209485019460019092019101610766565b50848210156107a45786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b61ffff81811683821601908111156107e3576107e36107b3565b92915050565b80820281158282048414176107e3576107e36107b3565b60008261081d57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107e3576107e36107b3565b818103818111156107e3576107e36107b3565b60805160a05160c05160e051610100516101205161014051610160516101805161478561098360003960008181610a7601528181612ecb015261365f01526000818161081601528181612e93015261357101526000818161094b01528181612e5b015281816135c60152613610015260008181610b36015281816117b101528181612b0e01526136ed0152600081816104fc01528181612bb001526137ef0152600081816105d701528181612b8b01526137b0015260008181610ca801528181612b6601528181612cef0152613771015260008181610c0401528181612b4101528181612cca0152613732015260008181610f030152818161172c015281816120ae0152818161269801528181612ab901528181612e06015281816133fc01528181613463015281816134c5015261384501526147856000f3fe6080604052600436106104475760003560e01c80638da5cb5b11610234578063c89109131161012e578063f0f94bf1116100b6578063f6c985711161007a578063f6c9857114610f86578063fb897ce414610fe9578063fd99cbed14610ebc578063fdb20ccb14611065578063ffa06b2a146110e757600080fd5b8063f0f94bf114610ed1578063f1fffdcb14610ef1578063f2fde38b14610f25578063f52c397314610f45578063f562e12214610f6657600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610ddc578063dfe6b5d614610e22578063e85455d714610e6c578063eeb3f56c14610e9c578063ef59e0cd14610ebc57600080fd5b8063c891091314610cca578063cae00a9714610d64578063cbce44b414610d79578063d737a57b14610d8f57600080fd5b8063ae1a3740116101bc578063bed9985011610180578063bed9985014610bf2578063c1f7375414610c26578063c29c669a14610c3b578063c345315314610c5b578063c378491b14610c9657600080fd5b8063ae1a374014610b24578063b37dd69014610b58578063b3ad5c9c14610b79578063b3daa65214610bbb578063b64e3c7414610bd257600080fd5b80639d19b226116102035780639d19b226146109f4578063a694fc3a14610a24578063a9059cbb14610a44578063aa4bde2814610a64578063ade927e714610a9857600080fd5b80638da5cb5b146109825780638fa81732146109b457806395d89b41146109ca5780639a6e7fd1146109df57600080fd5b80633fb5ce841161034557806366d602ae116102cd578063817b1cd211610291578063817b1cd2146108d157806383cc7595146108e7578063858d23291461092457806388e765ff14610939578063890c3b611461096d57600080fd5b806366d602ae1461080457806370a08231146108505780637130dfc914610886578063715018a61461089c5780637d2aeb8a146108b157600080fd5b80634ada218b116103145780634ada218b1461077e5780634cfc4d301461079f57806351858e27146107b75780635c975abb146107cc57806364ab8675146107e457600080fd5b80633fb5ce84146107095780634463c1b21461072957806349e9d706146107495780634a4e3bd51461076957600080fd5b806323b872dd116103d3578063313ce56711610397578063313ce5671461067057806332cb6b0c1461068c57806333eeec68146106ab578063342dacb3146106c7578063372500ab146106f457600080fd5b806323b872dd146105a557806328b0dbf5146105c55780632b6bf17a146105f95780632e17de781461062e5780632f14bae81461064e57600080fd5b80630dd9349c1161041a5780630dd9349c146104ea57806310e081a11461053157806318160ddd146105515780631c7c02af1461057057806321c24a181461058557600080fd5b806306fdde031461044c5780630905f56014610477578063095ea7b3146104a85780630c66974a146104c8575b600080fd5b34801561045857600080fd5b50610461611107565b60405161046e91906142a4565b60405180910390f35b34801561048357600080fd5b5060105461049890600160b01b900460ff1681565b604051901515815260200161046e565b3480156104b457600080fd5b506104986104c3366004614307565b611199565b3480156104d457600080fd5b506104e86104e336600461437e565b6111b3565b005b3480156104f657600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff909116815260200161046e565b34801561053d57600080fd5b506104e861054c36600461437e565b61134d565b34801561055d57600080fd5b506002545b60405190815260200161046e565b34801561057c57600080fd5b50610562600581565b34801561059157600080fd5b506104e86105a03660046143fd565b611564565b3480156105b157600080fd5b506104986105c0366004614432565b611615565b3480156105d157600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561060557600080fd5b50610619610614366004614473565b6116af565b6040805192835260208301919091520161046e565b34801561063a57600080fd5b506104e86106493660046144b5565b6117fa565b34801561065a57600080fd5b5061066361197d565b60405161046e91906144ce565b34801561067c57600080fd5b506040516012815260200161046e565b34801561069857600080fd5b506105626a108b2a2c2802909400000081565b3480156106b757600080fd5b50610562670de0b6b3a764000081565b3480156106d357600080fd5b506105626106e236600461451a565b600d6020526000908152604090205481565b34801561070057600080fd5b506104e86119de565b34801561071557600080fd5b506104e861072436600461451a565b611a02565b34801561073557600080fd5b506104e86107443660046143fd565b611c8c565b34801561075557600080fd5b506104e861076436600461437e565b611d2b565b34801561077557600080fd5b506104e8611ec4565b34801561078a57600080fd5b5060105461049890600160a81b900460ff1681565b3480156107ab57600080fd5b506105626303c2670081565b3480156107c357600080fd5b506104e8611f18565b3480156107d857600080fd5b5060075460ff16610498565b3480156107f057600080fd5b506105626107ff36600461451a565b611f6c565b34801561081057600080fd5b506108387f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160801b03909116815260200161046e565b34801561085c57600080fd5b5061056261086b36600461451a565b6001600160a01b031660009081526020819052604090205490565b34801561089257600080fd5b50610562610e1081565b3480156108a857600080fd5b506104e861205e565b3480156108bd57600080fd5b506104e86108cc3660046144b5565b61206e565b3480156108dd57600080fd5b5061056260115481565b3480156108f357600080fd5b506108fc6122d3565b604080519586526020860194909452928401919091526060830152608082015260a00161046e565b34801561093057600080fd5b506104e86123ea565b34801561094557600080fd5b506108387f000000000000000000000000000000000000000000000000000000000000000081565b34801561097957600080fd5b50610562600281565b34801561098e57600080fd5b506005546001600160a01b03165b6040516001600160a01b03909116815260200161046e565b3480156109c057600080fd5b506105626103e881565b3480156109d657600080fd5b50610461612436565b3480156109eb57600080fd5b50600e54610562565b348015610a0057600080fd5b50610498610a0f36600461451a565b600f6020526000908152604090205460ff1681565b348015610a3057600080fd5b506104e8610a3f3660046144b5565b612445565b348015610a5057600080fd5b50610498610a5f366004614307565b612589565b348015610a7057600080fd5b506108387f000000000000000000000000000000000000000000000000000000000000000081565b348015610aa457600080fd5b50610af0610ab336600461451a565b600a602052600090815260409020546001600160401b0380821691600160401b81049091169060ff600160801b8204811691600160881b90041684565b604080516001600160401b03958616815294909316602085015260ff9182169284019290925216606082015260800161046e565b348015610b3057600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610b6457600080fd5b5060105461049890600160b81b900460ff1681565b348015610b8557600080fd5b50610b99610b9436600461451a565b612615565b604080519485526020850193909352918301521515606082015260800161046e565b348015610bc757600080fd5b5061056262f099c081565b348015610bde57600080fd5b506104e8610bed3660046143fd565b6127dd565b348015610bfe57600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610c3257600080fd5b506104e8612871565b348015610c4757600080fd5b506104e8610c563660046143fd565b6128b7565b348015610c6757600080fd5b50610c7b610c7636600461451a565b612993565b6040805193845260208401929092529082015260600161046e565b348015610ca257600080fd5b5061051e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610cd657600080fd5b50610d29610ce536600461451a565b600860205260009081526040902080546001909101546001600160801b0380831692600160801b9004169060ff808216916101008104821691620100009091041685565b604080516001600160801b0396871681529590941660208601529115159284019290925290151560608301521515608082015260a00161046e565b348015610d7057600080fd5b50610562601481565b348015610d8557600080fd5b5061056260125481565b348015610d9b57600080fd5b50610daf610daa36600461451a565b612a34565b604080519687529415156020870152938501929092526060840152608083015260a082015260c00161046e565b348015610de857600080fd5b50610562610df736600461453e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610e2e57600080fd5b50610e37612bd8565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e00161046e565b348015610e7857600080fd5b50610498610e8736600461451a565b600b6020526000908152604090205460ff1681565b348015610ea857600080fd5b5060105461099c906001600160a01b031681565b348015610ec857600080fd5b50610562604b81565b348015610edd57600080fd5b5061099c610eec3660046144b5565b612d1b565b348015610efd57600080fd5b5061099c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610f3157600080fd5b506104e8610f4036600461451a565b612d45565b348015610f5157600080fd5b5060105461049890600160a01b900460ff1681565b348015610f7257600080fd5b50610b99610f8136600461451a565b612d80565b348015610f9257600080fd5b50610fc8610fa136600461451a565b6009602052600090815260409020546001600160401b03811690600160401b900460ff1682565b604080516001600160401b03909316835260ff90911660208301520161046e565b348015610ff557600080fd5b5061100961100436600461451a565b612f0d565b6040805185518152602080870151908201528582015191810191909152606080860151908201526080808601519082015260a09485015115159481019490945260c084019290925260e08301526101008201526101200161046e565b34801561107157600080fd5b506110b861108036600461451a565b600c60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909160ff1686565b6040805196875260208701959095529385019290925260608401526080830152151560a082015260c00161046e565b3480156110f357600080fd5b5061061961110236600461451a565b612fe7565b60606003805461111690614577565b80601f016020809104026020016040519081016040528092919081815260200182805461114290614577565b801561118f5780601f106111645761010080835404028352916020019161118f565b820191906000526020600020905b81548152906001019060200180831161117257829003601f168201915b5050505050905090565b6000336111a78185856131a6565b60019150505b92915050565b6111bb6131b8565b8281146111e35760405162461bcd60e51b81526004016111da906145ab565b60405180910390fd5b60005b83811015611346576000858583818110611202576112026145d4565b9050602002016020810190611217919061451a565b6001600160a01b03161461133e57828282818110611237576112376145d4565b905060200201602081019061124c91906145ea565b60086000878785818110611262576112626145d4565b9050602002016020810190611277919061451a565b6001600160a01b031681526020810191909152604001600020600101805460ff19169115159190911790558484828181106112b4576112b46145d4565b90506020020160208101906112c9919061451a565b6001600160a01b03166000805160206147308339815191528484848181106112f3576112f36145d4565b905060200201602081019061130891906145ea565b60405161133591906040808252600390820152620e8c2f60eb1b6060820152901515602082015260800190565b60405180910390a25b6001016111e6565b5050505050565b6113556131b8565b8281146113745760405162461bcd60e51b81526004016111da906145ab565b60005b83811015611346576000858583818110611393576113936145d4565b90506020020160208101906113a8919061451a565b6001600160a01b03161461155c578282828181106113c8576113c86145d4565b90506020020160208101906113dd91906145ea565b15611456576114118585838181106113f7576113f76145d4565b905060200201602081019061140c919061451a565b6131e5565b6114565760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a59081b1a5c5d5a591a5d1e481c1bdbdb60521b60448201526064016111da565b828282818110611468576114686145d4565b905060200201602081019061147d91906145ea565b600b6000878785818110611493576114936145d4565b90506020020160208101906114a8919061451a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558484828181106114e2576114e26145d4565b90506020020160208101906114f7919061451a565b6001600160a01b03167f8eec4444037e638e7e4c01834f45737841a40c8a73d1b2e160e2adb98302a7c1848484818110611533576115336145d4565b905060200201602081019061154891906145ea565b604051901515815260200160405180910390a25b600101611377565b61156c6131b8565b816001600160a01b03811661159457604051633c4117f160e21b815260040160405180910390fd5b6001600160a01b038316600081815260086020526040908190206001018054851515620100000262ff00001990911617905551600080516020614730833981519152906116089085906040808252600990820152681c985d19531a5b5a5d60ba1b6060820152901515602082015260800190565b60405180910390a2505050565b600061161f6132e1565b601054600160a81b900460ff1615801561164457506005546001600160a01b03163314155b156116625760405163440a57bf60e01b815260040160405180910390fd5b601054600160b01b900460ff161561168d57604051633485c51360e21b815260040160405180910390fd5b33611699858285613327565b6116a48585856133a6565b506001949350505050565b6001600160a01b0382166000908152600860209081526040808320815160a08101835281546001600160801b038082168352600160801b90910416938101939093526001015460ff8082161515928401839052610100820481161515606085015262010000909104161515608083015282919082908061176057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316145b8061177857506010546001600160a01b038781169116145b6001600160a01b0386166000908152600b602052604090205490915060ff1680156117a1575080155b156117e4576127106117d761ffff7f0000000000000000000000000000000000000000000000000000000000000000168961461b565b6117e19190614648565b93505b6117ee848861465c565b92505050935093915050565b61180261391a565b61180a6132e1565b601054600160b01b900460ff161561183557604051633485c51360e21b815260040160405180910390fd5b8080600003611857576040516388d0662b60e01b815260040160405180910390fd5b33600090815260086020526040902080546001600160801b0316831115611891576040516388d0662b60e01b815260040160405180910390fd5b611899613973565b8054839082906000906118b69084906001600160801b031661466f565b82546101009290920a6001600160801b038181021990931691831602179091556012548354670de0b6b3a764000093506118f0921661461b565b6118fa9190614648565b81546001600160801b03918216600160801b0291161781556011805484919060009061192790849061465c565b909155506119389050303385613a1c565b60405183815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75906020015b60405180910390a2505061197a6001600655565b50565b6060600e80548060200260200160405190810160405280929190818152602001828054801561118f57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119b7575050505050905090565b6119e661391a565b6119ee6132e1565b6119f6613973565b611a006001600655565b565b611a0a6131b8565b806001600160a01b038116611a3257604051633c4117f160e21b815260040160405180910390fd5b6005546001600160a01b03166001600160a01b0316826001600160a01b031603611a6f57604051633c96bfd560e11b815260040160405180910390fd5b601080546001600160a81b0319166001600160a01b03841617600160a01b17905560006103e8611aab604b6a108b2a2c2802909400000061461b565b611ab59190614648565b6001600160a01b0384166000908152600c602052604081205491925003611c37576040518060c001604052808281526020016000815260200142815260200162f099c042611b03919061468e565b8152602001611b166303c267004261468e565b8152600160209182018190526001600160a01b0386166000908152600c83526040808220855181558585015193810193909355848101516002840155606085015160038401556080850151600484015560a0909401516005909201805460ff191692151592909217909155600f909152205460ff16611bf357600e805460018082019092557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b0386169081179091556000908152600f60205260409020805460ff191690911790555b604080518281524260208201526001600160a01b038516917f8fe19f160f86d04fb1a90dde93e5e1a47df0810685adf4b990153c107d7b3924910160405180910390a25b6001600160a01b038316600081815260086020526040808220600101805462ffffff191662010101179055517f980a1bd6ad8c44b041d74dbd1f0a9538ea0d800828437a808e37137344cf60019190a2505050565b611c946131b8565b816001600160a01b038116611cbc57604051633c4117f160e21b815260040160405180910390fd5b6001600160a01b0383166000818152600860205260409081902060010180548515156101000261ff001990911617905551600080516020614730833981519152906116089085906040808252600690820152656c696d69747360d01b6060820152901515602082015260800190565b611d336131b8565b828114611d525760405162461bcd60e51b81526004016111da906145ab565b60005b83811015611346576000858583818110611d7157611d716145d4565b9050602002016020810190611d86919061451a565b6001600160a01b031614611ebc57828282818110611da657611da66145d4565b9050602002016020810190611dbb91906145ea565b60086000878785818110611dd157611dd16145d4565b9050602002016020810190611de6919061451a565b6001600160a01b0316815260208101919091526040016000206001018054911515620100000262ff000019909216919091179055848482818110611e2c57611e2c6145d4565b9050602002016020810190611e41919061451a565b6001600160a01b0316600080516020614730833981519152848484818110611e6b57611e6b6145d4565b9050602002016020810190611e8091906145ea565b604051611eb391906040808252600990820152681c985d19531a5b5a5d60ba1b6060820152901515602082015260800190565b60405180910390a25b600101611d55565b611ecc6131b8565b611ed4613a7b565b6010805460ff60b01b19169055604051600081527fb8a34678623c94d0d3977ce6d4db867e7e96ffd365f2c0f677563f8dddd4c840906020015b60405180910390a1565b611f206131b8565b611f28613ac8565b6010805460ff60b01b1916600160b01b179055604051600181527fb8a34678623c94d0d3977ce6d4db867e7e96ffd365f2c0f677563f8dddd4c84090602001611f0e565b6001600160a01b0381166000908152600860209081526040808320815160a08101835281546001600160801b03808216808452600160801b909204169482019490945260019091015460ff808216151593830193909352610100810483161515606083015262010000900490911615156080820152908203611ff15750600092915050565b6000670de0b6b3a764000060125483600001516001600160801b0316612017919061461b565b6120219190614648565b905081602001516001600160801b0316811161203e576000612056565b6020820151612056906001600160801b03168261465c565b949350505050565b6120666131b8565b611a00613b05565b61207661391a565b6005546001600160a01b0316331480159061209c57506010546001600160a01b03163314155b80156120d15750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b156120ef576040516302b0eba760e21b815260040160405180910390fd5b8080600003612111576040516388d0662b60e01b815260040160405180910390fd5b336000908152600c60205260409020600581015460ff166121455760405163e217c62b60e01b815260040160405180910390fd5b806003015442101561216a576040516301899ea960e01b815260040160405180910390fd5b600061217533612fe7565b915050806000036121995760405163652399f960e11b815260040160405180910390fd5b808411156121a5578093505b838260010160008282546121b9919061468e565b909155505060048201544210156122865760008260030154426121dc919061465c565b90506000836003015484600401546121f4919061465c565b9050801561228357600081670de0b6b3a7640000848760000154612218919061461b565b612222919061461b565b61222c9190614648565b90506000612242670de0b6b3a7640000836146a1565b336000908152600d602052604090205461225c919061468e565b9050612270670de0b6b3a7640000826146a1565b336000908152600d602052604090205550505b50505b612291303386613a1c565b60405184815233907f9fe9b7be9d151c7a8b6de49a1312ff27a15096d0d1d12999af85fe4310e0b1259060200160405180910390a250505061197a6001600655565b60008060008060006122f06111026005546001600160a01b031690565b6010549196509450600160a01b900460ff16156123225760105461231c906001600160a01b0316612fe7565b90935091505b600c60006123386005546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002060010154600c60006123726005546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002054612396919061465c565b601054909150600160a01b900460ff16156123e3576010546001600160a01b03166000908152600c60205260409020600181015490546123d6919061465c565b6123e0908261468e565b90505b9091929394565b6123f26131b8565b6010805460ff60b81b1916600160b81b179055604051600181527f2d1dc28ea9037aef9d503ba44d4a9c11b678bf109ace139d2b94648eef6ae67390602001611f0e565b60606004805461111690614577565b61244d61391a565b6124556132e1565b601054600160b01b900460ff161561248057604051633485c51360e21b815260040160405180910390fd5b80806000036124a2576040516388d0662b60e01b815260040160405180910390fd5b6124aa613973565b6124b5333084613a1c565b3360009081526008602052604081208054909184918391906124e19084906001600160801b03166146b5565b82546101009290920a6001600160801b038181021990931691831602179091556012548354670de0b6b3a7640000935061251b921661461b565b6125259190614648565b81546001600160801b03918216600160801b0291161781556011805484919060009061255290849061468e565b909155505060405183815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001611966565b60006125936132e1565b601054600160a81b900460ff161580156125b857506005546001600160a01b03163314155b156125d65760405163440a57bf60e01b815260040160405180910390fd5b601054600160b01b900460ff161561260157604051633485c51360e21b815260040160405180910390fd5b61260c3384846133a6565b50600192915050565b6001600160a01b0381166000908152600860209081526040808320815160a08101835281546001600160801b038082168352600160801b90910416938101939093526001015460ff808216151592840192909252610100810482161515606084015262010000900416151560808201819052829182918291908290806126cc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316145b806126e457506010546001600160a01b038881169116145b9050801561270457600060001960006001955095509550955050506127d6565b6001600160a01b0387166000908152600960209081526040918290208251808401909352546001600160401b038116808452600160401b90910460ff1691830191909152429061275790610e109061468e565b811061277557600060056000809750975097509750505050506127d6565b602082015160ff16975060058810156127a057602082015161279b9060ff16600561465c565b6127a3565b60005b965080610e1083600001516001600160401b03166127c1919061468e565b6127cb919061465c565b955060009450505050505b9193509193565b6127e56131b8565b816001600160a01b03811661280d57604051633c4117f160e21b815260040160405180910390fd5b6001600160a01b038316600081815260086020908152604091829020600101805460ff19168615159081179091558251838152600393810193909352620e8c2f60eb1b60608401529082015260008051602061473083398151915290608001611608565b6128796131b8565b6010805460ff60b81b19169055604051600081527f2d1dc28ea9037aef9d503ba44d4a9c11b678bf109ace139d2b94648eef6ae67390602001611f0e565b6128bf6131b8565b816001600160a01b0381166128e757604051633c4117f160e21b815260040160405180910390fd5b811561293b576128f6836131e5565b61293b5760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a59081b1a5c5d5a591a5d1e481c1bdbdb60521b60448201526064016111da565b6001600160a01b0383166000818152600b6020908152604091829020805460ff191686151590811790915591519182527f8eec4444037e638e7e4c01834f45737841a40c8a73d1b2e160e2adb98302a7c19101611608565b6001600160a01b0381166000908152600860209081526040808320815160a08101835281546001600160801b03808216808452600160801b909204169482019490945260019091015460ff8082161515938301939093526101008104831615156060830152620100009004909116151560808201528291829190612a1686611f6c565b602092909201516001600160801b0391821697929650169350915050565b6001600160a01b0381166000908152600860209081526040808320815160a08101835281546001600160801b038082168352600160801b90910416938101939093526001015460ff808216151592840183905261010082048116151560608501526201000090910416151560808301528291829182918291829190829080612aed57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316145b80612b0557506010546001600160a01b038a81169116145b905080612b32577f0000000000000000000000000000000000000000000000000000000000000000612b35565b60005b61ffff9081169a9199507f0000000000000000000000000000000000000000000000000000000000000000811698507f0000000000000000000000000000000000000000000000000000000000000000811697507f0000000000000000000000000000000000000000000000000000000000000000811696507f000000000000000000000000000000000000000000000000000000000000000016945092505050565b600080600080600080600080600c6000612bfa6005546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002060010154600c6000612c346005546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002054612c58919061465c565b601054909150600160a01b900460ff1615612ca5576010546001600160a01b03166000908152600c6020526040902060018101549054612c98919061465c565b612ca2908261468e565b90505b60025460115430600090815260208190526040902054601254929b919a50985061ffff7f0000000000000000000000000000000000000000000000000000000000000000811698507f00000000000000000000000000000000000000000000000000000000000000001696509094509092509050565b600e8181548110612d2b57600080fd5b6000918252602090912001546001600160a01b0316905081565b612d4d6131b8565b6001600160a01b038116612d7757604051631e4fbdf760e01b8152600060048201526024016111da565b61197a81613b13565b6001600160a01b0381166000908152600860209081526040808320815160a08101835281546001600160801b038082168352600160801b90910416938101939093526001015460ff80821615159284019290925261010081048216151560608401819052620100009091049091161515608083015282918291829190829080612e3a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b0316145b80612e5257506010546001600160a01b038881169116145b905080612e88577f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316612e8c565b6000195b81612ec0577f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316612ec4565b6000195b82612ef8577f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316612efc565b6000195b919750955093509150509193509193565b612f486040518060c0016040528060008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b506001600160a01b0381166000908152600c60209081526040808320815160c0810183528154815260018201549381019390935260028101549183019190915260038101546060830152600481015460808301526005015460ff16151560a0820152908080612fb685612fe7565b608086015191945092504210612fce575060006127d6565b428460800151612fde919061465c565b90509193509193565b6001600160a01b0381166000908152600c60209081526040808320815160c0810183528154815260018201549381019390935260028101549183019190915260038101546060830152600481015460808301526005015460ff16151560a0820181905282919061305d5750600093849350915050565b80606001514210156130755750600093849350915050565b80608001514210613089578051925061317d565b600081606001514261309b919061465c565b90506000826060015183608001516130b3919061465c565b9050806000036130cb57506000958695509350505050565b600081670de0b6b3a76400008486600001516130e7919061461b565b6130f1919061461b565b6130fb9190614648565b905061310f670de0b6b3a764000082614648565b95506000613125670de0b6b3a7640000836146a1565b6001600160a01b0389166000908152600d6020526040902054613148919061468e565b9050670de0b6b3a764000081106131785761316b670de0b6b3a764000082614648565b613175908861468e565b96505b505050505b8060200151831161318f57600061319e565b602081015161319e908461465c565b915050915091565b6131b38383836001613b65565b505050565b6005546001600160a01b03163314611a005760405163118cdaa760e01b81523360048201526024016111da565b6000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613241575060408051601f3d908101601f1916820190925261323e918101906146d4565b60015b61324d57506000919050565b826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156132a7575060408051601f3d908101601f191682019092526132a4918101906146d4565b60015b6132b45750600092915050565b6001600160a01b03821630148061205657506001600160a01b0381163014949350505050565b505b919050565b60075460ff1615611a005760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016111da565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198110156133a0578181101561339157604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016111da565b6133a084848484036000613b65565b50505050565b601054600160b81b900460ff16156133c3576131b3838383613a1c565b6001600160a01b03838116600090815260086020526040808220928516825281206001830154909190610100900460ff168061343057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316145b8061344857506010546001600160a01b038781169116145b6001830154909150600090610100900460ff168061349757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316145b806134af57506010546001600160a01b038781169116145b600185015490915060009060ff16806134f957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316145b8061351157506010546001600160a01b038981169116145b6001600160a01b038089166000908152600b602052604080822054928c16825290205491925060ff908116911681806135475750805b15613555576135558a613c3a565b8115613564576135648a613f52565b846136585781156135be577f00000000000000000000000000000000000000000000000000000000000000006001600160801b03168811156135b957604051632fd8225d60e21b815260040160405180910390fd5b613658565b801561360e577f00000000000000000000000000000000000000000000000000000000000000006001600160801b03168811156135b957604051632fd8225d60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b031688111561365857604051632fd8225d60e21b815260040160405180910390fd5b836136d0577f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316886136a78b6001600160a01b031660009081526020819052604090205490565b6136b1919061468e565b11156136d057604051631bd18a1960e31b815260040160405180910390fd5b60008280156136dd575083155b156138f95761271061371361ffff7f0000000000000000000000000000000000000000000000000000000000000000168b61461b565b61371d9190614648565b905080156138f957600061271061375861ffff7f0000000000000000000000000000000000000000000000000000000000000000168c61461b565b6137629190614648565b9050600061271061379761ffff7f0000000000000000000000000000000000000000000000000000000000000000168d61461b565b6137a19190614648565b905060006127106137d661ffff7f0000000000000000000000000000000000000000000000000000000000000000168e61461b565b6137e09190614648565b9050600061271061381561ffff7f0000000000000000000000000000000000000000000000000000000000000000168f61461b565b61381f9190614648565b905061382b8f856140a8565b6138368f3085613a1c565b61383f836140e2565b61386a8f7f000000000000000000000000000000000000000000000000000000000000000084613a1c565b601054600160a01b900460ff16156138a15761389c8f601060009054906101000a90046001600160a01b031683613a1c565b6138ac565b6138ac8f3083613a1c565b6040805185815260208101859052908101839052606081018290527f3b16e63d8dedd802cbe63c525997d175d4dd90f3927e6c231f7e52949a2944ae9060800160405180910390a1505050505b61390d8b8b613908848d61465c565b613a1c565b5050505050505050505050565b60026006540361396c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016111da565b6002600655565b600061397e33611f6c565b9050801561197a573360009081526008602052604090206012548154670de0b6b3a7640000916139b6916001600160801b031661461b565b6139c09190614648565b81546001600160801b03918216600160801b0291161781556139e3303384613a1c565b60405182815233907ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe9060200160405180910390a25050565b6001600160a01b038316613a4657604051634b637e8f60e11b8152600060048201526024016111da565b6001600160a01b038216613a705760405163ec442f0560e01b8152600060048201526024016111da565b6131b3838383614131565b613a8361425b565b6007805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b039091168152602001611f0e565b613ad06132e1565b6007805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613ab03390565b613b0d6131b8565b611a0060005b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038416613b8f5760405163e602df0560e01b8152600060048201526024016111da565b6001600160a01b038316613bb957604051634a1406b160e11b8152600060048201526024016111da565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156133a057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051613c2c91815260200190565b60405180910390a350505050565b601054600160b81b900460ff1615613c4f5750565b6001600160a01b038116600090815260086020526040902060010154610100900460ff1615613c7b5750565b6001600160a01b0381166000908152600a602052604090208054439042906001600160401b0316829003613d58578254600160801b900460ff16836010613cc1836146f1565b91906101000a81548160ff021916908360ff1602179055505060028360000160109054906101000a900460ff1660ff161115613d5357836001600160a01b03167f681c8bb0761977b494466ba136c43608de0ee128be26670d09af2b125599c19e83604051613d3291815260200190565b60405180910390a260405163066d598f60e41b815260040160405180910390fd5b613d6a565b825460ff60801b1916600160801b1783555b8254613d8890601490600160401b90046001600160401b031661468e565b811015613e1157836001600160a01b03167f592ac15bd4ea5ce974441da086acea0e96d3c46f8caedb9cfcc4a1367038d73c604051613df09060208082526015908201527411985cdd081d1c98591a5b99c819195d1958dd1959605a1b604082015260600190565b60405180910390a260405163a97809f560e01b815260040160405180910390fd5b8254613e2e90600160401b90046001600160401b0316603c614710565b6001600160401b0316811015613f13578254600160881b900460ff16836011613e56836146f1565b91906101000a81548160ff021916908360ff1602179055505060038360000160119054906101000a900460ff1660ff161115613f0e57836001600160a01b03167f592ac15bd4ea5ce974441da086acea0e96d3c46f8caedb9cfcc4a1367038d73c604051613eed906020808252601590820152742930b834b2103a3930b234b733903830ba3a32b93760591b604082015260600190565b60405180910390a2604051632c4b588360e21b815260040160405180910390fd5b613f1f565b825460ff60881b191683555b82546001600160401b03918216600160401b026fffffffffffffffffffffffffffffffff19909116919092161717905550565b601054600160b81b900460ff1615613f675750565b6001600160a01b0381166000908152600860205260409020600181015462010000900460ff1615613f96575050565b6001600160a01b038216600090815260096020526040902080544290613fc890610e10906001600160401b031661468e565b8110613ff457815468ffffffffffffffffff19166001600160401b0390911617600160401b1790555050565b81546005600160401b90910460ff161061407157815460408051600160401b90920460ff168252600560208301526001600160a01b038616917f853d8bc84624b52a1a6244e2d8e0961ad8035ee7ed75d6054cd4d49a2c247a42910160405180910390a2604051635b85f48960e11b815260040160405180910390fd5b8154600160401b900460ff16826008614089836146f1565b91906101000a81548160ff021916908360ff1602179055505050505050565b6001600160a01b0382166140d257604051634b637e8f60e11b8152600060048201526024016111da565b6140de82600083614131565b5050565b60006011541180156140f45750600081115b1561197a5760115461410e82670de0b6b3a764000061461b565b6141189190614648565b60126000828254614129919061468e565b909155505050565b6001600160a01b03831661415c578060026000828254614151919061468e565b909155506141ce9050565b6001600160a01b038316600090815260208190526040902054818110156141af5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016111da565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166141ea57600280548290039055614209565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161424e91815260200190565b60405180910390a3505050565b60075460ff16611a005760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016111da565b602081526000825180602084015260005b818110156142d257602081860181015160408684010152016142b5565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461197a57600080fd5b6000806040838503121561431a57600080fd5b8235614325816142f2565b946020939093013593505050565b60008083601f84011261434557600080fd5b5081356001600160401b0381111561435c57600080fd5b6020830191508360208260051b850101111561437757600080fd5b9250929050565b6000806000806040858703121561439457600080fd5b84356001600160401b038111156143aa57600080fd5b6143b687828801614333565b90955093505060208501356001600160401b038111156143d557600080fd5b6143e187828801614333565b95989497509550505050565b803580151581146132dc57600080fd5b6000806040838503121561441057600080fd5b823561441b816142f2565b9150614429602084016143ed565b90509250929050565b60008060006060848603121561444757600080fd5b8335614452816142f2565b92506020840135614462816142f2565b929592945050506040919091013590565b60008060006060848603121561448857600080fd5b83359250602084013561449a816142f2565b915060408401356144aa816142f2565b809150509250925092565b6000602082840312156144c757600080fd5b5035919050565b602080825282518282018190526000918401906040840190835b8181101561450f5783516001600160a01b03168352602093840193909201916001016144e8565b509095945050505050565b60006020828403121561452c57600080fd5b8135614537816142f2565b9392505050565b6000806040838503121561455157600080fd5b823561455c816142f2565b9150602083013561456c816142f2565b809150509250929050565b600181811c9082168061458b57607f821691505b6020821081036132da57634e487b7160e01b600052602260045260246000fd5b6020808252600f908201526e098cadccee8d040dad2e6dac2e8c6d608b1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156145fc57600080fd5b614537826143ed565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176111ad576111ad614605565b634e487b7160e01b600052601260045260246000fd5b60008261465757614657614632565b500490565b818103818111156111ad576111ad614605565b6001600160801b0382811682821603908111156111ad576111ad614605565b808201808211156111ad576111ad614605565b6000826146b0576146b0614632565b500690565b6001600160801b0381811683821601908111156111ad576111ad614605565b6000602082840312156146e657600080fd5b8151614537816142f2565b600060ff821660ff810361470757614707614605565b60010192915050565b6001600160401b0381811683821601908111156111ad576111ad61460556fee57f82bc60ede31a08c55b27803ef85824dbff6f6d1369afad0c142a50f42f22a26469706673582212204d955014dca3a3413b456a4d3214ff740b8cd90b2f1eb8e0c096e98419b9e0a664736f6c634300081e0033