0 txs
5 calls
constructor
constructor()
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
allBeneficiaries
viewfunction allBeneficiaries(uint256) view returns (address)
autoTransferAddress
viewfunction autoTransferAddress() view returns (address)
autoTransferThreshold
viewfunction autoTransferThreshold() view returns (uint256)
calculateCost
viewfunction calculateCost(uint256 _amount) view returns (uint256)
calculateEthCost
viewfunction calculateEthCost(uint256 tokenAmount, uint256 ethPriceInUSD) view returns (uint256)
calculateTokenAmountForEth
viewfunction calculateTokenAmountForEth(uint256 ethSent, uint256 ethPriceInUSD) view returns (uint256)
calculateUsdtCost
viewfunction calculateUsdtCost(uint256 tokenAmount) view returns (uint256)
claimStarted
viewfunction claimStarted() view returns (bool)
currentRound
viewfunction currentRound() view returns (uint256)
currentRoundStartTime
viewfunction currentRoundStartTime() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
ethPriceFeed
viewfunction ethPriceFeed() view returns (address)
getClaimStartTime
viewfunction getClaimStartTime() view returns (uint256)
getClaimStat
viewfunction getClaimStat() view returns (bool)
getCurrentPrice
viewfunction getCurrentPrice() view returns (uint256)
getLatestEthPrice
viewfunction getLatestEthPrice() view returns (int256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isWhitelisted
viewfunction isWhitelisted(address) view returns (bool)
minPurchase
viewfunction minPurchase() view returns (uint256)
minPurchaseForReferral
viewfunction minPurchaseForReferral() view returns (uint256)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
presaleEndTime
viewfunction presaleEndTime() view returns (uint256)
presaleRules
viewfunction presaleRules() view returns (uint256 initialPrice, uint256 priceIncreasePercentage, uint256 tokensPerRound, uint256 roundDuration)
presaleStartTime
viewfunction presaleStartTime() view returns (uint256)
presaleToken
viewfunction presaleToken() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
referralSystem
viewfunction referralSystem() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokensSoldInCurrentRound
viewfunction tokensSoldInCurrentRound() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
UPGRADER_ROLE
viewfunction UPGRADER_ROLE() view returns (bytes32)
usdtAutoTransferThreshold
viewfunction usdtAutoTransferThreshold() view returns (uint256)
usdToken
viewfunction usdToken() view returns (address)
whitelistOnly
viewfunction whitelistOnly() view returns (bool)
addToWhitelist
nonpayablefunction addToWhitelist(address[] _users)
buyWithEth
payablefunction buyWithEth(uint256 tokenAmount) payable
buyWithUsdt
nonpayablefunction buyWithUsdt(uint256 tokenAmount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _usdToken, address _presaleToken, address _ethPriceFeed, address _autoTransferAddress, address _referralManager)
pause
nonpayablefunction pause()
removeFromWhitelist
nonpayablefunction removeFromWhitelist(address[] _users)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAutoAddress
nonpayablefunction setAutoAddress(address _newaddress)
setReferralSystem
nonpayablefunction setReferralSystem(address _referralSystem)
setWhitelistStatus
nonpayablefunction setWhitelistStatus(bool _whitelistOnly)
startClaim
nonpayablefunction startClaim()
transferContractBalance
nonpayablefunction transferContractBalance()
unlock
nonpayablefunction unlock() returns (bool)
unpause
nonpayablefunction unpause()
updatePresaleRules
nonpayablefunction updatePresaleRules(tuple _newRules)
updatePresaleTimes
nonpayablefunction updatePresaleTimes(uint256 _startTime, uint256 _endTime)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdrawTokens
nonpayablefunction withdrawTokens(address _token, uint256 _amount, address _to)
events
ClaimStarted
event ClaimStarted(uint256 startTime)
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
PresaleRulesUpdated
event PresaleRulesUpdated(uint256 initialPrice, uint256 priceIncreasePercentage, uint256 tokensPerRound, uint256 roundDuration)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
RoundAdvanced
event RoundAdvanced(uint256 newRound, uint256 newPrice)
TokensPurchased
event TokensPurchased(address indexed buyer, uint256 amount, uint256 cost)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
WhitelistStatusChanged
event WhitelistStatusChanged(address indexed user, bool status)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516131a16100fd600039600081816120ed01528181612116015261227901526131a16000f3fe6080604052600436106103765760003560e01c806385c09ccd116101d1578063c1664b1311610102578063eb1a026c116100a0578063ed622dd31161006f578063ed622dd3146109db578063efd42f48146109fb578063f72c0d8b14610a11578063f897a22b14610a4557600080fd5b8063eb1a026c14610972578063eb91d37e14610991578063ec004cd0146109a6578063ecbfc077146109c657600080fd5b8063d6cd7b5d116100dc578063d6cd7b5d146108fa578063d707dfd11461091a578063e63ab1e91461093a578063e86fa6651461095c57600080fd5b8063c1664b1314610899578063c829ecea146108ba578063d547741f146108da57600080fd5b8063a04e876c1161016f578063a82524b211610149578063a82524b214610805578063ad3cb1cc1461081b578063af5100bc14610859578063af7665ce1461087957600080fd5b8063a04e876c146107bb578063a217fddf146107db578063a69df4b5146107f057600080fd5b806396d65f0e116101ab57806396d65f0e146107505780639a01126c146107655780639bc5c509146107855780639dfc8cf7146107a557600080fd5b806385c09ccd146106fa5780638a19c8bc1461071a57806391d148541461073057600080fd5b80634a999118116102ab57806368fbf8801161024957806375b238fc1161022357806375b238fc146106905780637649b957146106b25780637f649783146106c55780638456cb59146106e557600080fd5b806368fbf880146106455780636c3fb63c1461065b57806372e67df31461067b57600080fd5b80634f1ef286116102855780634f1ef286146105d857806352d1902d146105eb578063548db174146106005780635c975abb1461062057600080fd5b80634a999118146105775780634af18f4f146105975780634b4687b5146105b757600080fd5b806330c0b9ec1161031857806336568abe116102f257806336568abe146104fc578063380dd9011461051c5780633af32abf146105325780633f4ba83a1461056257600080fd5b806330c0b9ec146104b157806333b5b62e146104c657806335474c38146104dc57600080fd5b8063248a9ca311610354578063248a9ca314610415578063249b7c191461044357806324ffea1a146104595780632f2ff15d1461049157600080fd5b806301ffc9a71461037b57806312c12631146103b05780631459457a146103f3575b600080fd5b34801561038757600080fd5b5061039b610396366004612abd565b610a65565b60405190151581526020015b60405180910390f35b3480156103bc57600080fd5b50600a54600b54600c54600d546103d39392919084565b6040805194855260208501939093529183015260608201526080016103a7565b3480156103ff57600080fd5b5061041361040e366004612b03565b610a9c565b005b34801561042157600080fd5b50610435610430366004612b68565b610d25565b6040519081526020016103a7565b34801561044f57600080fd5b5061043560055481565b34801561046557600080fd5b50601254610479906001600160a01b031681565b6040516001600160a01b0390911681526020016103a7565b34801561049d57600080fd5b506104136104ac366004612b81565b610d47565b3480156104bd57600080fd5b50610435610d69565b3480156104d257600080fd5b5061043560025481565b3480156104e857600080fd5b506104136104f7366004612bf4565b610f3e565b34801561050857600080fd5b50610413610517366004612b81565b610fb6565b34801561052857600080fd5b50610435600f5481565b34801561053e57600080fd5b5061039b61054d366004612c5e565b60096020526000908152604090205460ff1681565b34801561056e57600080fd5b50610413610fee565b34801561058357600080fd5b50610413610592366004612c87565b611011565b3480156105a357600080fd5b506104356105b2366004612b68565b61103b565b3480156105c357600080fd5b5060085461039b90600160a81b900460ff1681565b6104136105e6366004612ca4565b61106c565b3480156105f757600080fd5b5061043561108b565b34801561060c57600080fd5b5061041361061b366004612d4f565b6110a8565b34801561062c57600080fd5b5060008051602061310c8339815191525460ff1661039b565b34801561065157600080fd5b5061043560035481565b34801561066757600080fd5b50610413610676366004612c5e565b611187565b34801561068757600080fd5b50600554610435565b34801561069c57600080fd5b5061043560008051602061314c83398151915281565b6104136106c0366004612b68565b61120b565b3480156106d157600080fd5b506104136106e0366004612d4f565b611447565b3480156106f157600080fd5b50610413611526565b34801561070657600080fd5b50610435610715366004612dc6565b611546565b34801561072657600080fd5b50610435600e5481565b34801561073c57600080fd5b5061039b61074b366004612b81565b6115a4565b34801561075c57600080fd5b506104136115dc565b34801561077157600080fd5b50610413610780366004612c5e565b611675565b34801561079157600080fd5b506104136107a0366004612de8565b6116a3565b3480156107b157600080fd5b5061043560075481565b3480156107c757600080fd5b50601354610479906001600160a01b031681565b3480156107e757600080fd5b50610435600081565b3480156107fc57600080fd5b5061039b6119a8565b34801561081157600080fd5b5061043560045481565b34801561082757600080fd5b5061084c604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516103a79190612e48565b34801561086557600080fd5b50610435610874366004612b68565b611a68565b34801561088557600080fd5b50600154610479906001600160a01b031681565b3480156108a557600080fd5b5060085461039b90600160a01b900460ff1681565b3480156108c657600080fd5b506104356108d5366004612dc6565b611ab0565b3480156108e657600080fd5b506104136108f5366004612b81565b611ad7565b34801561090657600080fd5b50600854610479906001600160a01b031681565b34801561092657600080fd5b50610413610935366004612b68565b611af3565b34801561094657600080fd5b506104356000805160206130cc83398151915281565b34801561096857600080fd5b5061043560105481565b34801561097e57600080fd5b50600854600160a01b900460ff1661039b565b34801561099d57600080fd5b50610435611dc4565b3480156109b257600080fd5b506104796109c1366004612b68565b611e2e565b3480156109d257600080fd5b50610413611e58565b3480156109e757600080fd5b506104136109f6366004612dc6565b611efc565b348015610a0757600080fd5b5061043560065481565b348015610a1d57600080fd5b506104357f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610a5157600080fd5b50600054610479906001600160a01b031681565b60006001600160e01b03198216637965db0b60e01b1480610a9657506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610aa6611f13565b805490915060ff600160401b820416159067ffffffffffffffff16600081158015610ace5750825b905060008267ffffffffffffffff166001148015610aeb5750303b155b905081158015610af9575080155b15610b175760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b4157845460ff60401b1916600160401b1785555b610b49611f3c565b610b51611f3c565b610b59611f3c565b610b61611f46565b610b6c600033611f56565b50610b856000805160206130cc83398151915233611f56565b50610bb07f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333611f56565b50610bc960008051602061314c83398151915233611f56565b50600080546001600160a01b03808d166001600160a01b031992831617909255601280548c8416908316179055600180548b8416908316179055655af3107a40006002819055600355670de0b6b3a7640000600655633b9aca0060075560088054928a1692909116919091179055604080516080810182526601c6bf526340008082526101f46020830181905269d3c21bcecceda100000093830184905262093a806060909301839052600a91909155600b55600c91909155600d55426004819055610c98906228de80612e91565b6005556001600e55600454600f556008805460ff60a01b191690556000601055601380546001600160a01b0319166001600160a01b0388161790558315610d1957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b60009081526000805160206130ec833981519152602052604090206001015490565b610d5082610d25565b610d5981611ffb565b610d638383611f56565b50505050565b6000806000806000600160009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612ebe565b94509450509350935060008313610e465760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642070726963653a206e65676174697665206f72207a65726f0060448201526064015b60405180910390fd5b60008211610e8b5760405162461bcd60e51b8152602060048201526012602482015271526f756e64206e6f7420636f6d706c65746560701b6044820152606401610e3d565b8369ffffffffffffffffffff168169ffffffffffffffffffff161015610ee65760405162461bcd60e51b815260206004820152601060248201526f5374616c65207072696365206461746160801b6044820152606401610e3d565b610e10610ef38342612f04565b10610f355760405162461bcd60e51b8152602060048201526012602482015271141c9a58d94819185d18481d1bdbc81bdb1960721b6044820152606401610e3d565b50909392505050565b6000610f4981611ffb565b8151600a819055602080840151600b819055604080860151600c819055606080880151600d819055835196875294860193909352908401528201527f10ee86b96eb23ed10035f4828b1922087a5a6538abb471c707c205fd33959d66906080015b60405180910390a15050565b6001600160a01b0381163314610fdf5760405163334bd91960e11b815260040160405180910390fd5b610fe98282612005565b505050565b6000805160206130cc83398151915261100681611ffb565b61100e612081565b50565b600061101c81611ffb565b5060088054911515600160a81b0260ff60a81b19909216919091179055565b600080611046611dc4565b9050670de0b6b3a764000061105b8285612f17565b6110659190612f2e565b9392505050565b6110746120e2565b61107d82612187565b61108782826121b1565b5050565b600061109561226e565b506000805160206130ac83398151915290565b60006110b381611ffb565b60005b82811015610d63576000600960008686858181106110d6576110d6612f50565b90506020020160208101906110eb9190612c5e565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905583838281811061112557611125612f50565b905060200201602081019061113a9190612c5e565b6001600160a01b03167f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d6000604051611177911515815260200190565b60405180910390a26001016110b6565b600061119281611ffb565b6001600160a01b0382166111e85760405162461bcd60e51b815260206004820181905260248201527f41646472657373206d757374206e6f74206265207a65726f20616464726573736044820152606401610e3d565b50600880546001600160a01b0319166001600160a01b0392909216919091179055565b6112136122b7565b61121b6122e8565b600454421015801561122f57506005544211155b6112735760405162461bcd60e51b815260206004820152601560248201527450726573616c65206973206e6f742061637469766560581b6044820152606401610e3d565b600854600160a81b900460ff16158061129b57503360009081526009602052604090205460ff165b6112d95760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610e3d565b6002548110156113225760405162461bcd60e51b8152602060048201526014602482015273416d6f756e742062656c6f77206d696e696d756d60601b6044820152606401610e3d565b600061133461132f610d69565b612320565b905060006113428383611546565b9050803410156113945760405162461bcd60e51b815260206004820152601960248201527f4554483a20696e73756666696369656e74207061796d656e74000000000000006044820152606401610e3d565b61139c6123ce565b6113a633846125ff565b6113af83612708565b60006113bb8234612f04565b905080156113f257604051339082156108fc029083906000818181858888f193505050501580156113f0573d6000803e3d6000fd5b505b604080518581526020810184905233917f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f33910160405180910390a250505061100e600160008051602061312c83398151915255565b600061145281611ffb565b60005b82811015610d635760016009600086868581811061147557611475612f50565b905060200201602081019061148a9190612c5e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558383828181106114c4576114c4612f50565b90506020020160208101906114d99190612c5e565b6001600160a01b03167f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d6001604051611516911515815260200190565b60405180910390a2600101611455565b6000805160206130cc83398151915261153e81611ffb565b61100e6127be565b600080611551611dc4565b905060006115616012600a61304d565b61156b8387612f17565b6115759190612f2e565b90506000846115866012600a61304d565b6115909084612f17565b61159a9190612f2e565b9695505050505050565b60009182526000805160206130ec833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008051602061314c8339815191526115f481611ffb565b478061163b5760405162461bcd60e51b81526020600482015260166024820152752737903130b630b731b2903a37903a3930b739b332b960511b6044820152606401610e3d565b6008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610fe9573d6000803e3d6000fd5b600061168081611ffb565b50601380546001600160a01b0319166001600160a01b0392909216919091179055565b60008051602061314c8339815191526116bb81611ffb565b6001600160a01b0382166117115760405162461bcd60e51b815260206004820152601f60248201527f43616e6e6f7420776974686472617720746f207a65726f2061646472657373006044820152606401610e3d565b6001600160a01b038416611818576000831561172d578361172f565b475b9050600081116117765760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b6044820152606401610e3d565b6000836001600160a01b03168260405160006040518083038185875af1925050503d80600081146117c3576040519150601f19603f3d011682016040523d82523d6000602084013e6117c8565b606091505b50509050806118115760405162461bcd60e51b8152602060048201526015602482015274115512081dda5d1a191c985dd85b0819985a5b1959605a1b6044820152606401610e3d565b5050610d63565b8360008415611827578461188f565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801561186b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188f9190613059565b9050600081116118d95760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b6044820152606401610e3d565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390526000919084169063a9059cbb906044016020604051808303816000875af115801561192c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119509190613072565b90508061199f5760405162461bcd60e51b815260206004820152601760248201527f546f6b656e207769746864726177616c206661696c65640000000000000000006044820152606401610e3d565b50505050505050565b600854600090600160a01b900460ff16611a045760405162461bcd60e51b815260206004820181905260248201527f436c61696d20616e6420756e6c6f636b206e6f742073746172746564207965746044820152606401610e3d565b60125460405163196cff2960e31b81523360048201526001600160a01b039091169063cb67f94890602401600060405180830381600087803b158015611a4957600080fd5b505af1158015611a5d573d6000803e3d6000fd5b505050506001905090565b600080611a73611dc4565b90506000611a836012600a61304d565b611a8d8386612f17565b611a979190612f2e565b9050611aa864e8d4a5100082612f2e565b949350505050565b600080611abb611dc4565b90506000611ac98585612807565b9050600061159a828461281f565b611ae082610d25565b611ae981611ffb565b610d638383612005565b611afb6122b7565b611b036122e8565b6004544210158015611b1757506005544211155b611b5b5760405162461bcd60e51b815260206004820152601560248201527450726573616c65206973206e6f742061637469766560581b6044820152606401610e3d565b600854600160a81b900460ff161580611b8357503360009081526009602052604090205460ff165b611bc15760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610e3d565b600254811015611c0a5760405162461bcd60e51b8152602060048201526014602482015273416d6f756e742062656c6f77206d696e696d756d60601b6044820152606401610e3d565b6000611c1582611a68565b600054604051636eb1769f60e11b815233600482015230602482015291925082916001600160a01b039091169063dd62ed3e90604401602060405180830381865afa158015611c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8c9190613059565b1015611cda5760405162461bcd60e51b815260206004820152601c60248201527f555344543a20696e73756666696369656e7420616c6c6f77616e6365000000006044820152606401610e3d565b6000546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d559190613072565b50611d5e6123ce565b611d6833836125ff565b611d7182612708565b604080518381526020810183905233917f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f33910160405180910390a25061100e600160008051602061312c83398151915255565b600a54600e54600091908290600110611dde576000611ded565b6001600e54611ded9190612f04565b9050600061271082600a6001015485611e069190612f17565b611e109190612f17565b611e1a9190612f2e565b9050611e268184612e91565b935050505090565b60118181548110611e3e57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000611e6381611ffb565b600854600160a01b900460ff1615611eb55760405162461bcd60e51b815260206004820152601560248201527410db185a5b48185b1c9958591e481cdd185c9d1959605a1b6044820152606401610e3d565b6008805460ff60a01b1916600160a01b17905560405142907f1d2d0140bdb23d465e3a2c0ae7edbe68191a2fffd831f87747b5eda2d732977c90610faa9083815260200190565b6000611f0781611ffb565b50600491909155600555565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610a96565b611f44612838565b565b611f4e612838565b611f4461285d565b60006000805160206130ec833981519152611f7184846115a4565b611ff1576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611fa73390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610a96565b6000915050610a96565b61100e8133612865565b60006000805160206130ec83398151915261202084846115a4565b15611ff1576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610a96565b61208961289e565b60008051602061310c833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b0390911681526020015b60405180910390a150565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061216957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661215d6000805160206130ac833981519152546001600160a01b031690565b6001600160a01b031614155b15611f445760405163703e46dd60e11b815260040160405180910390fd5b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361108781611ffb565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561220b575060408051601f3d908101601f1916820190925261220891810190613059565b60015b61223357604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610e3d565b6000805160206130ac833981519152811461226457604051632a87526960e21b815260048101829052602401610e3d565b610fe983836128ce565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f445760405163703e46dd60e11b815260040160405180910390fd5b60008051602061310c8339815191525460ff1615611f445760405163d93c066560e01b815260040160405180910390fd5b60008051602061312c83398151915280546001190161231a57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600061232e60086012612f04565b61233990600a61304d565b61234590600019612f2e565b8211156123ad5760405162461bcd60e51b815260206004820152603060248201527f546f6b656e556e6974733a2045544820707269636520746f2057656920636f6e60448201526f76657273696f6e206f766572666c6f7760801b6064820152608401610e3d565b6123b960086012612f04565b6123c490600a61304d565b610a969083612f17565b34156124a0576006544790811061100e57600060646123ee83605a612f17565b6123f89190612f2e565b6008546040519192506000916001600160a01b039091169083908381818185875af1925050503d806000811461244a576040519150601f19603f3d011682016040523d82523d6000602084013e61244f565b606091505b5050905080610fe95760405162461bcd60e51b815260206004820152601860248201527f455448206175746f2d7472616e73666572206661696c656400000000000000006044820152606401610e3d565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156124e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250d9190613059565b9050600754811061100e576000606461252783605a612f17565b6125319190612f2e565b6000805460085460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101859052939450919291169063a9059cbb906044016020604051808303816000875af115801561258c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b09190613072565b905080610fe95760405162461bcd60e51b815260206004820152601960248201527f55534454206175746f2d7472616e73666572206661696c6564000000000000006044820152606401610e3d565b601254604051639f2c950360e01b81526001600160a01b0384811660048301526024820184905290911690639f2c950390604401600060405180830381600087803b15801561264d57600080fd5b505af1158015612661573d6000803e3d6000fd5b505050506000805b6011548110156126bb57336001600160a01b03166011828154811061269057612690612f50565b6000918252602090912001546001600160a01b0316036126b357600191506126bb565b600101612669565b5080610fe957601180546001810182556000919091527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680180546001600160a01b03191633179055505050565b806010600082825461271a9190612e91565b9091555050600c546010541061278557600e54612738906001612e91565b600e819055600060105542600f557fed61a2d4b614cbd5677b44533d7c136e648e6d1d48f11bc307e8269df0f0ba9690612770611dc4565b604080519283526020830191909152016120d7565b600d54600f546127959190612e91565b42111561100e57600e54612738906001612e91565b600160008051602061312c83398151915255565b6127c66122b7565b60008051602061310c833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258336120c3565b60006128156012600a61304d565b61105b8385612f17565b60008161282e6012600a61304d565b61105b9085612f17565b612840612924565b611f4457604051631afcd79f60e31b815260040160405180910390fd5b6127aa612838565b61286f82826115a4565b6110875760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610e3d565b60008051602061310c8339815191525460ff16611f4457604051638dfc202b60e01b815260040160405180910390fd5b6128d78261293e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561291c57610fe982826129a3565b611087612a19565b600061292e611f13565b54600160401b900460ff16919050565b806001600160a01b03163b60000361297457604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610e3d565b6000805160206130ac83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516129c0919061308f565b600060405180830381855af49150503d80600081146129fb576040519150601f19603f3d011682016040523d82523d6000602084013e612a00565b606091505b5091509150612a10858383612a38565b95945050505050565b3415611f445760405163b398979f60e01b815260040160405180910390fd5b606082612a4d57612a4882612a94565b611065565b8151158015612a6457506001600160a01b0384163b155b15612a8d57604051639996b31560e01b81526001600160a01b0385166004820152602401610e3d565b5092915050565b805115612aa45780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b600060208284031215612acf57600080fd5b81356001600160e01b03198116811461106557600080fd5b80356001600160a01b0381168114612afe57600080fd5b919050565b600080600080600060a08688031215612b1b57600080fd5b612b2486612ae7565b9450612b3260208701612ae7565b9350612b4060408701612ae7565b9250612b4e60608701612ae7565b9150612b5c60808701612ae7565b90509295509295909350565b600060208284031215612b7a57600080fd5b5035919050565b60008060408385031215612b9457600080fd5b82359150612ba460208401612ae7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612bec57612bec612bad565b604052919050565b60006080828403128015612c0757600080fd5b506040516000906080810167ffffffffffffffff81118282101715612c2e57612c2e612bad565b60409081528435825260208086013590830152848101359082015260609384013593810193909352509092915050565b600060208284031215612c7057600080fd5b61106582612ae7565b801515811461100e57600080fd5b600060208284031215612c9957600080fd5b813561106581612c79565b60008060408385031215612cb757600080fd5b612cc083612ae7565b9150602083013567ffffffffffffffff811115612cdc57600080fd5b8301601f81018513612ced57600080fd5b803567ffffffffffffffff811115612d0757612d07612bad565b612d1a601f8201601f1916602001612bc3565b818152866020838501011115612d2f57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008060208385031215612d6257600080fd5b823567ffffffffffffffff811115612d7957600080fd5b8301601f81018513612d8a57600080fd5b803567ffffffffffffffff811115612da157600080fd5b8560208260051b8401011115612db657600080fd5b6020919091019590945092505050565b60008060408385031215612dd957600080fd5b50508035926020909101359150565b600080600060608486031215612dfd57600080fd5b612e0684612ae7565b925060208401359150612e1b60408501612ae7565b90509250925092565b60005b83811015612e3f578181015183820152602001612e27565b50506000910152565b6020815260008251806020840152612e67816040850160208701612e24565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a9657610a96612e7b565b805169ffffffffffffffffffff81168114612afe57600080fd5b600080600080600060a08688031215612ed657600080fd5b612edf86612ea4565b60208701516040880151606089015192975090955093509150612b5c60808701612ea4565b81810381811115610a9657610a96612e7b565b8082028115828204841417610a9657610a96612e7b565b600082612f4b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6001815b6001841115612fa157808504811115612f8557612f85612e7b565b6001841615612f9357908102905b60019390931c928002612f6a565b935093915050565b600082612fb857506001610a96565b81612fc557506000610a96565b8160018114612fdb5760028114612fe557613001565b6001915050610a96565b60ff841115612ff657612ff6612e7b565b50506001821b610a96565b5060208310610133831016604e8410600b8410161715613024575081810a610a96565b6130316000198484612f66565b806000190482111561304557613045612e7b565b029392505050565b60006110658383612fa9565b60006020828403121561306b57600080fd5b5051919050565b60006020828403121561308457600080fd5b815161106581612c79565b600082516130a1818460208701612e24565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212201a46124770289b7bdc005fbace9e4a1f89d313ad0e1daa6ea11b94789d1cf66d64736f6c634300081c0033