0 txs
37 calls
constructor
constructor()
functions
admin
viewfunction admin() view returns (address)
aggregatorInterface
viewfunction aggregatorInterface() view returns (address)
applySanctions
viewfunction applySanctions() view returns (bool)
baseDecimals
viewfunction baseDecimals() view returns (uint256)
blacklistedReferrers
viewfunction blacklistedReferrers(address) view returns (bool)
calculatePrice
viewfunction calculatePrice(uint256 _amount) view returns (uint256)
checkPoint
viewfunction checkPoint() view returns (uint256)
checkReferralStatus
viewfunction checkReferralStatus(address _referrer) view returns (bool)
claimStart
viewfunction claimStart() view returns (uint256)
currentStep
viewfunction currentStep() view returns (uint256)
dynamicTimeFlag
viewfunction dynamicTimeFlag() view returns (bool)
endTime
viewfunction endTime() view returns (uint256)
ethBuyHelper
viewfunction ethBuyHelper(uint256 amount) view returns (uint256 ethAmount)
getLatestPrice
viewfunction getLatestPrice() view returns (uint256)
hasClaimed
viewfunction hasClaimed(address) view returns (bool)
isBlacklisted
viewfunction isBlacklisted(address) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address) view returns (bool)
maxTokensToBuy
viewfunction maxTokensToBuy() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentWallet
viewfunction paymentWallet() view returns (address)
percentages
viewfunction percentages(uint256) view returns (uint256)
prevCheckpoints
viewfunction prevCheckpoints(uint256) view returns (uint256)
referrerPercentage
viewfunction referrerPercentage() view returns (uint256)
referrersMustBeBuyers
viewfunction referrersMustBeBuyers() view returns (bool)
remainingTokensTracker
viewfunction remainingTokensTracker(uint256) view returns (uint256)
roundDetails
viewfunction roundDetails(uint256 _no) view returns (uint256[])
rounds
viewfunction rounds(uint256, uint256) view returns (uint256)
saleToken
viewfunction saleToken() view returns (address)
sanctionsList
viewfunction sanctionsList() view returns (address)
stakeingWhitelistStatus
viewfunction stakeingWhitelistStatus() view returns (bool)
stakingManagerInterface
viewfunction stakingManagerInterface() view returns (address)
startTime
viewfunction startTime() view returns (uint256)
timeConstant
viewfunction timeConstant() view returns (uint256)
totalBoughtAndStaked
viewfunction totalBoughtAndStaked() view returns (uint256)
totalTokensSold
viewfunction totalTokensSold() view returns (uint256)
trackRemainingTokens
viewfunction trackRemainingTokens() view returns (uint256[])
USDCInterface
viewfunction USDCInterface() view returns (address)
usdRaised
viewfunction usdRaised() view returns (uint256)
usdtBuyHelper
viewfunction usdtBuyHelper(uint256 amount) view returns (uint256 usdPrice)
USDTInterface
viewfunction USDTInterface() view returns (address)
userDeposits
viewfunction userDeposits(address) view returns (uint256)
wallets
viewfunction wallets(uint256) view returns (address)
web3PaymentPercentage
viewfunction web3PaymentPercentage() view returns (uint256)
web3PaymentWallet
viewfunction web3PaymentWallet() view returns (address)
wertWhitelisted
viewfunction wertWhitelisted(address) view returns (bool)
whitelistClaimOnly
viewfunction whitelistClaimOnly() view returns (bool)
blacklistReferrer
nonpayablefunction blacklistReferrer(address[] _referrers)
blacklistUsers
nonpayablefunction blacklistUsers(address[] _usersToBlacklist)
buyWithEth
payablefunction buyWithEth(uint256 amount, bool stake, address referrer) payable returns (bool)
buyWithETHWert
payablefunction buyWithETHWert(address _user, uint256 _amount, bool stake, address referrer) payable returns (bool)
buyWithUSDC
nonpayablefunction buyWithUSDC(uint256 amount, bool stake, address referrer) returns (bool)
buyWithUSDT
nonpayablefunction buyWithUSDT(uint256 amount, bool stake, address referrer) returns (bool)
changeClaimStart
nonpayablefunction changeClaimStart(uint256 _claimStart) returns (bool)
changeMaxTokensToBuy
nonpayablefunction changeMaxTokensToBuy(uint256 _maxTokensToBuy)
changePaymentWallet
nonpayablefunction changePaymentWallet(address _newPaymentWallet)
changeRoundsData
nonpayablefunction changeRoundsData(uint256[][3] _rounds)
changeSaleTimes
nonpayablefunction changeSaleTimes(uint256 _startTime, uint256 _endTime)
claim
nonpayablefunction claim() returns (bool)
claimAndStake
nonpayablefunction claimAndStake() returns (bool)
incrementCurrentStep
nonpayablefunction incrementCurrentStep()
pause
nonpayablefunction pause()
removeFromBlacklist
nonpayablefunction removeFromBlacklist(address[] _userToRemoveFromBlacklist)
removeFromBlacklistedReferrerMapping
nonpayablefunction removeFromBlacklistedReferrerMapping(address[] _referrers)
removeFromWhitelist
nonpayablefunction removeFromWhitelist(address[] _userToRemoveFromWhitelist)
removeFromWhitelistForWERT
nonpayablefunction removeFromWhitelistForWERT(address[] _addressesToRemoveFromWhitelist)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin)
setClaimWhitelistStatus
nonpayablefunction setClaimWhitelistStatus(bool _status)
setCurrentStep
nonpayablefunction setCurrentStep(uint256 _step, uint256 _checkpoint)
setDynamicTimeFlag
nonpayablefunction setDynamicTimeFlag(bool _dynamicTimeFlag)
setRemainingTokensArray
nonpayablefunction setRemainingTokensArray(uint256[] _unsoldTokens)
setSanctions
nonpayablefunction setSanctions(address _sanctionContract, bool _applySanction)
setSplits
nonpayablefunction setSplits(address[] _wallets, uint256[] _percentages)
setStakeingWhitelistStatus
nonpayablefunction setStakeingWhitelistStatus(bool _status)
setStakingManager
nonpayablefunction setStakingManager(address _stakingManagerAddress)
setTimeConstant
nonpayablefunction setTimeConstant(uint256 _timeConstant)
startClaim
nonpayablefunction startClaim(uint256 _claimStart, uint256 noOfTokens, address _saleToken, address _stakingManagerAddress) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateFromBSC
nonpayablefunction updateFromBSC(address[] _users, uint256[] _userDeposits)
updateReferrarPercentage
nonpayablefunction updateReferrarPercentage(uint256 _percentage)
updateReferrersMustBeBuyers
nonpayablefunction updateReferrersMustBeBuyers(bool _referrersMustBeBuyers)
updateWeb3PaymentDetails
nonpayablefunction updateWeb3PaymentDetails(address _paymentAddress, uint256 _percentage)
whitelistUsers
nonpayablefunction whitelistUsers(address[] _usersToWhitelist)
whitelistUsersForWERT
nonpayablefunction whitelistUsersForWERT(address[] _addressesToWhitelist)
events
ClaimStartUpdated
event ClaimStartUpdated(uint256 prevValue, uint256 newValue, uint256 timestamp)
Initialized
event Initialized(uint8 version)
MaxTokensUpdated
event MaxTokensUpdated(uint256 prevValue, uint256 newValue, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SaleTimeSet
event SaleTimeSet(uint256 _start, uint256 _end, uint256 timestamp)
SaleTimeUpdated
event SaleTimeUpdated(bytes32 indexed key, uint256 prevValue, uint256 newValue, uint256 timestamp)
TokensAdded
event TokensAdded(address indexed token, uint256 noOfTokens, uint256 timestamp)
TokensBought
event TokensBought(address indexed user, uint256 indexed tokensBought, address indexed purchaseToken, uint256 amountPaid, uint256 usdEq, uint256 timestamp)
TokensBoughtAndStaked
event TokensBoughtAndStaked(address indexed user, uint256 indexed tokensBought, address indexed purchaseToken, uint256 amountPaid, uint256 usdEq, uint256 timestamp)
TokensClaimed
event TokensClaimed(address indexed user, uint256 amount, uint256 timestamp)
TokensClaimedAndStaked
event TokensClaimedAndStaked(address indexed user, uint256 amount, uint256 timestamp)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200013d60201b620045091760201c565b15801562000063575060005460ff166001145b620000cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000ef576000805461ff0019166101001790555b801562000136576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506200014c565b6001600160a01b03163b151590565b615e80806200015c6000396000f3fe6080604052600436106104b55760003560e01c806389daf7991161026b578063cff805ab1161014f578063f0120ff8116100c1578063f597573f11610085578063f597573f14610e5e578063f851a44014610e7e578063f885838614610e9e578063fb9a4acd14610ebe578063fe21a94f14610ede578063fe575a8714610ef157600080fd5b8063f0120ff814610dc8578063f04d688f14610de8578063f0ff892314610dfe578063f2fde38b14610e1e578063f446374314610e3e57600080fd5b8063e32204dd11610113578063e32204dd14610d12578063e6da921314610d32578063e985e36714610d52578063eadd94ec14610d72578063ec571c6a14610d88578063edec5f2714610da857600080fd5b8063cff805ab14610c7b578063d1690fec14610c91578063d258919614610cb1578063dad80e8614610cd1578063e19648db14610cf257600080fd5b8063b00bba6a116101e8578063c23326f3116101ac578063c23326f314610bd7578063c49cc64514610bf7578063c8adff0114610c17578063ca1600b614610c2c578063cad0055614610c46578063cb1a4fc014610c6657600080fd5b8063b00bba6a14610b2a578063b8977d6d14610b4a578063ba166a3914610b6a578063bb3d676a14610b97578063bb695f2a14610bb757600080fd5b80639b5fb9c91161022f5780639b5fb9c914610a945780639cfa0f7c14610ab4578063a2db641614610aca578063a6d42e4e14610aea578063ae10426514610b0a57600080fd5b806389daf79914610a015780638ac0808214610a215780638da5cb5b14610a415780638e15f47314610a5f5780639a89c1fb14610a7457600080fd5b806343568eae1161039d57806363b201171161030f57806373b2e80e116102d357806373b2e80e1461095a57806378e979251461098a5780637ad71f72146109a05780637f6fb253146109c05780638456cb59146109d657806388c3e458146109eb57600080fd5b806363b20117146108da57806363e40879146108f0578063641046f414610910578063704b6c0214610925578063715018a61461094557600080fd5b8063548db17411610361578063548db1741461081c5780635bc34f711461083c5780635c975abb146108525780635ddc56881461086a5780635df4f3531461088a57806361ad0b7c146108ba57600080fd5b806343568eae1461079a5780634bc6191a146107b05780634e71d92d146107c657806350429ee4146107db57806353d99207146107fb57600080fd5b8063278c278b116104365780633197cbb6116103fa5780633197cbb6146106f657806333f761781461070c57806338646608146107225780633af32abf146107425780633f4ba83a146107725780634151848f1461078757600080fd5b8063278c278b1461065557806329a5a0b6146106755780632c73304d146106955780632dc358e8146106b557806330e74f08146106d557600080fd5b80630dc9c8381161047d5780630dc9c8381461059c5780631ddc6091146105bc5780631fa2bc92146105dc57806323a8f1c0146105fd57806325312e541461061d57600080fd5b8063032bd1f7146104ba57806303b9c5ad146104ff57806307f18082146105215780630a200fc7146105415780630ba36dcd14610561575b600080fd5b3480156104c657600080fd5b506104ea6104d536600461545f565b60eb6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561050b57600080fd5b5061051f61051a3660046154c6565b610f21565b005b34801561052d57600080fd5b506104ea61053c366004615508565b610fa0565b34801561054d57600080fd5b5061051f61055c36600461552f565b6110dc565b34801561056d57600080fd5b5061058e61057c36600461545f565b60e06020526000908152604090205481565b6040519081526020016104f6565b3480156105a857600080fd5b5061051f6105b736600461554c565b611102565b3480156105c857600080fd5b5061051f6105d736600461552f565b6112de565b3480156105e857600080fd5b5060dd546104ea90600160a01b900460ff1681565b34801561060957600080fd5b5061051f610618366004615508565b611304565b34801561062957600080fd5b5060e75461063d906001600160a01b031681565b6040516001600160a01b0390911681526020016104f6565b34801561066157600080fd5b5061051f610670366004615508565b611311565b34801561068157600080fd5b5061058e610690366004615508565b6113b4565b3480156106a157600080fd5b5061051f6106b036600461556e565b6113e8565b3480156106c157600080fd5b5061051f6106d03660046156a4565b611430565b3480156106e157600080fd5b5060e6546104ea90600160a01b900460ff1681565b34801561070257600080fd5b5061058e60cb5481565b34801561071857600080fd5b5061058e60ce5481565b34801561072e57600080fd5b5060e55461063d906001600160a01b031681565b34801561074e57600080fd5b506104ea61075d36600461545f565b60e36020526000908152604090205460ff1681565b34801561077e57600080fd5b5061051f611546565b6104ea6107953660046156e1565b611558565b3480156107a657600080fd5b5061058e60d35481565b3480156107bc57600080fd5b5061058e60e95481565b3480156107d257600080fd5b506104ea611a79565b3480156107e757600080fd5b5060e85461063d906001600160a01b031681565b34801561080757600080fd5b5060dd546104ea90600160a81b900460ff1681565b34801561082857600080fd5b5061051f6108373660046154c6565b611dd5565b34801561084857600080fd5b5061058e60d05481565b34801561085e57600080fd5b5060975460ff166104ea565b34801561087657600080fd5b5061051f61088536600461571f565b611e4f565b34801561089657600080fd5b506104ea6108a536600461545f565b60e46020526000908152604090205460ff1681565b3480156108c657600080fd5b5061051f6108d536600461552f565b612045565b3480156108e657600080fd5b5061058e60c95481565b3480156108fc57600080fd5b5061058e61090b366004615508565b612060565b34801561091c57600080fd5b5061051f612082565b34801561093157600080fd5b5061051f61094036600461545f565b612247565b34801561095157600080fd5b5061051f612271565b34801561096657600080fd5b506104ea61097536600461545f565b60e16020526000908152604090205460ff1681565b34801561099657600080fd5b5061058e60ca5481565b3480156109ac57600080fd5b5061063d6109bb366004615508565b612283565b3480156109cc57600080fd5b5061058e60d45481565b3480156109e257600080fd5b5061051f6122ad565b3480156109f757600080fd5b5061058e60ea5481565b348015610a0d57600080fd5b5061051f610a1c3660046154c6565b6122bd565b348015610a2d57600080fd5b506104ea610a3c3660046157df565b612337565b348015610a4d57600080fd5b506065546001600160a01b031661063d565b348015610a6b57600080fd5b5061058e6125ac565b348015610a8057600080fd5b5061051f610a8f36600461554c565b61264c565b348015610aa057600080fd5b5061051f610aaf366004615508565b61265f565b348015610ac057600080fd5b5061058e60cf5481565b348015610ad657600080fd5b5061051f610ae53660046154c6565b61266c565b348015610af657600080fd5b5061051f610b05366004615825565b6126ed565b348015610b1657600080fd5b5061058e610b25366004615508565b612702565b348015610b3657600080fd5b5061051f610b4536600461545f565b612a38565b348015610b5657600080fd5b5061051f610b6536600461552f565b612b5a565b348015610b7657600080fd5b50610b8a610b85366004615508565b612b80565b6040516104f691906158c0565b348015610ba357600080fd5b5061051f610bb23660046154c6565b612bec565b348015610bc357600080fd5b506104ea610bd236600461545f565b612c66565b348015610be357600080fd5b5061058e610bf2366004615508565b612d73565b348015610c0357600080fd5b5060df5461063d906001600160a01b031681565b348015610c2357600080fd5b50610b8a612d94565b348015610c3857600080fd5b5060ec546104ea9060ff1681565b348015610c5257600080fd5b5061051f610c6136600461545f565b612dec565b348015610c7257600080fd5b506104ea612e65565b348015610c8757600080fd5b5061058e60d15481565b348015610c9d57600080fd5b506104ea610cac3660046156e1565b61309c565b348015610cbd57600080fd5b5061051f610ccc3660046154c6565b61362c565b348015610cdd57600080fd5b5060dd546104ea90600160b01b900460ff1681565b348015610cfe57600080fd5b5061058e610d0d366004615508565b6136a7565b348015610d1e57600080fd5b5060dc5461063d906001600160a01b031681565b348015610d3e57600080fd5b5061058e610d4d36600461554c565b6136b7565b348015610d5e57600080fd5b5060cd5461063d906001600160a01b031681565b348015610d7e57600080fd5b5061058e60d25481565b348015610d9457600080fd5b5060e65461063d906001600160a01b031681565b348015610db457600080fd5b5061051f610dc33660046154c6565b6136eb565b348015610dd457600080fd5b506104ea610de33660046156e1565b613765565b348015610df457600080fd5b5061058e60cc5481565b348015610e0a57600080fd5b5061051f610e19366004615904565b613ce5565b348015610e2a57600080fd5b5061051f610e3936600461545f565b613d13565b348015610e4a57600080fd5b5061051f610e593660046154c6565b613d8c565b348015610e6a57600080fd5b5060de5461063d906001600160a01b031681565b348015610e8a57600080fd5b5060dd5461063d906001600160a01b031681565b348015610eaa57600080fd5b5061058e610eb9366004615508565b613e06565b348015610eca57600080fd5b5061051f610ed936600461592e565b613e16565b6104ea610eec36600461599a565b613efc565b348015610efd57600080fd5b506104ea610f0c36600461545f565b60e26020526000908152604090205460ff1681565b610f29614518565b60005b81811015610f9b57600160e46000858585818110610f4c57610f4c6159d0565b9050602002016020810190610f61919061545f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f93816159fc565b915050610f2c565b505050565b6000610faa614518565b600060cc54116110015760405162461bcd60e51b815260206004820152601a60248201527f496e697469616c20636c61696d2064617461206e6f742073657400000000000060448201526064015b60405180910390fd5b60cb5482116110455760405162461bcd60e51b815260206004820152601060248201526f53616c6520696e2070726f677265737360801b6044820152606401610ff8565b42821161108a5760405162461bcd60e51b815260206004820152601360248201527210db185a5b481cdd185c9d081a5b881c185cdd606a1b6044820152606401610ff8565b60cc8054908390556040805182815260208101859052428183015290517f5f3a900c85949962b4cc192dd3714dae64071dc2e907049ec720b023270905a49181900360600190a160019150505b919050565b6110e4614518565b60dd8054911515600160a01b0260ff60a01b19909216919091179055565b61110a614518565b60008211806111195750600081115b61115a5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420706172616d657465727360701b6044820152606401610ff8565b811561123f5760ca5442106111a85760405162461bcd60e51b815260206004820152601460248201527314d85b1948185b1c9958591e481cdd185c9d195960621b6044820152606401610ff8565b8142106111eb5760405162461bcd60e51b815260206004820152601160248201527014d85b19481d1a5b59481a5b881c185cdd607a1b6044820152606401610ff8565b60ca8054908390556040805182815260208101859052428183015290516414d510549560da1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b80156112da5760ca5481116112885760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420656e6454696d6560881b6044820152606401610ff8565b60cb8054908290556040805182815260208101849052428183015290516211539160ea1b917fddd2ed237e6993c9380182683f2c8bec486aaaa429528852cd74dbdb96cea0b2919081900360600190a2505b5050565b6112e6614518565b60dd8054911515600160a81b0260ff60a81b19909216919091179055565b61130c614518565b60d355565b611319614518565b600081116113695760405162461bcd60e51b815260206004820152601c60248201527f5a65726f206d617820746f6b656e7320746f206275792076616c7565000000006044820152606401610ff8565b60cf8054908290556040805182815260208101849052428183015290517f76f9e5e1f6af6a9f180708b77a5c99210fbf19b91f1f194f3918c262b8edf77c9181900360600190a15050565b6000806113c083612702565b90506113ca6125ac565b60ce546113d79083615a17565b6113e19190615a36565b9392505050565b6113f0614518565b6001600160a01b03821661140357600080fd5b60e68054911515600160a01b026001600160a81b03199092166001600160a01b0390931692909217179055565b60dd546001600160a01b031633148061145357506065546001600160a01b031633145b61149b5760405162461bcd60e51b815260206004820152601960248201527831b0b63632b9103737ba1030b236b4b71037b91037bbb732b960391b6044820152606401610ff8565b80516114e95760405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f742075706461746520696e76616c69642076616c756573000000006044820152606401610ff8565b6114f560d96000615361565b60005b81518110156112da5760d9828281518110611515576115156159d0565b602090810291909101810151825460018101845560009384529190922001558061153e816159fc565b9150506114f8565b61154e614518565b611556614572565b565b60008360ca54421015801561156f575060cb544211155b61158b5760405162461bcd60e51b8152600401610ff890615a58565b600081116115ab5760405162461bcd60e51b8152600401610ff890615a8f565b3360e654600160a01b900460ff16156116585760e65460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b15801561160357600080fd5b505afa158015611617573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163b9190615abc565b156116585760405162461bcd60e51b8152600401610ff890615ad9565b6116606145c4565b61166861460a565b600061167387612702565b9050600061167f6125ac565b60ce5461168c9084615a17565b6116969190615a36565b9050803410156116d75760405162461bcd60e51b815260206004820152600c60248201526b13195cdcc81c185e5b595b9d60a21b6044820152606401610ff8565b60006116e38234615b0e565b90508860c960008282546116f79190615b25565b909155505060d1541561171c578860d160008282546117169190615b25565b90915550505b600060d15460c954116117315760d154611735565b60c9545b905060d560000160d0548154811061174f5761174f6159d0565b9060005260206000200154811180611789575060d560020160d0548154811061177a5761177a6159d0565b90600052602060002001544210155b156118b15760d560020160d054815481106117a6576117a66159d0565b906000526020600020015442106117e9578960d560000160d054815481106117d0576117d06159d0565b90600052602060002001546117e59190615b25565b60d1555b60dd54600160a01b900460ff161561180357611803614664565b600060d5810160d0548154811061181c5761181c6159d0565b9060005260206000200154821161186b578a8260d560000160d05481548110611847576118476159d0565b906000526020600020015461185c9190615b0e565b6118669190615b0e565b61186e565b60005b60d98054600181810183556000928352600080516020615e2b83398151915290910183905560d0805493945090929091906118aa908490615b25565b9091555050505b88156119c65760dd54600160b01b900460ff16156118f85733600090815260e3602052604090205460ff166118f85760405162461bcd60e51b8152600401610ff890615b3d565b60e5546001600160a01b03166391c619663360ce54611917908e615a17565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561195d57600080fd5b505af1158015611971573d6000803e3d6000fd5b505050508960d460008282546119879190615b25565b90915550506040805184815260208101869052428183015290516000918c913391600080516020615deb833981519152919081900360600190a4611a2d565b60ce546119d3908b615a17565b33600090815260e06020526040812080549091906119f2908490615b25565b90915550506040805184815260208101869052428183015290516000918c913391600080516020615e0b833981519152919081900360600190a45b8360d26000828254611a3f9190615b25565b90915550611a4f905083896146d4565b8115611a5f57611a5f33836148a1565b6001965050505050611a7060018055565b50509392505050565b6000611a836145c4565b60cd546001600160a01b0316611ad25760405162461bcd60e51b815260206004820152601460248201527314d85b19481d1bdad95b881b9bdd08185919195960621b6044820152606401610ff8565b33600090815260e2602052604090205460ff1615611b325760405162461bcd60e51b815260206004820152601b60248201527f54686973204164647265737320697320426c61636b6c697374656400000000006044820152606401610ff8565b60dd54600160a81b900460ff1615611ba35733600090815260e3602052604090205460ff16611ba35760405162461bcd60e51b815260206004820152601e60248201527f55736572206e6f742077686974656c697374656420666f7220636c61696d00006044820152606401610ff8565b60cc54421015611bf55760405162461bcd60e51b815260206004820152601960248201527f436c61696d20686173206e6f74207374617274656420796574000000000000006044820152606401610ff8565b33600090815260e1602052604090205460ff1615611c475760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b6044820152606401610ff8565b33600090815260e160209081526040808320805460ff1916600117905560e090915290205480611cac5760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b6044820152606401610ff8565b33600081815260e06020908152604080832083905560cd54815163a9059cbb60e01b8152600481019590955260248501869052905192936001600160a01b039091169263a9059cbb9260448084019391929182900301818787803b158015611d1357600080fd5b505af1158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4b9190615abc565b905080611d925760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610ff8565b6040805183815242602082015233917f9923b4306c6c030f2bdfbf156517d5983b87e15b96176da122cd4f2effa4ba7b910160405180910390a260019250505090565b611ddd614518565b60005b81811015610f9b57600060e36000858585818110611e0057611e006159d0565b9050602002016020810190611e15919061545f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611e47816159fc565b915050611de0565b611e57614518565b8051825114611e9c5760405162461bcd60e51b81526020600482015260116024820152704d69736d6174636865642061727261797360781b6044820152606401610ff8565b611ea860db6000615361565b611eb460da6000615361565b6000805b8351811015611ff2576000838281518110611ed557611ed56159d0565b602002602001015111611f345760405162461bcd60e51b815260206004820152602160248201527f50657263656e74616765206d7573742062652067726561746572207468616e206044820152600360fc1b6064820152608401610ff8565b828181518110611f4657611f466159d0565b602002602001015182611f599190615b25565b915060db848281518110611f6f57611f6f6159d0565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055825160da90849083908110611fc157611fc16159d0565b6020908102919091018101518254600181018455600093845291909220015580611fea816159fc565b915050611eb8565b5080620186a014610f9b5760405162461bcd60e51b815260206004820152601f60248201527f546f74616c2070657263656e74616765206d75737420657175616c20313030006044820152606401610ff8565b61204d614518565b60ec805460ff1916911515919091179055565b600061206b82612702565b905061207c64e8d4a5100082615a36565b92915050565b60dd546001600160a01b03163314806120a557506065546001600160a01b031633145b6120ed5760405162461bcd60e51b815260206004820152601960248201527831b0b63632b9103737ba1030b236b4b71037b91037bbb732b960391b6044820152606401610ff8565b60d15460d880546001810182556000919091527f5320ad99a619a90804cd2efe3a5cf0ac1ac5c41ad9ff2c61cf699efdad771096015560dd54600160a01b900460ff161561213d5761213d614664565b60d560000160d05481548110612155576121556159d0565b906000526020600020015460d15410156122305760d0546121be5760c95460d99060d560000160d0548154811061218e5761218e6159d0565b90600052602060002001546121a39190615b0e565b81546001810183556000928352602090922090910155612208565b60d15460d99060d560000160d054815481106121dc576121dc6159d0565b90600052602060002001546121f19190615b0e565b815460018101835560009283526020909220909101555b60d560000160d05481548110612220576122206159d0565b60009182526020909120015460d1555b60d08054906000612240836159fc565b9190505550565b61224f614518565b60dd80546001600160a01b0319166001600160a01b0392909216919091179055565b612279614518565b6115566000614977565b60db818154811061229357600080fd5b6000918252602090912001546001600160a01b0316905081565b6122b5614518565b6115566149c9565b6122c5614518565b60005b81811015610f9b57600060e260008585858181106122e8576122e86159d0565b90506020020160208101906122fd919061545f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061232f816159fc565b9150506122c8565b6000612341614518565b6001600160a01b03831661238c5760405162461bcd60e51b81526020600482015260126024820152715a65726f20746f6b656e206164647265737360701b6044820152606401610ff8565b60cc54156123d05760405162461bcd60e51b815260206004820152601160248201527010db185a5b48185b1c9958591e481cd95d607a1b6044820152606401610ff8565b60cc85905560cd80546001600160a01b038581166001600160a01b0319928316811790935560dd805460ff60a81b1916600160a81b17905560e5805491861691909216811790915560405163095ea7b360e01b81526004810191909152600019602482015263095ea7b390604401602060405180830381600087803b15801561245857600080fd5b505af115801561246c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124909190615abc565b506040516323b872dd60e01b81526000906001600160a01b038516906323b872dd906124c490339030908a90600401615b74565b602060405180830381600087803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125169190615abc565b90508061255d5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610ff8565b604080518681524260208201526001600160a01b038616917fdc9670dbabdd488b372eb16ebe49a39b3124a12cdffdcefbc89834a408bf8ff8910160405180910390a250600195945050505050565b60008060df60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156125fd57600080fd5b505afa158015612611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126359190615bb2565b505050915050806402540be40061207c9190615c02565b612654614518565b60d09190915560d155565b612667614518565b60ea55565b612674614518565b8060005b818110156126e757600160eb6000868685818110612698576126986159d0565b90506020020160208101906126ad919061545f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806126df816159fc565b915050612678565b50505050565b6126f5614518565b6112da60d582600361537f565b600080600060d1546000146127195760d15461271d565b60c9545b905060cf548411156127715760405162461bcd60e51b815260206004820181905260248201527f416d6f756e742065786365656473206d617820746f6b656e7320746f206275796044820152606401610ff8565b60d560000160d05481548110612789576127896159d0565b906000526020600020015481856127a09190615b25565b11806127ce575060d560020160d054815481106127bf576127bf6159d0565b90600052602060002001544210155b15612a005760d5546127e290600190615b0e565b60d054106128215760405162461bcd60e51b815260206004820152600c60248201526b57726f6e6720706172616d7360a01b6044820152606401610ff8565b60d560020160d05481548110612839576128396159d0565b9060005260206000200154421061294c5760d05460d59061285b906001615b25565b8154811061286b5761286b6159d0565b90600052602060002001548460d560006003811061288b5761288b6159d0565b0160d0548154811061289f5761289f6159d0565b90600052602060002001546128b49190615b25565b111561290e5760405162461bcd60e51b815260206004820152602360248201527f43616e74205075726368617365204d6f726520696e20696e646976696475616c604482015262040e8f60eb1b6064820152608401610ff8565b60d05460d69061291f906001615b25565b8154811061292f5761292f6159d0565b9060005260206000200154846129459190615a17565b9150612a31565b60008160d5820160d05481548110612966576129666159d0565b906000526020600020015461297b9190615b0e565b60d05490915060d69061298f906001615b25565b8154811061299f5761299f6159d0565b906000526020600020015481866129b69190615b0e565b6129c09190615a17565b60d560010160d054815481106129d8576129d86159d0565b9060005260206000200154826129ee9190615a17565b6129f89190615b25565b925050612a31565b60d560010160d05481548110612a1857612a186159d0565b906000526020600020015484612a2e9190615a17565b91505b5092915050565b612a40614518565b6001600160a01b038116612abc5760405162461bcd60e51b815260206004820152603760248201527f7374616b696e67206d616e616765722063616e6e6f7420626520696e6174696160448201527f6c697a65642077697468207a65726f20616464726573730000000000000000006064820152608401610ff8565b60e580546001600160a01b0319166001600160a01b0383811691821790925560cd5460405163095ea7b360e01b8152600481019290925260001960248301529091169063095ea7b390604401602060405180830381600087803b158015612b2257600080fd5b505af1158015612b36573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da9190615abc565b612b62614518565b60dd8054911515600160b01b0260ff60b01b19909216919091179055565b606060d58260038110612b9557612b956159d0565b01805480602002602001604051908101604052809291908181526020018280548015612be057602002820191906000526020600020905b815481526020019060010190808311612bcc575b50505050509050919050565b612bf4614518565b60005b81811015610f9b57600160e26000858585818110612c1757612c176159d0565b9050602002016020810190612c2c919061545f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580612c5e816159fc565b915050612bf7565b60006001600160a01b0382161580612c9657506001600160a01b038216600090815260eb602052604090205460ff165b80612ca957506001600160a01b03821633145b15612cb657506000919050565b60ec5460ff16612cc857506001919050565b60e55460405163cddb3e7b60e01b81526001600160a01b038481166004830152600092169063cddb3e7b9060240160a06040518083038186803b158015612d0e57600080fd5b505afa158015612d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d469190615c87565b516001600160a01b038416600090815260e060205260409020549091501515806113e15750151592915050565b60d98181548110612d8357600080fd5b600091825260209091200154905081565b606060d9805480602002602001604051908101604052809291908181526020018280548015612de257602002820191906000526020600020905b815481526020019060010190808311612dce575b5050505050905090565b612df4614518565b6001600160a01b038116612e435760405162461bcd60e51b8152602060048201526016602482015275616464726573732063616e6e6f74206265207a65726f60501b6044820152606401610ff8565b60dc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000612e6f6145c4565b60cd546001600160a01b0316612ebe5760405162461bcd60e51b815260206004820152601460248201527314d85b19481d1bdad95b881b9bdd08185919195960621b6044820152606401610ff8565b33600090815260e2602052604090205460ff1615612f1e5760405162461bcd60e51b815260206004820152601b60248201527f54686973204164647265737320697320426c61636b6c697374656400000000006044820152606401610ff8565b60dd54600160b01b900460ff1615612f5f5733600090815260e3602052604090205460ff16612f5f5760405162461bcd60e51b8152600401610ff890615b3d565b33600090815260e0602052604090205480612faf5760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f207374616b6560801b6044820152606401610ff8565b60e5546001600160a01b03166391c61966336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561300957600080fd5b505af115801561301d573d6000803e3d6000fd5b5050505060e0600061302c3390565b6001600160a01b031681526020810191909152604001600090812055336001600160a01b03167ffa4ec67f9254455933eb145bae864b26f29dd0a7bbb76eb11e4d6b8b9b184c2b824260405161308c929190918252602082015260400190565b60405180910390a2600191505090565b60008360ca5442101580156130b3575060cb544211155b6130cf5760405162461bcd60e51b8152600401610ff890615a58565b600081116130ef5760405162461bcd60e51b8152600401610ff890615a8f565b3360e654600160a01b900460ff161561319c5760e65460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b15801561314757600080fd5b505afa15801561315b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061317f9190615abc565b1561319c5760405162461bcd60e51b8152600401610ff890615ad9565b6131a46145c4565b60006131af87612702565b90508660c960008282546131c39190615b25565b90915550600090506131da64e8d4a5100083615a36565b905060d1546000146131fe578760d160008282546131f89190615b25565b90915550505b600060d15460c954116132135760d154613217565b60c9545b905060d560000160d05481548110613231576132316159d0565b906000526020600020015481118061326b575060d560020160d0548154811061325c5761325c6159d0565b90600052602060002001544210155b156133935760d560020160d05481548110613288576132886159d0565b906000526020600020015442106132cb578860d560000160d054815481106132b2576132b26159d0565b90600052602060002001546132c79190615b25565b60d1555b60dd54600160a01b900460ff16156132e5576132e5614664565b600060d5810160d054815481106132fe576132fe6159d0565b9060005260206000200154821161334d57898260d560000160d05481548110613329576133296159d0565b906000526020600020015461333e9190615b0e565b6133489190615b0e565b613350565b60005b60d98054600181810183556000928352600080516020615e2b83398151915290910183905560d08054939450909290919061338c908490615b25565b9091555050505b87156134c45760dd54600160b01b900460ff16156133da5733600090815260e3602052604090205460ff166133da5760405162461bcd60e51b8152600401610ff890615b3d565b60e5546001600160a01b03166391c619663360ce546133f9908d615a17565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561343f57600080fd5b505af1158015613453573d6000803e3d6000fd5b505050508860d460008282546134699190615b25565b909155505060de546001600160a01b031689336001600160a01b0316600080516020615deb8339815191528587426040516134b7939291909283526020830191909152604082015260600190565b60405180910390a4613547565b60ce546134d1908a615a17565b33600090815260e06020526040812080549091906134f0908490615b25565b909155505060de546001600160a01b031689336001600160a01b0316600080516020615e0b83398151915285874260405161353e939291909283526020830191909152604082015260600190565b60405180910390a45b8260d260008282546135599190615b25565b909155505060de546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b1580156135b857600080fd5b505afa1580156135cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135f09190615cf7565b9050808311156136125760405162461bcd60e51b8152600401610ff890615d10565b61361c8389614a06565b5060019998505050505050505050565b613634614518565b8060005b818110156126e757600060eb6000868685818110613658576136586159d0565b905060200201602081019061366d919061545f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061369f816159fc565b915050613638565b60d88181548110612d8357600080fd5b60d582600381106136c757600080fd5b0181815481106136d657600080fd5b90600052602060002001600091509150505481565b6136f3614518565b60005b81811015610f9b57600160e36000858585818110613716576137166159d0565b905060200201602081019061372b919061545f565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061375d816159fc565b9150506136f6565b60008360ca54421015801561377c575060cb544211155b6137985760405162461bcd60e51b8152600401610ff890615a58565b600081116137b85760405162461bcd60e51b8152600401610ff890615a8f565b3360e654600160a01b900460ff16156138655760e65460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b15801561381057600080fd5b505afa158015613824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138489190615abc565b156138655760405162461bcd60e51b8152600401610ff890615ad9565b61386d6145c4565b600061387887612702565b90508660c9600082825461388c9190615b25565b90915550600090506138a364e8d4a5100083615a36565b905060d1546000146138c7578760d160008282546138c19190615b25565b90915550505b600060d15460c954116138dc5760d1546138e0565b60c9545b905060d560000160d054815481106138fa576138fa6159d0565b9060005260206000200154811180613934575060d560020160d05481548110613925576139256159d0565b90600052602060002001544210155b15613a5c5760d560020160d05481548110613951576139516159d0565b90600052602060002001544210613994578860d560000160d0548154811061397b5761397b6159d0565b90600052602060002001546139909190615b25565b60d1555b60dd54600160a01b900460ff16156139ae576139ae614664565b600060d5810160d054815481106139c7576139c76159d0565b90600052602060002001548211613a1657898260d560000160d054815481106139f2576139f26159d0565b9060005260206000200154613a079190615b0e565b613a119190615b0e565b613a19565b60005b60d98054600181810183556000928352600080516020615e2b83398151915290910183905560d080549394509092909190613a55908490615b25565b9091555050505b8715613b8d5760dd54600160b01b900460ff1615613aa35733600090815260e3602052604090205460ff16613aa35760405162461bcd60e51b8152600401610ff890615b3d565b60e5546001600160a01b03166391c619663360ce54613ac2908d615a17565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015613b0857600080fd5b505af1158015613b1c573d6000803e3d6000fd5b505050508860d46000828254613b329190615b25565b909155505060e7546001600160a01b031689336001600160a01b0316600080516020615deb833981519152858742604051613b80939291909283526020830191909152604082015260600190565b60405180910390a4613c10565b60ce54613b9a908a615a17565b33600090815260e0602052604081208054909190613bb9908490615b25565b909155505060e7546001600160a01b031689336001600160a01b0316600080516020615e0b833981519152858742604051613c07939291909283526020830191909152604082015260600190565b60405180910390a45b8260d26000828254613c229190615b25565b909155505060e7546000906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260440160206040518083038186803b158015613c8157600080fd5b505afa158015613c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cb99190615cf7565b905080831115613cdb5760405162461bcd60e51b8152600401610ff890615d10565b61361c8389614f62565b613ced614518565b60e880546001600160a01b0319166001600160a01b03939093169290921790915560e955565b613d1b614518565b6001600160a01b038116613d805760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ff8565b613d8981614977565b50565b613d94614518565b60005b81811015610f9b57600060e46000858585818110613db757613db76159d0565b9050602002016020810190613dcc919061545f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580613dfe816159fc565b915050613d97565b60da8181548110612d8357600080fd5b613e1e614518565b828114613e5f5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b6044820152606401610ff8565b60005b83811015613ef557828282818110613e7c57613e7c6159d0565b9050602002013560e06000878785818110613e9957613e996159d0565b9050602002016020810190613eae919061545f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254613edd9190615b25565b90915550819050613eed816159fc565b915050613e62565b5050505050565b60008360ca544210158015613f13575060cb544211155b613f2f5760405162461bcd60e51b8152600401610ff890615a58565b60008111613f4f5760405162461bcd60e51b8152600401610ff890615a8f565b60e6548690600160a01b900460ff1615613ffd5760e65460405163df592f7d60e01b81526001600160a01b0383811660048301529091169063df592f7d9060240160206040518083038186803b158015613fa857600080fd5b505afa158015613fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fe09190615abc565b15613ffd5760405162461bcd60e51b8152600401610ff890615ad9565b6140056145c4565b61400d61460a565b33600090815260e4602052604090205460ff1661406c5760405162461bcd60e51b815260206004820181905260248201527f55736572206e6f742077686974656c697374656420666f7220746869732074786044820152606401610ff8565b866001600160a01b0316846001600160a01b031614156140ce5760405162461bcd60e51b815260206004820152601c60248201527f52656665727265722063616e6e6f742062652073616d652075736572000000006044820152606401610ff8565b60006140d987612702565b905060006140e56125ac565b60ce546140f29084615a17565b6140fc9190615a36565b90508034101561413d5760405162461bcd60e51b815260206004820152600c60248201526b13195cdcc81c185e5b595b9d60a21b6044820152606401610ff8565b60006141498234615b0e565b90508860c9600082825461415d9190615b25565b909155505060d15415614182578860d1600082825461417c9190615b25565b90915550505b600060d15460c954116141975760d15461419b565b60c9545b905060d560000160d054815481106141b5576141b56159d0565b90600052602060002001548111806141ef575060d560020160d054815481106141e0576141e06159d0565b90600052602060002001544210155b156143175760d560020160d0548154811061420c5761420c6159d0565b9060005260206000200154421061424f578960d560000160d05481548110614236576142366159d0565b906000526020600020015461424b9190615b25565b60d1555b60dd54600160a01b900460ff161561426957614269614664565b600060d5810160d05481548110614282576142826159d0565b906000526020600020015482116142d1578a8260d560000160d054815481106142ad576142ad6159d0565b90600052602060002001546142c29190615b0e565b6142cc9190615b0e565b6142d4565b60005b60d98054600181810183556000928352600080516020615e2b83398151915290910183905560d080549394509092909190614310908490615b25565b9091555050505b88156144435760dd54600160b01b900460ff1615614367576001600160a01b038b16600090815260e3602052604090205460ff166143675760405162461bcd60e51b8152600401610ff890615b3d565b60e55460ce546001600160a01b03909116906391c61966908d9061438b908e615a17565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156143d157600080fd5b505af11580156143e5573d6000803e3d6000fd5b505050508960d460008282546143fb9190615b25565b90915550506040805184815260208101869052428183015290516000918c916001600160a01b038f1691600080516020615deb833981519152919081900360600190a46144bc565b60ce54614450908b615a17565b6001600160a01b038c16600090815260e0602052604081208054909190614478908490615b25565b90915550506040805184815260208101869052428183015290516000918c916001600160a01b038f1691600080516020615e0b833981519152919081900360600190a45b8360d260008282546144ce9190615b25565b909155506144de905083896146d4565b81156144ee576144ee8b836148a1565b60019650505050506144ff60018055565b5050949350505050565b6001600160a01b03163b151590565b6065546001600160a01b031633146115565760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ff8565b61457a615318565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff16156115565760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610ff8565b6002600154141561465d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ff8565b6002600155565b60005b60d05460d7546146779190615b0e565b811015613d895760d35461468b9082615a17565b6146959042615b25565b60d05460d7906146a6908490615b25565b815481106146b6576146b66159d0565b600091825260209091200155806146cc816159fc565b915050614667565b6000806146e083612c66565b1561470b57606460ea54856146f59190615a17565b6146ff9190615a36565b915061470b83836148a1565b60e8546001600160a01b03161561474f57606460e9548561472c9190615a17565b6147369190615a36565b60e85490915061474f906001600160a01b0316826148a1565b6147598282615b25565b6147639085615b0e565b60db549094506147b05760dc546001600160a01b03166147955760405162461bcd60e51b8152600401610ff890615d51565b60dc546147ab906001600160a01b0316856148a1565b6126e7565b6000805b60db5481101561484a576000620186a060da83815481106147d7576147d76159d0565b9060005260206000200154886147ed9190615a17565b6147f79190615a36565b905061482a60db838154811061480f5761480f6159d0565b6000918252602090912001546001600160a01b0316826148a1565b6148348184615b25565b9250508080614842906159fc565b9150506147b4565b5060006148578287615b0e565b1115613ef55760db8054613ef5919061487290600190615b0e565b81548110614882576148826159d0565b6000918252602090912001546001600160a01b03166148a18388615b0e565b804710156148df5760405162461bcd60e51b815260206004820152600b60248201526a4c6f772062616c616e636560a81b6044820152606401610ff8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461492c576040519150601f19603f3d011682016040523d82523d6000602084013e614931565b606091505b5050905080610f9b5760405162461bcd60e51b81526020600482015260126024820152711155120814185e5b595b9d0819985a5b195960721b6044820152606401610ff8565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6149d16145c4565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586145a73390565b60e85460009081906001600160a01b031615614b0257606460e95485614a2c9190615a17565b614a369190615a36565b60de549091506000906001600160a01b03163360e854604051614a6892916001600160a01b0316908690602401615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251614a9d9190615d81565b6000604051808303816000865af19150503d8060008114614ada576040519150601f19603f3d011682016040523d82523d6000602084013e614adf565b606091505b5050905080614b005760405162461bcd60e51b8152600401610ff890615dbc565b505b614b0b83612c66565b15614beb57606460ea5485614b209190615a17565b614b2a9190615a36565b60de549092506000906001600160a01b0316338585604051602401614b5193929190615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251614b869190615d81565b6000604051808303816000865af19150503d8060008114614bc3576040519150601f19603f3d011682016040523d82523d6000602084013e614bc8565b606091505b5050905080614be95760405162461bcd60e51b8152600401610ff890615dbc565b505b614bf58282615b25565b614bff9085615b0e565b60db54909450614cff5760dc546001600160a01b0316614c315760405162461bcd60e51b8152600401610ff890615d51565b60de546000906001600160a01b0316335b60dc54604051614c6192916001600160a01b0316908990602401615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251614c969190615d81565b6000604051808303816000865af19150503d8060008114614cd3576040519150601f19603f3d011682016040523d82523d6000602084013e614cd8565b606091505b5050905080614cf95760405162461bcd60e51b8152600401610ff890615dbc565b506126e7565b6000805b60db54811015614e4d576000620186a060da8381548110614d2657614d266159d0565b906000526020600020015488614d3c9190615a17565b614d469190615a36565b60de549091506000906001600160a01b03163360db8581548110614d6c57614d6c6159d0565b600091825260209091200154604051614d9492916001600160a01b0316908690602401615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251614dc99190615d81565b6000604051808303816000865af19150503d8060008114614e06576040519150601f19603f3d011682016040523d82523d6000602084013e614e0b565b606091505b5050905080614e2c5760405162461bcd60e51b8152600401610ff890615dbc565b614e368285615b25565b935050508080614e45906159fc565b915050614d03565b506000614e5a8287615b0e565b1115613ef55760de546000906001600160a01b0316335b60db8054614e8190600190615b0e565b81548110614e9157614e916159d0565b6000918252602090912001546001600160a01b0316614eb0858a615b0e565b604051602401614ec293929190615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251614ef79190615d81565b6000604051808303816000865af19150503d8060008114614f34576040519150601f19603f3d011682016040523d82523d6000602084013e614f39565b606091505b5050905080614f5a5760405162461bcd60e51b8152600401610ff890615dbc565b505050505050565b60e85460009081906001600160a01b03161561505e57606460e95485614f889190615a17565b614f929190615a36565b60e7549091506000906001600160a01b03163360e854604051614fc492916001600160a01b0316908690602401615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b17905251614ff99190615d81565b6000604051808303816000865af19150503d8060008114615036576040519150601f19603f3d011682016040523d82523d6000602084013e61503b565b606091505b505090508061505c5760405162461bcd60e51b8152600401610ff890615dbc565b505b61506783612c66565b1561514757606460ea548561507c9190615a17565b6150869190615a36565b60e7549092506000906001600160a01b03163385856040516024016150ad93929190615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b179052516150e29190615d81565b6000604051808303816000865af19150503d806000811461511f576040519150601f19603f3d011682016040523d82523d6000602084013e615124565b606091505b50509050806151455760405162461bcd60e51b8152600401610ff890615dbc565b505b6151518282615b25565b61515b9085615b0e565b60db549094506151a25760dc546001600160a01b031661518d5760405162461bcd60e51b8152600401610ff890615d51565b60e7546000906001600160a01b031633614c42565b6000805b60db548110156152f0576000620186a060da83815481106151c9576151c96159d0565b9060005260206000200154886151df9190615a17565b6151e99190615a36565b60e7549091506000906001600160a01b03163360db858154811061520f5761520f6159d0565b60009182526020909120015460405161523792916001600160a01b0316908690602401615b74565b60408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b1790525161526c9190615d81565b6000604051808303816000865af19150503d80600081146152a9576040519150601f19603f3d011682016040523d82523d6000602084013e6152ae565b606091505b50509050806152cf5760405162461bcd60e51b8152600401610ff890615dbc565b6152d98285615b25565b9350505080806152e8906159fc565b9150506151a6565b5060006152fd8287615b0e565b1115613ef55760e7546000906001600160a01b031633614e71565b60975460ff166115565760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610ff8565b5080546000825590600052602060002090810190613d8991906153cf565b82600381019282156153bf579160200282015b828111156153bf57825180516153af9184916020909101906153e4565b5091602001919060010190615392565b506153cb92915061542b565b5090565b5b808211156153cb57600081556001016153d0565b82805482825590600052602060002090810192821561541f579160200282015b8281111561541f578251825591602001919060010190615404565b506153cb9291506153cf565b808211156153cb57600061543f8282615361565b5060010161542b565b80356001600160a01b03811681146110d757600080fd5b60006020828403121561547157600080fd5b6113e182615448565b60008083601f84011261548c57600080fd5b50813567ffffffffffffffff8111156154a457600080fd5b6020830191508360208260051b85010111156154bf57600080fd5b9250929050565b600080602083850312156154d957600080fd5b823567ffffffffffffffff8111156154f057600080fd5b6154fc8582860161547a565b90969095509350505050565b60006020828403121561551a57600080fd5b5035919050565b8015158114613d8957600080fd5b60006020828403121561554157600080fd5b81356113e181615521565b6000806040838503121561555f57600080fd5b50508035926020909101359150565b6000806040838503121561558157600080fd5b61558a83615448565b9150602083013561559a81615521565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156155de576155de6155a5565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561560d5761560d6155a5565b604052919050565b600067ffffffffffffffff82111561562f5761562f6155a5565b5060051b60200190565b600082601f83011261564a57600080fd5b8135602061565f61565a83615615565b6155e4565b82815260059290921b8401810191818101908684111561567e57600080fd5b8286015b848110156156995780358352918301918301615682565b509695505050505050565b6000602082840312156156b657600080fd5b813567ffffffffffffffff8111156156cd57600080fd5b6156d984828501615639565b949350505050565b6000806000606084860312156156f657600080fd5b83359250602084013561570881615521565b915061571660408501615448565b90509250925092565b6000806040838503121561573257600080fd5b823567ffffffffffffffff8082111561574a57600080fd5b818501915085601f83011261575e57600080fd5b8135602061576e61565a83615615565b82815260059290921b8401810191818101908984111561578d57600080fd5b948201945b838610156157b2576157a386615448565b82529482019490820190615792565b965050860135925050808211156157c857600080fd5b506157d585828601615639565b9150509250929050565b600080600080608085870312156157f557600080fd5b843593506020850135925061580c60408601615448565b915061581a60608601615448565b905092959194509250565b6000602080838503121561583857600080fd5b823567ffffffffffffffff8082111561585057600080fd5b818501915085601f83011261586457600080fd5b61586c6155bb565b80606084018881111561587e57600080fd5b845b818110156158b2578035858111156158985760008081fd5b6158a48b828901615639565b855250928601928601615880565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156158f8578351835292840192918401916001016158dc565b50909695505050505050565b6000806040838503121561591757600080fd5b61592083615448565b946020939093013593505050565b6000806000806040858703121561594457600080fd5b843567ffffffffffffffff8082111561595c57600080fd5b6159688883890161547a565b9096509450602087013591508082111561598157600080fd5b5061598e8782880161547a565b95989497509550505050565b600080600080608085870312156159b057600080fd5b6159b985615448565b935060208501359250604085013561580c81615521565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615a1057615a106159e6565b5060010190565b6000816000190483118215151615615a3157615a316159e6565b500290565b600082615a5357634e487b7160e01b600052601260045260246000fd5b500490565b60208082526017908201527f496e76616c69642074696d6520666f7220627579696e67000000000000000000604082015260600190565b602080825260139082015272125b9d985b1a59081cd85b1948185b5bdd5b9d606a1b604082015260600190565b600060208284031215615ace57600080fd5b81516113e181615521565b6020808252818101527f416464726573732070726573656e7420696e2073616e6374696f6e206c697374604082015260600190565b600082821015615b2057615b206159e6565b500390565b60008219821115615b3857615b386159e6565b500190565b6020808252601e908201527f55736572206e6f742077686974656c697374656420666f72207374616b650000604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b805169ffffffffffffffffffff811681146110d757600080fd5b600080600080600060a08688031215615bca57600080fd5b615bd386615b98565b9450602086015193506040860151925060608601519150615bf660808701615b98565b90509295509295909350565b60006001600160ff1b0381841382841380821686840486111615615c2857615c286159e6565b600160ff1b6000871282811687830589121615615c4757615c476159e6565b60008712925087820587128484161615615c6357615c636159e6565b87850587128184161615615c7957615c796159e6565b505050929093029392505050565b600060a08284031215615c9957600080fd5b60405160a0810181811067ffffffffffffffff82111715615cbc57615cbc6155a5565b806040525082518152602083015160208201526040830151604082015260608301516060820152608083015160808201528091505092915050565b600060208284031215615d0957600080fd5b5051919050565b60208082526021908201527f4d616b65207375726520746f2061646420656e6f75676820616c6c6f77616e636040820152606560f81b606082015260800190565b60208082526016908201527514185e5b595b9d081dd85b1b195d081b9bdd081cd95d60521b604082015260600190565b6000825160005b81811015615da25760208186018101518583015201615d88565b81811115615db1576000828501525b509190910192915050565b602080825260149082015273151bdad95b881c185e5b595b9d0819985a5b195960621b60408201526060019056fe6f225532a9c33b023b8e48247ad8df9d98f132ae17c769b97ff22d2b278fa73a4d8aead3491b7eba4b5c7a65fc17e493b9e63f9e433522fc5f6a85a168fc9d36cc6782fd46dd71c5f512301ab049782450b4eaf79fdac5443d93d274d3916786a264697066735822122000c97578c8bf3ad3350e54c71ac6dc154cda150c00d27d9f310308ebecb33f7d64736f6c63430008090033