Overview
ETH Balance
0.000294587913518876 ETH
Eth Value
$0.83 (@ $2,814.87/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 7,453 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Earning... | 12626044 | 1333 days ago | IN | 0 ETH | 0.00034731 | ||||
Transfer | 11481741 | 1509 days ago | IN | 0.09924 ETH | 0.000756 | ||||
Withdraw Earning... | 11288744 | 1539 days ago | IN | 0 ETH | 0.00360614 | ||||
Transfer | 11159051 | 1559 days ago | IN | 0.21 ETH | 0.001134 | ||||
Take Remaining T... | 11111409 | 1566 days ago | IN | 0 ETH | 0.002219 | ||||
Withdraw Earning... | 11030093 | 1579 days ago | IN | 0 ETH | 0.001085 | ||||
Withdraw Admin F... | 11029788 | 1579 days ago | IN | 0 ETH | 0.00119459 | ||||
Withdraw Admin F... | 11029776 | 1579 days ago | IN | 0 ETH | 0.00085766 | ||||
Withdraw Earning... | 11028971 | 1579 days ago | IN | 0 ETH | 0.00196008 | ||||
Withdraw Earning... | 11028919 | 1579 days ago | IN | 0 ETH | 0.00589918 | ||||
Withdraw Earning... | 11028734 | 1579 days ago | IN | 0 ETH | 0.01524707 | ||||
Withdraw Earning... | 11028725 | 1579 days ago | IN | 0 ETH | 0.00827243 | ||||
Withdraw Earning... | 11028717 | 1579 days ago | IN | 0 ETH | 0.01203156 | ||||
Withdraw Earning... | 11028690 | 1579 days ago | IN | 0 ETH | 0.0098676 | ||||
Withdraw Earning... | 11028681 | 1579 days ago | IN | 0 ETH | 0.0106776 | ||||
Withdraw Earning... | 11028668 | 1579 days ago | IN | 0 ETH | 0.0123612 | ||||
Withdraw Earning... | 11028620 | 1579 days ago | IN | 0 ETH | 0.00794055 | ||||
Withdraw Earning... | 11028598 | 1579 days ago | IN | 0 ETH | 0.00827243 | ||||
Withdraw Earning... | 11028583 | 1579 days ago | IN | 0 ETH | 0.0077288 | ||||
Withdraw Earning... | 11028562 | 1579 days ago | IN | 0 ETH | 0.00207371 | ||||
Withdraw Earning... | 11028552 | 1579 days ago | IN | 0 ETH | 0.0118026 | ||||
Withdraw Earning... | 11028537 | 1579 days ago | IN | 0 ETH | 0.00827243 | ||||
Withdraw Earning... | 11028518 | 1579 days ago | IN | 0 ETH | 0.01241049 | ||||
Withdraw Earning... | 11028498 | 1579 days ago | IN | 0 ETH | 0.00748104 | ||||
Withdraw Admin F... | 11028482 | 1579 days ago | IN | 0 ETH | 0.00386526 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11029788 | 1579 days ago | 0.118 ETH | ||||
11028971 | 1579 days ago | 0.62025 ETH | ||||
11028919 | 1579 days ago | 0.09075 ETH | ||||
11028734 | 1579 days ago | 1.2 ETH | ||||
11028725 | 1579 days ago | 3.2105 ETH | ||||
11028717 | 1579 days ago | 1.71875 ETH | ||||
11028690 | 1579 days ago | 1.62125 ETH | ||||
11028681 | 1579 days ago | 0.75 ETH | ||||
11028668 | 1579 days ago | 1.84125 ETH | ||||
11028620 | 1579 days ago | 0.0875 ETH | ||||
11028598 | 1579 days ago | 0.55 ETH | ||||
11028583 | 1579 days ago | 0.1625 ETH | ||||
11028562 | 1579 days ago | 0.125 ETH | ||||
11028552 | 1579 days ago | 0.25 ETH | ||||
11028537 | 1579 days ago | 0.7 ETH | ||||
11028518 | 1579 days ago | 0.4 ETH | ||||
11028498 | 1579 days ago | 0.3575 ETH | ||||
11028482 | 1579 days ago | 3.981 ETH | ||||
11028472 | 1579 days ago | 5.291 ETH | ||||
11028458 | 1579 days ago | 4.42 ETH | ||||
11028435 | 1579 days ago | 0.225 ETH | ||||
11028400 | 1579 days ago | 0.135 ETH | ||||
11028396 | 1579 days ago | 0.18525 ETH | ||||
11028368 | 1579 days ago | 0.24 ETH | ||||
11028367 | 1579 days ago | 2.053375 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Tevvo
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-29 */ pragma solidity ^0.5.17; /* ████████╗███████╗██╗░░░██╗██╗░░░██╗░█████╗░ ╚══██╔══╝██╔════╝██║░░░██║██║░░░██║██╔══██╗ ░░░██║░░░█████╗░░╚██╗░██╔╝╚██╗░██╔╝██║░░██║ ░░░██║░░░██╔══╝░░░╚████╔╝░░╚████╔╝░██║░░██║ ░░░██║░░░███████╗░░╚██╔╝░░░░╚██╔╝░░╚█████╔╝ ░░░╚═╝░░░╚══════╝░░░╚═╝░░░░░░╚═╝░░░░╚════╝░ Official Telegram: https://t.me/tevvo_official Official Website: https://tevvo.io */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * NOTE: This is a feature of the next version of OpenZeppelin Contracts. * @dev Get it via `npm install @openzeppelin/contracts@next`. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * NOTE: This is a feature of the next version of OpenZeppelin Contracts. * @dev Get it via `npm install @openzeppelin/contracts@next`. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } interface Token { function transfer(address _to, uint256 _amount) external returns (bool success); function balanceOf(address _owner) external view returns (uint256 balance); function decimals()external view returns (uint8); } library DataStructs { struct DailyRound { uint256 startTime; uint256 endTime; bool ended; //has daily round ended uint256 pool; //amount in the pool; } struct User { uint256 id; uint256 totalInvestment; uint256 directsIncome; uint256 roiReferralIncome; uint256 currInvestment; uint256 dailyIncome; uint256 lastSettledTime; uint256 incomeLimitLeft; uint256 sponsorPoolIncome; uint256 referralCount; address referrer; } struct PlayerDailyRounds { uint256 ethVolume; } } contract Tevvo { using SafeMath for *; Token public tevvoToken; address public owner; uint256 private houseFee = 2; uint256 private poolTime = 24 hours; uint256 private payoutPeriod = 24 hours; uint256 private dailyWinPool = 5; uint256 private incomeTimes = 30; uint256 private incomeDivide = 10; uint256 public roundID; uint256 public currUserID; uint256 public m1 = 0; uint256 public m2 = 0; uint256[4] private awardPercentage; struct Leaderboard { uint256 amt; address addr; } Leaderboard[4] public topSponsors; Leaderboard[4] public lastTopSponsors; uint256[4] public lastTopSponsorsWinningAmount; address [] public admins; uint256 rate = 100000000000000000;// 1 ETH = 100 TVO tokens mapping (uint => address) public userList; mapping (uint256 => DataStructs.DailyRound) public round; mapping (address => DataStructs.User) public player; mapping (address => mapping (uint256 => DataStructs.PlayerDailyRounds)) public plyrRnds_; /**************************** EVENTS *****************************************/ event registerUserEvent(address indexed _playerAddress, address indexed _referrer); event investmentEvent(address indexed _playerAddress, uint256 indexed _amount); event referralCommissionEvent(address indexed _playerAddress, address indexed _referrer, uint256 indexed amount, uint256 timeStamp); event dailyPayoutEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp); event withdrawEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp); event superBonusEvent(address indexed _playerAddress, uint256 indexed _amount); event roundAwardsEvent(address indexed _playerAddress, uint256 indexed _amount); event ownershipTransferred(address indexed owner, address indexed newOwner); constructor (address _admin, address _tokenToBeUsed) public { owner = _admin; tevvoToken = Token(_tokenToBeUsed); roundID = 1; round[1].startTime = now; round[1].endTime = now + poolTime; awardPercentage[0] = 40; awardPercentage[1] = 30; awardPercentage[2] = 20; awardPercentage[3] = 10; currUserID++; player[owner].id = currUserID; player[owner].incomeLimitLeft = 500000 ether; player[owner].lastSettledTime = now; player[owner].referralCount = 20; userList[currUserID] = owner; } /**************************** MODIFIERS *****************************************/ /** * @dev sets boundaries for incoming tx */ modifier isWithinLimits(uint256 _eth) { require(_eth >= 100000000000000000, "Minimum contribution amount is 0.1 ETH"); _; } /** * @dev sets permissible values for incoming tx */ modifier isallowedValue(uint256 _eth) { require(_eth % 100000000000000000 == 0, "Only in multiples of 0.1"); _; } /** * @dev allows only the user to run the function */ modifier onlyOwner() { require(msg.sender == owner, "only Owner"); _; } /**************************** CORE LOGIC *****************************************/ //if someone accidently sends eth to contract address function () external payable { registerUser(1); } //function to maintain the business logic function registerUser(uint256 _referrerID) public isWithinLimits(msg.value) isallowedValue(msg.value) payable { require(_referrerID > 0 && _referrerID <= currUserID, "Incorrect Referrer ID"); address _referrer = userList[_referrerID]; uint256 amount = msg.value; if (player[msg.sender].id <= 0) { //if player is a new joinee currUserID++; player[msg.sender].id = currUserID; player[msg.sender].lastSettledTime = now; player[msg.sender].currInvestment = amount; player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide); player[msg.sender].totalInvestment = amount; player[msg.sender].referrer = _referrer; userList[currUserID] = msg.sender; player[_referrer].referralCount = player[_referrer].referralCount.add(1); if(_referrer == owner) { player[owner].directsIncome = player[owner].directsIncome.add(amount.mul(15).div(100)); for(uint i=0; i<admins.length; i++) { player[admins[i]].directsIncome = player[admins[i]].directsIncome.add(amount.mul(15).div(400)); } } else { plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount); addSponsorToPool(_referrer); directsReferralBonus(msg.sender, amount); } emit registerUserEvent(msg.sender, _referrer); } //if the player has already joined earlier else { require(player[msg.sender].incomeLimitLeft == 0, "limit is still remaining"); require(amount >= player[msg.sender].currInvestment, "Cannot invest lesser amount"); _referrer = player[msg.sender].referrer; player[msg.sender].lastSettledTime = now; player[msg.sender].currInvestment = amount; player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide); player[msg.sender].totalInvestment = player[msg.sender].totalInvestment.add(amount); if(_referrer == owner) { player[owner].directsIncome = player[owner].directsIncome.add(amount.mul(15).div(100)); for(uint i=0; i<admins.length; i++) { player[admins[i]].directsIncome = player[admins[i]].directsIncome.add(amount.mul(15).div(400)); } } else { plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount); addSponsorToPool(_referrer); directsReferralBonus(msg.sender, amount); } } //add amount to daily pool round[roundID].pool = round[roundID].pool.add(amount.mul(dailyWinPool).div(100)); //transfer 2% to main admin player[owner].dailyIncome = player[owner].dailyIncome.add(amount.mul(houseFee).div(100)); //transfer 1% to other 4 admins for(uint i=0; i<admins.length; i++){ player[admins[i]].dailyIncome = player[admins[i]].dailyIncome.add(amount.div(100)); } //calculate token rewards uint256 tokensToAward = amount.div(rate).mul(10e18); tevvoToken.transfer(msg.sender,tokensToAward); //check if round time has finished if (now > round[roundID].endTime && round[roundID].ended == false) { startNextRound(); } emit investmentEvent (msg.sender, amount); } function directsReferralBonus(address _playerAddress, uint256 amount) private { address _nextReferrer = player[_playerAddress].referrer; if(player[_nextReferrer].id <=15){ if (player[_nextReferrer].incomeLimitLeft >= amount.mul(30).div(100)) { player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.mul(30).div(100)); player[_nextReferrer].directsIncome = player[_nextReferrer].directsIncome.add(amount.mul(30).div(100)); emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.mul(30).div(100), now); } else if(player[_nextReferrer].incomeLimitLeft !=0) { player[_nextReferrer].directsIncome = player[_nextReferrer].directsIncome.add(player[_nextReferrer].incomeLimitLeft); m1 = m1.add(amount.mul(30).div(100).sub(player[_nextReferrer].incomeLimitLeft)); emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now); player[_nextReferrer].incomeLimitLeft = 0; } else { m1 = m1.add(amount.mul(30).div(100)); //make a note of the missed commission; } } else { if (player[_nextReferrer].incomeLimitLeft >= amount.mul(20).div(100)) { player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.mul(20).div(100)); player[_nextReferrer].directsIncome = player[_nextReferrer].directsIncome.add(amount.mul(20).div(100)); emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.mul(20).div(100), now); } else if(player[_nextReferrer].incomeLimitLeft !=0) { player[_nextReferrer].directsIncome = player[_nextReferrer].directsIncome.add(player[_nextReferrer].incomeLimitLeft); m1 = m1.add(amount.mul(20).div(100).sub(player[_nextReferrer].incomeLimitLeft)); emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now); player[_nextReferrer].incomeLimitLeft = 0; } else { m1 = m1.add(amount.mul(20).div(100)); //make a note of the missed commission; } } } //function to manage the matching bonus from the daily ROI function roiReferralBonus(address _playerAddress, uint256 amount) private { address _nextReferrer = player[_playerAddress].referrer; uint256 _amountLeft = amount.div(2); uint i; for(i=0; i < 25; i++) { if (_nextReferrer != address(0x0)) { if(i == 0) { if (player[_nextReferrer].incomeLimitLeft >= amount.div(2)) { player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(2)); player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(2)); emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(2), now); } else if(player[_nextReferrer].incomeLimitLeft !=0) { player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft); m2 = m2.add(amount.div(2).sub(player[_nextReferrer].incomeLimitLeft)); emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now); player[_nextReferrer].incomeLimitLeft = 0; } else { m2 = m2.add(amount.div(2)); } _amountLeft = _amountLeft.sub(amount.div(2)); } else { // for users 2-25 if(player[_nextReferrer].referralCount >= i+1) { if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) { player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20)); player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(20)); emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now); }else if(player[_nextReferrer].incomeLimitLeft !=0) { player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft); m2 = m2.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft)); emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now); player[_nextReferrer].incomeLimitLeft = 0; } else { m2 = m2.add(amount.div(20)); } } else { m2 = m2.add(amount.div(20)); //make a note of the missed commission; } } } else { m2 = m2.add((uint(25).sub(i)).mul(amount.div(20)).add(_amountLeft)); break; } _nextReferrer = player[_nextReferrer].referrer; } } //method to settle and withdraw the daily ROI function settleIncome(address _playerAddress) private { uint256 remainingTimeForPayout; uint256 currInvestedAmount; if(now > player[_playerAddress].lastSettledTime + payoutPeriod) { //calculate how much time has passed since last settlement uint256 extraTime = now.sub(player[_playerAddress].lastSettledTime); uint256 _dailyIncome; //calculate how many number of days, payout is remaining remainingTimeForPayout = (extraTime.sub((extraTime % payoutPeriod))).div(payoutPeriod); currInvestedAmount = player[_playerAddress].currInvestment; //calculate 2.5% of his invested amount _dailyIncome = currInvestedAmount.div(40); //check his income limit remaining if (player[_playerAddress].incomeLimitLeft >= _dailyIncome.mul(remainingTimeForPayout)) { player[_playerAddress].incomeLimitLeft = player[_playerAddress].incomeLimitLeft.sub(_dailyIncome.mul(remainingTimeForPayout)); player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(_dailyIncome.mul(remainingTimeForPayout)); player[_playerAddress].lastSettledTime = player[_playerAddress].lastSettledTime.add((extraTime.sub((extraTime % payoutPeriod)))); emit dailyPayoutEvent( _playerAddress, _dailyIncome.mul(remainingTimeForPayout), now); roiReferralBonus(_playerAddress, _dailyIncome.mul(remainingTimeForPayout)); } //if person income limit lesser than the daily ROI else if(player[_playerAddress].incomeLimitLeft !=0) { uint256 temp; temp = player[_playerAddress].incomeLimitLeft; player[_playerAddress].incomeLimitLeft = 0; player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(temp); player[_playerAddress].lastSettledTime = now; emit dailyPayoutEvent( _playerAddress, temp, now); roiReferralBonus(_playerAddress, temp); } } } //function to allow users to withdraw their earnings function withdrawEarnings() public { address _playerAddress = msg.sender; //settle the daily dividend settleIncome(_playerAddress); uint256 _earnings = player[_playerAddress].dailyIncome + player[_playerAddress].directsIncome + player[_playerAddress].roiReferralIncome + player[_playerAddress].sponsorPoolIncome ; //can only withdraw if they have some earnings. if(_earnings > 0) { require(address(this).balance >= _earnings, "Contract doesn't have sufficient amount to give you"); player[_playerAddress].dailyIncome = 0; player[_playerAddress].directsIncome = 0; player[_playerAddress].roiReferralIncome = 0; player[_playerAddress].sponsorPoolIncome = 0; address(uint160(_playerAddress)).transfer(_earnings); emit withdrawEvent(_playerAddress, _earnings, now); } } //To start the new round for daily pool function startNextRound() private { uint256 _roundID = roundID; uint256 _poolAmount = round[roundID].pool; if (_poolAmount >= 10 ether) { round[_roundID].ended = true; uint256 distributedSponsorAwards = awardTopPromoters(); _roundID++; roundID++; round[_roundID].startTime = now; round[_roundID].endTime = now.add(poolTime); round[_roundID].pool = _poolAmount.sub(distributedSponsorAwards); } else { round[_roundID].startTime = now; round[_roundID].endTime = now.add(poolTime); round[_roundID].pool = _poolAmount; } } function addSponsorToPool(address _add) private returns (bool) { if (_add == address(0x0)){ return false; } uint256 _amt = plyrRnds_[_add][roundID].ethVolume; // if the amount is less than the last on the leaderboard, reject if (topSponsors[3].amt >= _amt){ return false; } address firstAddr = topSponsors[0].addr; uint256 firstAmt = topSponsors[0].amt; address secondAddr = topSponsors[1].addr; uint256 secondAmt = topSponsors[1].amt; address thirdAddr = topSponsors[2].addr; uint256 thirdAmt = topSponsors[2].amt; // if the user should be at the top if (_amt > topSponsors[0].amt){ if (topSponsors[0].addr == _add){ topSponsors[0].amt = _amt; return true; } //if user is at the second position already and will come on first else if (topSponsors[1].addr == _add){ topSponsors[0].addr = _add; topSponsors[0].amt = _amt; topSponsors[1].addr = firstAddr; topSponsors[1].amt = firstAmt; return true; } //if user is at the third position and will come on first else if (topSponsors[2].addr == _add) { topSponsors[0].addr = _add; topSponsors[0].amt = _amt; topSponsors[1].addr = firstAddr; topSponsors[1].amt = firstAmt; topSponsors[2].addr = secondAddr; topSponsors[2].amt = secondAmt; return true; } else{ topSponsors[0].addr = _add; topSponsors[0].amt = _amt; topSponsors[1].addr = firstAddr; topSponsors[1].amt = firstAmt; topSponsors[2].addr = secondAddr; topSponsors[2].amt = secondAmt; topSponsors[3].addr = thirdAddr; topSponsors[3].amt = thirdAmt; return true; } } // if the user should be at the second position else if (_amt > topSponsors[1].amt){ if (topSponsors[1].addr == _add){ topSponsors[1].amt = _amt; return true; } //if user is at the third position, move it to second else if(topSponsors[2].addr == _add) { topSponsors[1].addr = _add; topSponsors[1].amt = _amt; topSponsors[2].addr = secondAddr; topSponsors[2].amt = secondAmt; return true; } else{ topSponsors[1].addr = _add; topSponsors[1].amt = _amt; topSponsors[2].addr = secondAddr; topSponsors[2].amt = secondAmt; topSponsors[3].addr = thirdAddr; topSponsors[3].amt = thirdAmt; return true; } } //if the user should be at third position else if(_amt > topSponsors[2].amt){ if(topSponsors[2].addr == _add) { topSponsors[2].amt = _amt; return true; } else { topSponsors[2].addr = _add; topSponsors[2].amt = _amt; topSponsors[3].addr = thirdAddr; topSponsors[3].amt = thirdAmt; } } // if the user should be at the fourth position else if (_amt > topSponsors[3].amt){ if (topSponsors[3].addr == _add){ topSponsors[3].amt = _amt; return true; } else{ topSponsors[3].addr = _add; topSponsors[3].amt = _amt; return true; } } } function awardTopPromoters() private returns (uint256) { uint256 totAmt = round[roundID].pool.mul(10).div(100); uint256 distributedAmount; uint256 i; for (i = 0; i< 4; i++) { if (topSponsors[i].addr != address(0x0)) { if (player[topSponsors[i].addr].incomeLimitLeft >= totAmt.mul(awardPercentage[i]).div(100)) { player[topSponsors[i].addr].incomeLimitLeft = player[topSponsors[i].addr].incomeLimitLeft.sub(totAmt.mul(awardPercentage[i]).div(100)); player[topSponsors[i].addr].sponsorPoolIncome = player[topSponsors[i].addr].sponsorPoolIncome.add(totAmt.mul(awardPercentage[i]).div(100)); emit roundAwardsEvent(topSponsors[i].addr, totAmt.mul(awardPercentage[i]).div(100)); } else if(player[topSponsors[i].addr].incomeLimitLeft !=0) { player[topSponsors[i].addr].sponsorPoolIncome = player[topSponsors[i].addr].sponsorPoolIncome.add(player[topSponsors[i].addr].incomeLimitLeft); m2 = m2.add((totAmt.mul(awardPercentage[i]).div(100)).sub(player[topSponsors[i].addr].incomeLimitLeft)); emit roundAwardsEvent(topSponsors[i].addr,player[topSponsors[i].addr].incomeLimitLeft); player[topSponsors[i].addr].incomeLimitLeft = 0; } else { m2 = m2.add(totAmt.mul(awardPercentage[i]).div(100)); } distributedAmount = distributedAmount.add(totAmt.mul(awardPercentage[i]).div(100)); lastTopSponsors[i].addr = topSponsors[i].addr; lastTopSponsors[i].amt = topSponsors[i].amt; lastTopSponsorsWinningAmount[i] = totAmt.mul(awardPercentage[i]).div(100); topSponsors[i].addr = address(0x0); topSponsors[i].amt = 0; } } return distributedAmount; } function withdrawAdminFees(uint256 _amount, address _receiver, uint256 _numberUI) public onlyOwner { if(_numberUI == 1 && m1 >= _amount) { if(_amount > 0) { if(address(this).balance >= _amount) { m1 = m1.sub(_amount); address(uint160(_receiver)).transfer(_amount); } } } else if(_numberUI == 2 && m2 >= _amount) { if(_amount > 0) { if(address(this).balance >= _amount) { m2 = m2.sub(_amount); address(uint160(_receiver)).transfer(_amount); } } } } function takeRemainingTokens() public onlyOwner { tevvoToken.transfer(owner,tevvoToken.balanceOf(address(this))); } function addAdmin(address _adminAddress) public onlyOwner returns(address [] memory){ if(admins.length < 4) { admins.push(_adminAddress); } return admins; } function removeAdmin(address _adminAddress) public onlyOwner returns(address[] memory){ for(uint i=0; i < admins.length; i++){ if(admins[i] == _adminAddress) { admins[i] = admins[admins.length-1]; delete admins[admins.length-1]; admins.length--; } } return admins; } /* @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) external onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) private { require(newOwner != address(0), "New owner cannot be the zero address"); emit ownershipTransferred(owner, newOwner); owner = newOwner; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_tokenToBeUsed","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"dailyPayoutEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"investmentEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"ownershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"referralCommissionEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"}],"name":"registerUserEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"roundAwardsEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"superBonusEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"withdrawEvent","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"_adminAddress","type":"address"}],"name":"addAdmin","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"admins","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currUserID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopSponsors","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopSponsorsWinningAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"player","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"totalInvestment","type":"uint256"},{"internalType":"uint256","name":"directsIncome","type":"uint256"},{"internalType":"uint256","name":"roiReferralIncome","type":"uint256"},{"internalType":"uint256","name":"currInvestment","type":"uint256"},{"internalType":"uint256","name":"dailyIncome","type":"uint256"},{"internalType":"uint256","name":"lastSettledTime","type":"uint256"},{"internalType":"uint256","name":"incomeLimitLeft","type":"uint256"},{"internalType":"uint256","name":"sponsorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"referralCount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"plyrRnds_","outputs":[{"internalType":"uint256","name":"ethVolume","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_referrerID","type":"uint256"}],"name":"registerUser","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_adminAddress","type":"address"}],"name":"removeAdmin","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"round","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"ended","type":"bool"},{"internalType":"uint256","name":"pool","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"takeRemainingTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tevvoToken","outputs":[{"internalType":"contract Token","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"topSponsors","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userList","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_numberUI","type":"uint256"}],"name":"withdrawAdminFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEarnings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260028055620151806003556201518060045560058055601e600655600a6007556000600a556000600b5567016345785d8a000060255534801561004657600080fd5b506040516133b53803806133b58339818101604052604081101561006957600080fd5b508051602091820151600180546001600160a01b03199081166001600160a01b03948516178083556000805483169486169490941784556008839055427fb6915e519d5f9dd23c62986e48578ddfa8cde5c92608222904fd87ad04df4ffd81905560035481017fb6915e519d5f9dd23c62986e48578ddfa8cde5c92608222904fd87ad04df4ffe556028600c819055601e600d556014600e819055600a600f5560098054870180825594891688529189526040808820949094558554881687528387206969e10de76676d0800000600790910155855488168752838720600601929092558454871686528286208101919091559254925484526026909552938220805491909316931692909217905561322d90819061018890396000f3fe60806040526004361061012a5760003560e01c8063791eacca116100ab578063a4bb170d1161006f578063a4bb170d14610499578063a77f92ff146104ae578063b73c6ce9146104c3578063d4841d5e146104d8578063d6d0037514610502578063f2fde38b1461052c5761012a565b8063791eacca146103f15780638b02fbf4146104305780638da5cb5b1461044557806391aa69ca1461045a5780639f4216e81461046f5761012a565b806336bfa47b116100f257806336bfa47b146102935780633c2a9da0146102de578063452b381d146102f35780634c54e1b51461032c57806370480275146103be5761012a565b806314bfd6d01461013657806314f8b4241461017c5780631785f53c146101a35780631bbfae0e1461022657806334d5f37b14610243575b610134600161055f565b005b34801561014257600080fd5b506101606004803603602081101561015957600080fd5b5035610e55565b604080516001600160a01b039092168252519081900360200190f35b34801561018857600080fd5b50610191610e7c565b60408051918252519081900360200190f35b3480156101af57600080fd5b506101d6600480360360208110156101c657600080fd5b50356001600160a01b0316610e82565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102125781810151838201526020016101fa565b505050509050019250505060405180910390f35b6101346004803603602081101561023c57600080fd5b503561055f565b34801561024f57600080fd5b5061026d6004803603602081101561026657600080fd5b503561101d565b604080519485526020850193909352901515838301526060830152519081900360800190f35b34801561029f57600080fd5b506102bd600480360360208110156102b657600080fd5b503561104a565b604080519283526001600160a01b0390911660208301528051918290030190f35b3480156102ea57600080fd5b50610134611072565b3480156102ff57600080fd5b506101916004803603604081101561031657600080fd5b506001600160a01b0381351690602001356111bf565b34801561033857600080fd5b5061035f6004803603602081101561034f57600080fd5b50356001600160a01b03166111dc565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945260a088019290925260c087015260e08601526101008501526101208401526001600160a01b031661014083015251908190036101600190f35b3480156103ca57600080fd5b506101d6600480360360208110156103e157600080fd5b50356001600160a01b031661123e565b3480156103fd57600080fd5b506101346004803603606081101561041457600080fd5b508035906001600160a01b036020820135169060400135611344565b34801561043c57600080fd5b5061016061147e565b34801561045157600080fd5b5061016061148d565b34801561046657600080fd5b5061019161149c565b34801561047b57600080fd5b506101606004803603602081101561049257600080fd5b50356114a2565b3480156104a557600080fd5b506101916114bd565b3480156104ba57600080fd5b506101916114c3565b3480156104cf57600080fd5b506101346114c9565b3480156104e457600080fd5b506102bd600480360360208110156104fb57600080fd5b50356115e5565b34801561050e57600080fd5b506101916004803603602081101561052557600080fd5b50356115f2565b34801561053857600080fd5b506101346004803603602081101561054f57600080fd5b50356001600160a01b0316611606565b3467016345785d8a00008110156105a75760405162461bcd60e51b815260040180806020018281038252602681526020018061316e6026913960400191505060405180910390fd5b3467016345785d8a0000810615610605576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920696e206d756c7469706c6573206f6620302e310000000000000000604482015290519081900360640190fd5b60008311801561061757506009548311155b610660576040805162461bcd60e51b8152602060048201526015602482015274125b98dbdc9c9958dd08149959995c9c995c881251605a1b604482015290519081900360640190fd5b6000838152602660209081526040808320543384526028909252909120546001600160a01b0390911690349061094357600980546001019081905533600090815260286020526040902090815542600680830191909155600490910182905560075490546106e691906106da90849063ffffffff61165e16565b9063ffffffff6116c016565b33600081815260286020818152604080842060078101969096556001808701889055600a90960180546001600160a01b038a166001600160a01b0319918216811790925560098054875260268552838720805490921690971790558452919052902001546107599163ffffffff61170216565b6001600160a01b03808416600081815260286020526040902060090192909255600154161415610898576107c661079c60646106da84600f63ffffffff61165e16565b6001546001600160a01b03166000908152602860205260409020600201549063ffffffff61170216565b6001546001600160a01b03166000908152602860205260408120600201919091555b6024548110156108925761085161080c6101906106da85600f63ffffffff61165e16565b602860006024858154811061081d57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600201549063ffffffff61170216565b602860006024848154811061086257fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600201556001016107e8565b50610908565b6001600160a01b038216600090815260296020908152604080832060085484529091529020546108ce908263ffffffff61170216565b6001600160a01b038316600090815260296020908152604080832060085484529091529020556108fd8261175c565b506109083382611b3e565b6040516001600160a01b0383169033907fddb5b955685e49590bf27ea3575cf7aea7a942422afa776dba9c6fd4ff3e655a90600090a3610bc4565b33600090815260286020526040902060070154156109a8576040805162461bcd60e51b815260206004820152601860248201527f6c696d6974206973207374696c6c2072656d61696e696e670000000000000000604482015290519081900360640190fd5b33600090815260286020526040902060040154811015610a0f576040805162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420696e76657374206c657373657220616d6f756e740000000000604482015290519081900360640190fd5b336000908152602860205260409020600a81015442600680840191909155600490920183905560075491546001600160a01b039091169350610a5791906106da90849061165e565b336000908152602860205260409020600781019190915560010154610a82908263ffffffff61170216565b336000908152602860205260409020600190810191909155546001600160a01b0383811691161415610b5457610ac761079c60646106da84600f63ffffffff61165e16565b6001546001600160a01b03166000908152602860205260408120600201919091555b602454811015610b4e57610b0d61080c6101906106da85600f63ffffffff61165e16565b6028600060248481548110610b1e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060020155600101610ae9565b50610bc4565b6001600160a01b03821660009081526029602090815260408083206008548452909152902054610b8a908263ffffffff61170216565b6001600160a01b03831660009081526029602090815260408083206008548452909152902055610bb98261175c565b50610bc43382611b3e565b610c02610be160646106da6005548561165e90919063ffffffff16565b6008546000908152602760205260409020600301549063ffffffff61170216565b600854600090815260276020526040902060030155600254610c6090610c36906064906106da90859063ffffffff61165e16565b6001546001600160a01b03166000908152602860205260409020600501549063ffffffff61170216565b6001546001600160a01b03166000908152602860205260408120600501919091555b602454811015610d2657610ce5610ca083606463ffffffff6116c016565b6028600060248581548110610cb157fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600501549063ffffffff61170216565b6028600060248481548110610cf657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060050155600101610c82565b506000610d56678ac7230489e80000610d4a602554856116c090919063ffffffff16565b9063ffffffff61165e16565b600080546040805163a9059cbb60e01b81523360048201526024810185905290519394506001600160a01b039091169263a9059cbb92604480840193602093929083900390910190829087803b158015610daf57600080fd5b505af1158015610dc3573d6000803e3d6000fd5b505050506040513d6020811015610dd957600080fd5b505060085460009081526027602052604090206001015442118015610e13575060085460009081526027602052604090206002015460ff16155b15610e2057610e20611ffe565b604051829033907f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75390600090a3505050505050565b60248181548110610e6257fe5b6000918252602090912001546001600160a01b0316905081565b60085481565b6001546060906001600160a01b03163314610ed1576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b60005b602454811015610fb957826001600160a01b031660248281548110610ef557fe5b6000918252602090912001546001600160a01b03161415610fb157602480546000198101908110610f2257fe5b600091825260209091200154602480546001600160a01b039092169183908110610f4857fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055602480546000198101908110610f8357fe5b600091825260209091200180546001600160a01b03191690556024805490610faf9060001983016130fd565b505b600101610ed4565b50602480548060200260200160405190810160405280929190818152602001828054801561101057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ff2575b505050505090505b919050565b60276020526000908152604090208054600182015460028301546003909301549192909160ff9091169084565b6010816004811061105757fe5b6002020180546001909101549091506001600160a01b031682565b6001546001600160a01b031633146110be576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b600054600154604080516370a0823160e01b815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b15801561111657600080fd5b505afa15801561112a573d6000803e3d6000fd5b505050506040513d602081101561114057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561119157600080fd5b505af11580156111a5573d6000803e3d6000fd5b505050506040513d60208110156111bb57600080fd5b5050565b602960209081526000928352604080842090915290825290205481565b602860205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a909a0154989997989697959694959394929391929091906001600160a01b03168b565b6001546060906001600160a01b0316331461128d576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b602454600411156112e457602480546001810182556000919091527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec40180546001600160a01b0319166001600160a01b0384161790555b6024805480602002602001604051908101604052809291908181526020018280548015611010576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610ff25750505050509050919050565b6001546001600160a01b03163314611390576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b8060011480156113a2575082600a5410155b156114075782156114025782471061140257600a546113c7908463ffffffff6120fd16565b600a556040516001600160a01b0383169084156108fc029085906000818181858888f19350505050158015611400573d6000803e3d6000fd5b505b611479565b806002148015611419575082600b5410155b156114795782156114795782471061147957600b5461143e908463ffffffff6120fd16565b600b556040516001600160a01b0383169084156108fc029085906000818181858888f19350505050158015611477573d6000803e3d6000fd5b505b505050565b6000546001600160a01b031681565b6001546001600160a01b031681565b600b5481565b6026602052600090815260409020546001600160a01b031681565b60095481565b600a5481565b336114d38161213f565b6001600160a01b03811660009081526028602052604090206008810154600382015460028301546005909301549092019091010180156111bb578047101561154c5760405162461bcd60e51b815260040180806020018281038252603381526020018061313b6033913960400191505060405180910390fd5b6001600160a01b0382166000818152602860205260408082206005810183905560028101839055600381018390556008018290555183156108fc0291849190818181858888f193505050501580156115a8573d6000803e3d6000fd5b504281836001600160a01b03167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45050565b6018816004811061105757fe5b602081600481106115ff57fe5b0154905081565b6001546001600160a01b03163314611652576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b61165b81612458565b50565b60008261166d575060006116ba565b8282028284828161167a57fe5b04146116b75760405162461bcd60e51b81526004018080602001828103825260218152602001806131946021913960400191505060405180910390fd5b90505b92915050565b60006116b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f9565b6000828201838110156116b7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b03821661177457506000611018565b6001600160a01b0382166000908152602960209081526040808320600854845290915290205460165481116117ad576000915050611018565b6011546010546013546012546015546014546001600160a01b03958616959384169390911690848711156119e1576011546001600160a01b038a81169116141561180d5786601060005b6002020155506001965061101895505050505050565b6013546001600160a01b038a81169116141561186d57601180546001600160a01b0319166001600160a01b038b1617905586601060006002020155601380546001600160a01b0319166001600160a01b03881617905584601060016117f7565b6015546001600160a01b038a81169116141561191d57601180546001600160a01b0319166001600160a01b038b1617905586601060006002020155601380546001600160a01b0319166001600160a01b03881617905584601060015b60020201600001819055508360106002600481106118e357fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260106002600481106117f757fe5b601180546001600160a01b0319166001600160a01b038b1617905586601060006002020155601380546001600160a01b0319166001600160a01b03881617905584601060015b600202016000018190555083601060026004811061197d57fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260106002600481106119b757fe5b6002020155601780546001600160a01b0319166001600160a01b03841617905580601060036117f7565b601254871115611a6b576013546001600160a01b038a811691161415611a0b5786601060016117f7565b6015546001600160a01b038a811691161415611a4657601380546001600160a01b0319166001600160a01b038b1617905586601060016118c9565b601380546001600160a01b0319166001600160a01b038b161790558660106001611963565b601454871115611ae3576015546001600160a01b038a811691161415611a955786601060026117f7565b601580546001600160a01b0319166001600160a01b038b16179055866010600280020155601780546001600160a01b0319166001600160a01b03841617905580601060036002020155611b32565b601654871115611b32576017546001600160a01b038a811691161415611b0d5786601060036117f7565b601780546001600160a01b0319166001600160a01b038b1617905586601060036117f7565b50505050505050919050565b6001600160a01b03808316600090815260286020526040808220600a015490921680825291902054600f10611deb57611b8360646106da84601e63ffffffff61165e16565b6001600160a01b03821660009081526028602052604090206007015410611cb257611be5611bbd60646106da85601e63ffffffff61165e16565b6001600160a01b0383166000908152602860205260409020600701549063ffffffff6120fd16565b6001600160a01b038216600090815260286020526040902060070155611c42611c1a60646106da85601e63ffffffff61165e16565b6001600160a01b0383166000908152602860205260409020600201549063ffffffff61170216565b6001600160a01b038216600090815260286020526040902060020155611c7460646106da84601e63ffffffff61165e16565b816001600160a01b0316846001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4611402565b6001600160a01b03811660009081526028602052604090206007015415611dca576001600160a01b03811660009081526028602052604090206007810154600290910154611d059163ffffffff61170216565b6001600160a01b0382166000908152602860205260409020600281019190915560070154611d6290611d5390611d4760646106da87601e63ffffffff61165e16565b9063ffffffff6120fd16565b600a549063ffffffff61170216565b600a556001600160a01b03808216600081815260286020908152604091829020600701548251428152925190948816926000805160206131b583398151915292908290030190a46001600160a01b038116600090815260286020526040812060070155611402565b611de3611d5360646106da85601e63ffffffff61165e16565b600a55611479565b611e0160646106da84601463ffffffff61165e16565b6001600160a01b03821660009081526028602052604090206007015410611ee057611e3b611bbd60646106da85601463ffffffff61165e16565b6001600160a01b038216600090815260286020526040902060070155611e70611c1a60646106da85601463ffffffff61165e16565b6001600160a01b038216600090815260286020526040902060020155611ea260646106da84601463ffffffff61165e16565b816001600160a01b0316846001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4611479565b6001600160a01b03811660009081526028602052604090206007015415611fdd576001600160a01b03811660009081526028602052604090206007810154600290910154611f339163ffffffff61170216565b6001600160a01b0382166000908152602860205260409020600281019190915560070154611f7590611d5390611d4760646106da87601463ffffffff61165e16565b600a556001600160a01b03808216600081815260286020908152604091829020600701548251428152925190948816926000805160206131b583398151915292908290030190a46001600160a01b038116600090815260286020526040812060070155611479565b611ff6611d5360646106da85601463ffffffff61165e16565b600a55505050565b600854600081815260276020526040902060030154678ac7230489e8000081106120b8576000828152602760205260408120600201805460ff1916600117905561204661259b565b600880546001908101909155909301600081815260276020526040902042908190556003549194925061207e9163ffffffff61170216565b6000848152602760205260409020600101556120a0828263ffffffff6120fd16565b600084815260276020526040902060030155506111bb565b600082815260276020526040902042908190556003546120de919063ffffffff61170216565b6000928352602760205260409092206001810192909255600390910155565b60006116b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b45565b6004546001600160a01b0382166000908152602860205260408120600601549091829101421115611479576001600160a01b03831660009081526028602052604081206006015461219790429063ffffffff6120fd16565b905060006121be6004546106da60045485816121af57fe5b8691900663ffffffff6120fd16565b6001600160a01b0386166000908152602860208190526040909120600401549195509093506121f490849063ffffffff6116c016565b9050612206818563ffffffff61165e16565b6001600160a01b0386166000908152602860205260409020600701541061239e5761226261223a828663ffffffff61165e16565b6001600160a01b0387166000908152602860205260409020600701549063ffffffff6120fd16565b6001600160a01b0386166000908152602860205260409020600701556122b9612291828663ffffffff61165e16565b6001600160a01b0387166000908152602860205260409020600501549063ffffffff61170216565b6001600160a01b03861660009081526028602052604090206005015560045461231f906122f79084816122e857fe5b8591900663ffffffff6120fd16565b6001600160a01b0387166000908152602860205260409020600601549063ffffffff61170216565b6001600160a01b0386166000908152602860205260409020600601554261234c828663ffffffff61165e16565b6040516001600160a01b038816907f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a90600090a461239985612394838763ffffffff61165e16565b612b9f565b612451565b6001600160a01b03851660009081526028602052604090206007015415612451576001600160a01b0385166000908152602860205260408120600781018054929055600501546123f4908263ffffffff61170216565b6001600160a01b0387166000818152602860205260408082206005810194909455426006909401849055518492917f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a91a461244f8682612b9f565b505b5050505050565b6001600160a01b03811661249d5760405162461bcd60e51b81526004018080602001828103825260248152602001806131d56024913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b790600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081836125855760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561254a578181015183820152602001612532565b50505050905090810190601f1680156125775780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161259157fe5b0495945050505050565b60085460009081526027602052604081206003015481906125ca906064906106da90600a63ffffffff61165e16565b90506000805b6004811015612b3d576000601082600481106125e857fe5b60020201600101546001600160a01b031614612b355761262260646106da600c846004811061261357fe5b0154869063ffffffff61165e16565b602860006010846004811061263357fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070154106127e4576126c061268460646106da600c856004811061267557fe5b0154879063ffffffff61165e16565b602860006010856004811061269557fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070154906120fd565b60286000601084600481106126d157fe5b60020201600101546001600160a01b0316815260208101919091526040016000206007015561274a61270e60646106da600c856004811061267557fe5b602860006010856004811061271f57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015490611702565b602860006010846004811061275b57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015561279560646106da600c846004811061261357fe5b601082600481106127a257fe5b60020201600101546040516001600160a01b03909116907f253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb90600090a3612a21565b60286000601083600481106127f557fe5b60020201600101546001600160a01b0316815260208101919091526040016000206007015415612a0557612883602860006010846004811061283357fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060070154602860006010856004811061271f57fe5b602860006010846004811061289457fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206008018190555061294561293660286000601085600481106128ed57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070154611d4760646106da600c876004811061292757fe5b0154899063ffffffff61165e16565b600b549063ffffffff61170216565b600b55602860006010836004811061295957fe5b60020201600101546001600160a01b031681526020810191909152604001600020600701546010826004811061298b57fe5b60020201600101546040516001600160a01b03909116907f253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb90600090a3600060286000601084600481106129db57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070155612a21565b612a1d61293660646106da600c856004811061267557fe5b600b555b612a46612a3960646106da600c856004811061267557fe5b839063ffffffff61170216565b915060108160048110612a5557fe5b60020201600101546001600160a01b031660188260048110612a7357fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060108160048110612aab57fe5b600202015460188260048110612abd57fe5b6002020155612ad760646106da600c846004811061261357fe5b60208260048110612ae457fe5b0155600060108260048110612af557fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060108260048110612b2f57fe5b60020201555b6001016125d0565b509150505b90565b60008184841115612b975760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561254a578181015183820152602001612532565b505050900390565b6001600160a01b038083166000908152602860205260408120600a015490911690612bd183600263ffffffff6116c016565b905060005b6019811015612451576001600160a01b038316156130945780612e5c57612c0484600263ffffffff6116c016565b6001600160a01b03841660009081526028602052604090206007015410612d2457612c61612c3985600263ffffffff6116c016565b6001600160a01b0385166000908152602860205260409020600701549063ffffffff6120fd16565b6001600160a01b038416600090815260286020526040902060070155612cb9612c9185600263ffffffff6116c016565b6001600160a01b0385166000908152602860205260409020600301549063ffffffff61170216565b6001600160a01b038416600090815260286020526040902060030155612ce684600263ffffffff6116c016565b836001600160a01b0316866001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4612e34565b6001600160a01b03831660009081526028602052604090206007015415612e1c576001600160a01b03831660009081526028602052604090206007810154600390910154612d779163ffffffff61170216565b6001600160a01b0384166000908152602860205260409020600381019190915560070154612db49061293690611d4787600263ffffffff6116c016565b600b556001600160a01b03808416600081815260286020908152604091829020600701548251428152925190948a16926000805160206131b583398151915292908290030190a46001600160a01b038316600090815260286020526040812060070155612e34565b612e3061293685600263ffffffff6116c016565b600b555b612e55612e4885600263ffffffff6116c016565b839063ffffffff6120fd16565b915061308f565b6001600160a01b038316600090815260286020526040902060090154600182011161307757612e9284601463ffffffff6116c016565b6001600160a01b03841660009081526028602052604090206007015410612f6257612ec7612c3985601463ffffffff6116c016565b6001600160a01b038416600090815260286020526040902060070155612ef7612c9185601463ffffffff6116c016565b6001600160a01b038416600090815260286020526040902060030155612f2484601463ffffffff6116c016565b836001600160a01b0316866001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4613072565b6001600160a01b0383166000908152602860205260409020600701541561305a576001600160a01b03831660009081526028602052604090206007810154600390910154612fb59163ffffffff61170216565b6001600160a01b0384166000908152602860205260409020600381019190915560070154612ff29061293690611d4787601463ffffffff6116c016565b600b556001600160a01b03808416600081815260286020908152604091829020600701548251428152925190948a16926000805160206131b583398151915292908290030190a46001600160a01b038316600090815260286020526040812060070155613072565b61306e61293685601463ffffffff6116c016565b600b555b61308f565b61308b61293685601463ffffffff6116c016565b600b555b6130d4565b6130cc612936836130c06130af88601463ffffffff6116c016565b610d4a60198763ffffffff6120fd16565b9063ffffffff61170216565b600b55612451565b6001600160a01b039283166000908152602860205260409020600a015490921691600101612bd6565b81548183558181111561147957600083815260209020611479918101908301612b4291905b808211156131365760008155600101613122565b509056fe436f6e747261637420646f65736e277420686176652073756666696369656e7420616d6f756e7420746f206769766520796f754d696e696d756d20636f6e747269627574696f6e20616d6f756e7420697320302e3120455448536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77e8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df213174e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a72315820bd5143f969f48637188416e879788f07461e62878cdc26380943fb2caa92538064736f6c6343000511003200000000000000000000000068856ec2c630dddbfbd0fa9f598350c7c60ab6e6000000000000000000000000b09613767bc5bbc25f4186fb528b6fb12adc295b
Deployed Bytecode
0x60806040526004361061012a5760003560e01c8063791eacca116100ab578063a4bb170d1161006f578063a4bb170d14610499578063a77f92ff146104ae578063b73c6ce9146104c3578063d4841d5e146104d8578063d6d0037514610502578063f2fde38b1461052c5761012a565b8063791eacca146103f15780638b02fbf4146104305780638da5cb5b1461044557806391aa69ca1461045a5780639f4216e81461046f5761012a565b806336bfa47b116100f257806336bfa47b146102935780633c2a9da0146102de578063452b381d146102f35780634c54e1b51461032c57806370480275146103be5761012a565b806314bfd6d01461013657806314f8b4241461017c5780631785f53c146101a35780631bbfae0e1461022657806334d5f37b14610243575b610134600161055f565b005b34801561014257600080fd5b506101606004803603602081101561015957600080fd5b5035610e55565b604080516001600160a01b039092168252519081900360200190f35b34801561018857600080fd5b50610191610e7c565b60408051918252519081900360200190f35b3480156101af57600080fd5b506101d6600480360360208110156101c657600080fd5b50356001600160a01b0316610e82565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102125781810151838201526020016101fa565b505050509050019250505060405180910390f35b6101346004803603602081101561023c57600080fd5b503561055f565b34801561024f57600080fd5b5061026d6004803603602081101561026657600080fd5b503561101d565b604080519485526020850193909352901515838301526060830152519081900360800190f35b34801561029f57600080fd5b506102bd600480360360208110156102b657600080fd5b503561104a565b604080519283526001600160a01b0390911660208301528051918290030190f35b3480156102ea57600080fd5b50610134611072565b3480156102ff57600080fd5b506101916004803603604081101561031657600080fd5b506001600160a01b0381351690602001356111bf565b34801561033857600080fd5b5061035f6004803603602081101561034f57600080fd5b50356001600160a01b03166111dc565b604080519b8c5260208c019a909a528a8a019890985260608a0196909652608089019490945260a088019290925260c087015260e08601526101008501526101208401526001600160a01b031661014083015251908190036101600190f35b3480156103ca57600080fd5b506101d6600480360360208110156103e157600080fd5b50356001600160a01b031661123e565b3480156103fd57600080fd5b506101346004803603606081101561041457600080fd5b508035906001600160a01b036020820135169060400135611344565b34801561043c57600080fd5b5061016061147e565b34801561045157600080fd5b5061016061148d565b34801561046657600080fd5b5061019161149c565b34801561047b57600080fd5b506101606004803603602081101561049257600080fd5b50356114a2565b3480156104a557600080fd5b506101916114bd565b3480156104ba57600080fd5b506101916114c3565b3480156104cf57600080fd5b506101346114c9565b3480156104e457600080fd5b506102bd600480360360208110156104fb57600080fd5b50356115e5565b34801561050e57600080fd5b506101916004803603602081101561052557600080fd5b50356115f2565b34801561053857600080fd5b506101346004803603602081101561054f57600080fd5b50356001600160a01b0316611606565b3467016345785d8a00008110156105a75760405162461bcd60e51b815260040180806020018281038252602681526020018061316e6026913960400191505060405180910390fd5b3467016345785d8a0000810615610605576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920696e206d756c7469706c6573206f6620302e310000000000000000604482015290519081900360640190fd5b60008311801561061757506009548311155b610660576040805162461bcd60e51b8152602060048201526015602482015274125b98dbdc9c9958dd08149959995c9c995c881251605a1b604482015290519081900360640190fd5b6000838152602660209081526040808320543384526028909252909120546001600160a01b0390911690349061094357600980546001019081905533600090815260286020526040902090815542600680830191909155600490910182905560075490546106e691906106da90849063ffffffff61165e16565b9063ffffffff6116c016565b33600081815260286020818152604080842060078101969096556001808701889055600a90960180546001600160a01b038a166001600160a01b0319918216811790925560098054875260268552838720805490921690971790558452919052902001546107599163ffffffff61170216565b6001600160a01b03808416600081815260286020526040902060090192909255600154161415610898576107c661079c60646106da84600f63ffffffff61165e16565b6001546001600160a01b03166000908152602860205260409020600201549063ffffffff61170216565b6001546001600160a01b03166000908152602860205260408120600201919091555b6024548110156108925761085161080c6101906106da85600f63ffffffff61165e16565b602860006024858154811061081d57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600201549063ffffffff61170216565b602860006024848154811061086257fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600201556001016107e8565b50610908565b6001600160a01b038216600090815260296020908152604080832060085484529091529020546108ce908263ffffffff61170216565b6001600160a01b038316600090815260296020908152604080832060085484529091529020556108fd8261175c565b506109083382611b3e565b6040516001600160a01b0383169033907fddb5b955685e49590bf27ea3575cf7aea7a942422afa776dba9c6fd4ff3e655a90600090a3610bc4565b33600090815260286020526040902060070154156109a8576040805162461bcd60e51b815260206004820152601860248201527f6c696d6974206973207374696c6c2072656d61696e696e670000000000000000604482015290519081900360640190fd5b33600090815260286020526040902060040154811015610a0f576040805162461bcd60e51b815260206004820152601b60248201527f43616e6e6f7420696e76657374206c657373657220616d6f756e740000000000604482015290519081900360640190fd5b336000908152602860205260409020600a81015442600680840191909155600490920183905560075491546001600160a01b039091169350610a5791906106da90849061165e565b336000908152602860205260409020600781019190915560010154610a82908263ffffffff61170216565b336000908152602860205260409020600190810191909155546001600160a01b0383811691161415610b5457610ac761079c60646106da84600f63ffffffff61165e16565b6001546001600160a01b03166000908152602860205260408120600201919091555b602454811015610b4e57610b0d61080c6101906106da85600f63ffffffff61165e16565b6028600060248481548110610b1e57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060020155600101610ae9565b50610bc4565b6001600160a01b03821660009081526029602090815260408083206008548452909152902054610b8a908263ffffffff61170216565b6001600160a01b03831660009081526029602090815260408083206008548452909152902055610bb98261175c565b50610bc43382611b3e565b610c02610be160646106da6005548561165e90919063ffffffff16565b6008546000908152602760205260409020600301549063ffffffff61170216565b600854600090815260276020526040902060030155600254610c6090610c36906064906106da90859063ffffffff61165e16565b6001546001600160a01b03166000908152602860205260409020600501549063ffffffff61170216565b6001546001600160a01b03166000908152602860205260408120600501919091555b602454811015610d2657610ce5610ca083606463ffffffff6116c016565b6028600060248581548110610cb157fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020600501549063ffffffff61170216565b6028600060248481548110610cf657fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060050155600101610c82565b506000610d56678ac7230489e80000610d4a602554856116c090919063ffffffff16565b9063ffffffff61165e16565b600080546040805163a9059cbb60e01b81523360048201526024810185905290519394506001600160a01b039091169263a9059cbb92604480840193602093929083900390910190829087803b158015610daf57600080fd5b505af1158015610dc3573d6000803e3d6000fd5b505050506040513d6020811015610dd957600080fd5b505060085460009081526027602052604090206001015442118015610e13575060085460009081526027602052604090206002015460ff16155b15610e2057610e20611ffe565b604051829033907f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75390600090a3505050505050565b60248181548110610e6257fe5b6000918252602090912001546001600160a01b0316905081565b60085481565b6001546060906001600160a01b03163314610ed1576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b60005b602454811015610fb957826001600160a01b031660248281548110610ef557fe5b6000918252602090912001546001600160a01b03161415610fb157602480546000198101908110610f2257fe5b600091825260209091200154602480546001600160a01b039092169183908110610f4857fe5b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055602480546000198101908110610f8357fe5b600091825260209091200180546001600160a01b03191690556024805490610faf9060001983016130fd565b505b600101610ed4565b50602480548060200260200160405190810160405280929190818152602001828054801561101057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ff2575b505050505090505b919050565b60276020526000908152604090208054600182015460028301546003909301549192909160ff9091169084565b6010816004811061105757fe5b6002020180546001909101549091506001600160a01b031682565b6001546001600160a01b031633146110be576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b600054600154604080516370a0823160e01b815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b15801561111657600080fd5b505afa15801561112a573d6000803e3d6000fd5b505050506040513d602081101561114057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561119157600080fd5b505af11580156111a5573d6000803e3d6000fd5b505050506040513d60208110156111bb57600080fd5b5050565b602960209081526000928352604080842090915290825290205481565b602860205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a909a0154989997989697959694959394929391929091906001600160a01b03168b565b6001546060906001600160a01b0316331461128d576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b602454600411156112e457602480546001810182556000919091527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec40180546001600160a01b0319166001600160a01b0384161790555b6024805480602002602001604051908101604052809291908181526020018280548015611010576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610ff25750505050509050919050565b6001546001600160a01b03163314611390576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b8060011480156113a2575082600a5410155b156114075782156114025782471061140257600a546113c7908463ffffffff6120fd16565b600a556040516001600160a01b0383169084156108fc029085906000818181858888f19350505050158015611400573d6000803e3d6000fd5b505b611479565b806002148015611419575082600b5410155b156114795782156114795782471061147957600b5461143e908463ffffffff6120fd16565b600b556040516001600160a01b0383169084156108fc029085906000818181858888f19350505050158015611477573d6000803e3d6000fd5b505b505050565b6000546001600160a01b031681565b6001546001600160a01b031681565b600b5481565b6026602052600090815260409020546001600160a01b031681565b60095481565b600a5481565b336114d38161213f565b6001600160a01b03811660009081526028602052604090206008810154600382015460028301546005909301549092019091010180156111bb578047101561154c5760405162461bcd60e51b815260040180806020018281038252603381526020018061313b6033913960400191505060405180910390fd5b6001600160a01b0382166000818152602860205260408082206005810183905560028101839055600381018390556008018290555183156108fc0291849190818181858888f193505050501580156115a8573d6000803e3d6000fd5b504281836001600160a01b03167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45050565b6018816004811061105757fe5b602081600481106115ff57fe5b0154905081565b6001546001600160a01b03163314611652576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b61165b81612458565b50565b60008261166d575060006116ba565b8282028284828161167a57fe5b04146116b75760405162461bcd60e51b81526004018080602001828103825260218152602001806131946021913960400191505060405180910390fd5b90505b92915050565b60006116b783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124f9565b6000828201838110156116b7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b03821661177457506000611018565b6001600160a01b0382166000908152602960209081526040808320600854845290915290205460165481116117ad576000915050611018565b6011546010546013546012546015546014546001600160a01b03958616959384169390911690848711156119e1576011546001600160a01b038a81169116141561180d5786601060005b6002020155506001965061101895505050505050565b6013546001600160a01b038a81169116141561186d57601180546001600160a01b0319166001600160a01b038b1617905586601060006002020155601380546001600160a01b0319166001600160a01b03881617905584601060016117f7565b6015546001600160a01b038a81169116141561191d57601180546001600160a01b0319166001600160a01b038b1617905586601060006002020155601380546001600160a01b0319166001600160a01b03881617905584601060015b60020201600001819055508360106002600481106118e357fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260106002600481106117f757fe5b601180546001600160a01b0319166001600160a01b038b1617905586601060006002020155601380546001600160a01b0319166001600160a01b03881617905584601060015b600202016000018190555083601060026004811061197d57fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260106002600481106119b757fe5b6002020155601780546001600160a01b0319166001600160a01b03841617905580601060036117f7565b601254871115611a6b576013546001600160a01b038a811691161415611a0b5786601060016117f7565b6015546001600160a01b038a811691161415611a4657601380546001600160a01b0319166001600160a01b038b1617905586601060016118c9565b601380546001600160a01b0319166001600160a01b038b161790558660106001611963565b601454871115611ae3576015546001600160a01b038a811691161415611a955786601060026117f7565b601580546001600160a01b0319166001600160a01b038b16179055866010600280020155601780546001600160a01b0319166001600160a01b03841617905580601060036002020155611b32565b601654871115611b32576017546001600160a01b038a811691161415611b0d5786601060036117f7565b601780546001600160a01b0319166001600160a01b038b1617905586601060036117f7565b50505050505050919050565b6001600160a01b03808316600090815260286020526040808220600a015490921680825291902054600f10611deb57611b8360646106da84601e63ffffffff61165e16565b6001600160a01b03821660009081526028602052604090206007015410611cb257611be5611bbd60646106da85601e63ffffffff61165e16565b6001600160a01b0383166000908152602860205260409020600701549063ffffffff6120fd16565b6001600160a01b038216600090815260286020526040902060070155611c42611c1a60646106da85601e63ffffffff61165e16565b6001600160a01b0383166000908152602860205260409020600201549063ffffffff61170216565b6001600160a01b038216600090815260286020526040902060020155611c7460646106da84601e63ffffffff61165e16565b816001600160a01b0316846001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4611402565b6001600160a01b03811660009081526028602052604090206007015415611dca576001600160a01b03811660009081526028602052604090206007810154600290910154611d059163ffffffff61170216565b6001600160a01b0382166000908152602860205260409020600281019190915560070154611d6290611d5390611d4760646106da87601e63ffffffff61165e16565b9063ffffffff6120fd16565b600a549063ffffffff61170216565b600a556001600160a01b03808216600081815260286020908152604091829020600701548251428152925190948816926000805160206131b583398151915292908290030190a46001600160a01b038116600090815260286020526040812060070155611402565b611de3611d5360646106da85601e63ffffffff61165e16565b600a55611479565b611e0160646106da84601463ffffffff61165e16565b6001600160a01b03821660009081526028602052604090206007015410611ee057611e3b611bbd60646106da85601463ffffffff61165e16565b6001600160a01b038216600090815260286020526040902060070155611e70611c1a60646106da85601463ffffffff61165e16565b6001600160a01b038216600090815260286020526040902060020155611ea260646106da84601463ffffffff61165e16565b816001600160a01b0316846001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4611479565b6001600160a01b03811660009081526028602052604090206007015415611fdd576001600160a01b03811660009081526028602052604090206007810154600290910154611f339163ffffffff61170216565b6001600160a01b0382166000908152602860205260409020600281019190915560070154611f7590611d5390611d4760646106da87601463ffffffff61165e16565b600a556001600160a01b03808216600081815260286020908152604091829020600701548251428152925190948816926000805160206131b583398151915292908290030190a46001600160a01b038116600090815260286020526040812060070155611479565b611ff6611d5360646106da85601463ffffffff61165e16565b600a55505050565b600854600081815260276020526040902060030154678ac7230489e8000081106120b8576000828152602760205260408120600201805460ff1916600117905561204661259b565b600880546001908101909155909301600081815260276020526040902042908190556003549194925061207e9163ffffffff61170216565b6000848152602760205260409020600101556120a0828263ffffffff6120fd16565b600084815260276020526040902060030155506111bb565b600082815260276020526040902042908190556003546120de919063ffffffff61170216565b6000928352602760205260409092206001810192909255600390910155565b60006116b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b45565b6004546001600160a01b0382166000908152602860205260408120600601549091829101421115611479576001600160a01b03831660009081526028602052604081206006015461219790429063ffffffff6120fd16565b905060006121be6004546106da60045485816121af57fe5b8691900663ffffffff6120fd16565b6001600160a01b0386166000908152602860208190526040909120600401549195509093506121f490849063ffffffff6116c016565b9050612206818563ffffffff61165e16565b6001600160a01b0386166000908152602860205260409020600701541061239e5761226261223a828663ffffffff61165e16565b6001600160a01b0387166000908152602860205260409020600701549063ffffffff6120fd16565b6001600160a01b0386166000908152602860205260409020600701556122b9612291828663ffffffff61165e16565b6001600160a01b0387166000908152602860205260409020600501549063ffffffff61170216565b6001600160a01b03861660009081526028602052604090206005015560045461231f906122f79084816122e857fe5b8591900663ffffffff6120fd16565b6001600160a01b0387166000908152602860205260409020600601549063ffffffff61170216565b6001600160a01b0386166000908152602860205260409020600601554261234c828663ffffffff61165e16565b6040516001600160a01b038816907f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a90600090a461239985612394838763ffffffff61165e16565b612b9f565b612451565b6001600160a01b03851660009081526028602052604090206007015415612451576001600160a01b0385166000908152602860205260408120600781018054929055600501546123f4908263ffffffff61170216565b6001600160a01b0387166000818152602860205260408082206005810194909455426006909401849055518492917f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a91a461244f8682612b9f565b505b5050505050565b6001600160a01b03811661249d5760405162461bcd60e51b81526004018080602001828103825260248152602001806131d56024913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b790600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081836125855760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561254a578181015183820152602001612532565b50505050905090810190601f1680156125775780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161259157fe5b0495945050505050565b60085460009081526027602052604081206003015481906125ca906064906106da90600a63ffffffff61165e16565b90506000805b6004811015612b3d576000601082600481106125e857fe5b60020201600101546001600160a01b031614612b355761262260646106da600c846004811061261357fe5b0154869063ffffffff61165e16565b602860006010846004811061263357fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070154106127e4576126c061268460646106da600c856004811061267557fe5b0154879063ffffffff61165e16565b602860006010856004811061269557fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070154906120fd565b60286000601084600481106126d157fe5b60020201600101546001600160a01b0316815260208101919091526040016000206007015561274a61270e60646106da600c856004811061267557fe5b602860006010856004811061271f57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015490611702565b602860006010846004811061275b57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015561279560646106da600c846004811061261357fe5b601082600481106127a257fe5b60020201600101546040516001600160a01b03909116907f253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb90600090a3612a21565b60286000601083600481106127f557fe5b60020201600101546001600160a01b0316815260208101919091526040016000206007015415612a0557612883602860006010846004811061283357fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060070154602860006010856004811061271f57fe5b602860006010846004811061289457fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000206008018190555061294561293660286000601085600481106128ed57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070154611d4760646106da600c876004811061292757fe5b0154899063ffffffff61165e16565b600b549063ffffffff61170216565b600b55602860006010836004811061295957fe5b60020201600101546001600160a01b031681526020810191909152604001600020600701546010826004811061298b57fe5b60020201600101546040516001600160a01b03909116907f253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb90600090a3600060286000601084600481106129db57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060070155612a21565b612a1d61293660646106da600c856004811061267557fe5b600b555b612a46612a3960646106da600c856004811061267557fe5b839063ffffffff61170216565b915060108160048110612a5557fe5b60020201600101546001600160a01b031660188260048110612a7357fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060108160048110612aab57fe5b600202015460188260048110612abd57fe5b6002020155612ad760646106da600c846004811061261357fe5b60208260048110612ae457fe5b0155600060108260048110612af557fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060108260048110612b2f57fe5b60020201555b6001016125d0565b509150505b90565b60008184841115612b975760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561254a578181015183820152602001612532565b505050900390565b6001600160a01b038083166000908152602860205260408120600a015490911690612bd183600263ffffffff6116c016565b905060005b6019811015612451576001600160a01b038316156130945780612e5c57612c0484600263ffffffff6116c016565b6001600160a01b03841660009081526028602052604090206007015410612d2457612c61612c3985600263ffffffff6116c016565b6001600160a01b0385166000908152602860205260409020600701549063ffffffff6120fd16565b6001600160a01b038416600090815260286020526040902060070155612cb9612c9185600263ffffffff6116c016565b6001600160a01b0385166000908152602860205260409020600301549063ffffffff61170216565b6001600160a01b038416600090815260286020526040902060030155612ce684600263ffffffff6116c016565b836001600160a01b0316866001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4612e34565b6001600160a01b03831660009081526028602052604090206007015415612e1c576001600160a01b03831660009081526028602052604090206007810154600390910154612d779163ffffffff61170216565b6001600160a01b0384166000908152602860205260409020600381019190915560070154612db49061293690611d4787600263ffffffff6116c016565b600b556001600160a01b03808416600081815260286020908152604091829020600701548251428152925190948a16926000805160206131b583398151915292908290030190a46001600160a01b038316600090815260286020526040812060070155612e34565b612e3061293685600263ffffffff6116c016565b600b555b612e55612e4885600263ffffffff6116c016565b839063ffffffff6120fd16565b915061308f565b6001600160a01b038316600090815260286020526040902060090154600182011161307757612e9284601463ffffffff6116c016565b6001600160a01b03841660009081526028602052604090206007015410612f6257612ec7612c3985601463ffffffff6116c016565b6001600160a01b038416600090815260286020526040902060070155612ef7612c9185601463ffffffff6116c016565b6001600160a01b038416600090815260286020526040902060030155612f2484601463ffffffff6116c016565b836001600160a01b0316866001600160a01b03166000805160206131b5833981519152426040518082815260200191505060405180910390a4613072565b6001600160a01b0383166000908152602860205260409020600701541561305a576001600160a01b03831660009081526028602052604090206007810154600390910154612fb59163ffffffff61170216565b6001600160a01b0384166000908152602860205260409020600381019190915560070154612ff29061293690611d4787601463ffffffff6116c016565b600b556001600160a01b03808416600081815260286020908152604091829020600701548251428152925190948a16926000805160206131b583398151915292908290030190a46001600160a01b038316600090815260286020526040812060070155613072565b61306e61293685601463ffffffff6116c016565b600b555b61308f565b61308b61293685601463ffffffff6116c016565b600b555b6130d4565b6130cc612936836130c06130af88601463ffffffff6116c016565b610d4a60198763ffffffff6120fd16565b9063ffffffff61170216565b600b55612451565b6001600160a01b039283166000908152602860205260409020600a015490921691600101612bd6565b81548183558181111561147957600083815260209020611479918101908301612b4291905b808211156131365760008155600101613122565b509056fe436f6e747261637420646f65736e277420686176652073756666696369656e7420616d6f756e7420746f206769766520796f754d696e696d756d20636f6e747269627574696f6e20616d6f756e7420697320302e3120455448536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77e8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df213174e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a72315820bd5143f969f48637188416e879788f07461e62878cdc26380943fb2caa92538064736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000068856ec2c630dddbfbd0fa9f598350c7c60ab6e6000000000000000000000000b09613767bc5bbc25f4186fb528b6fb12adc295b
-----Decoded View---------------
Arg [0] : _admin (address): 0x68856Ec2C630DDdBFBd0fa9f598350c7C60ab6e6
Arg [1] : _tokenToBeUsed (address): 0xB09613767BC5bBC25f4186fb528b6fB12aDC295B
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000068856ec2c630dddbfbd0fa9f598350c7c60ab6e6
Arg [1] : 000000000000000000000000b09613767bc5bbc25f4186fb528b6fb12adc295b
Deployed Bytecode Sourcemap
5707:26213:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9311:15;9324:1;9311:12;:15::i;:::-;5707:26213;6445:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6445:24:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6445:24:0;;:::i;:::-;;;;-1:-1:-1;;;;;6445:24:0;;;;;;;;;;;;;;6062:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6062:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;30948:380;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30948:380:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30948:380:0;-1:-1:-1;;;;;30948:380:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;30948:380:0;;;;;;;;;;;;;;;;;9392:3857;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9392:3857:0;;:::i;6601:56::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6601:56:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6302:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6302:33:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6302:33:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;6302:33:0;;;;;;;;;;;;;;;;30584:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30584:129:0;;;:::i;6722:88::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6722:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6722:88:0;;;;;;;;:::i;6664:51::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6664:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6664:51:0;-1:-1:-1;;;;;6664:51:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6664:51:0;;;;;;;;;;;;;;30725:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30725:211:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30725:211:0;-1:-1:-1;;;;;30725:211:0;;:::i;29878:694::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29878:694:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29878:694:0;;;-1:-1:-1;;;;;29878:694:0;;;;;;;;;;:::i;5762:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5762:23:0;;;:::i;5794:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5794:20:0;;;:::i;6151:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6151:21:0;;;:::i;6553:41::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6553:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6553:41:0;;:::i;6091:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6091:25:0;;;:::i;6123:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6123:21:0;;;:::i;21630:1071::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21630:1071:0;;;:::i;6348:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6348:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6348:37:0;;:::i;6392:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6392:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6392:46:0;;:::i;31475:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31475:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31475:111:0;-1:-1:-1;;;;;31475:111:0;;:::i;9392:3857::-;9468:9;8631:18;8623:4;:26;;8615:77;;;;-1:-1:-1;;;8615:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9499:9;8855:18;9499:9;8848:25;:30;8840:67;;;;;-1:-1:-1;;;8840:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9566:1;9552:11;:15;:44;;;;;9586:10;;9571:11;:25;;9552:44;9544:78;;;;;-1:-1:-1;;;9544:78:0;;;;;;;;;;;;-1:-1:-1;;;9544:78:0;;;;;;;;;;;;;;;9633:17;9653:21;;;:8;:21;;;;;;;;;9739:10;9732:18;;:6;:18;;;;;;:21;-1:-1:-1;;;;;9653:21:0;;;;9708:9;;9728:2577;;9813:10;:12;;;;;;;;9847:10;9813;9840:18;;;:6;:18;;;;;:34;;;9926:3;9889:34;;;;:40;;;;9944:33;;;;:42;;;10066:12;;10049:11;;10038:41;;10066:12;10038:23;;9980:6;;10038:23;:10;:23;:::i;:::-;:27;:41;:27;:41;:::i;:::-;10008:10;10001:18;;;;:6;:18;;;;;;;;:34;;;:78;;;;10094:34;;;;:43;;;10152:27;;;;:39;;-1:-1:-1;;;;;10152:39:0;;-1:-1:-1;;;;;;10152:39:0;;;;;;;;10215:10;;;10206:20;;:8;:20;;;;;:33;;;;;;;;;;10302:17;;;;;;;:31;;:38;;;:35;:38;:::i;:::-;-1:-1:-1;;;;;10268:17:0;;;;;;;:6;:17;;;;;:31;;:72;;;;10385:5;;;10372:18;10369:587;;;10441:56;10473:23;10492:3;10473:14;:6;10484:2;10473:14;:10;:14;:::i;:23::-;10448:5;;-1:-1:-1;;;;;10448:5:0;10441:13;;;;:6;:13;;;;;:27;;;;:56;:31;:56;:::i;:::-;10418:5;;-1:-1:-1;;;;;10418:5:0;10411:13;;;;:6;:13;;;;;:27;;:86;;;;10516:173;10532:6;:13;10530:15;;10516:173;;;10609:60;10645:23;10664:3;10645:14;:6;10656:2;10645:14;:10;:14;:::i;:23::-;10609:6;:17;10616:6;10623:1;10616:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10616:9:0;10609:17;;;;;;;;;;;;:31;;;;:60;:35;:60;:::i;:::-;10575:6;:17;10582:6;10589:1;10582:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10582:9:0;10575:17;;;;;;;;;;;;:31;;:94;10582:9;10547:3;10516:173;;;;10369:587;;;-1:-1:-1;;;;;10784:20:0;;;;;;:9;:20;;;;;;;;10805:7;;10784:29;;;;;;;:39;:51;;10828:6;10784:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;10742:20:0;;;;;;:9;:20;;;;;;;;10763:7;;10742:29;;;;;;;:93;10854:27;10752:9;10854:16;:27::i;:::-;;10900:40;10921:10;10933:6;10900:20;:40::i;:::-;10995;;-1:-1:-1;;;;;10995:40:0;;;11013:10;;10995:40;;;;;9728:2577;;;11148:10;11141:18;;;;:6;:18;;;;;:34;;;:39;11133:76;;;;;-1:-1:-1;;;11133:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11249:10;11242:18;;;;:6;:18;;;;;:33;;;11232:43;;;11224:83;;;;;-1:-1:-1;;;11224:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11341:10;11334:18;;;;:6;:18;;;;;:27;;;;11427:3;11390:34;;;;:40;;;;-1:-1:-1;11445:33:0;;;:42;;;11567:12;;11550:11;;-1:-1:-1;;;;;11334:27:0;;;;-1:-1:-1;11539:41:0;;11567:12;11539:23;;11445:42;;11539:10;:23::i;:41::-;11509:10;11502:18;;;;:6;:18;;;;;:34;;;:78;;;;11632:34;;;:46;;11671:6;11632:46;:38;:46;:::i;:::-;11602:10;11595:18;;;;:6;:18;;;;;:34;;;;:83;;;;11723:5;-1:-1:-1;;;;;11710:18:0;;;11723:5;;11710:18;11707:587;;;11779:56;11811:23;11830:3;11811:14;:6;11822:2;11811:14;:10;:14;:::i;11779:56::-;11756:5;;-1:-1:-1;;;;;11756:5:0;11749:13;;;;:6;:13;;;;;:27;;:86;;;;11854:173;11870:6;:13;11868:15;;11854:173;;;11947:60;11983:23;12002:3;11983:14;:6;11994:2;11983:14;:10;:14;:::i;11947:60::-;11913:6;:17;11920:6;11927:1;11920:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11920:9:0;11913:17;;;;;;;;;;;;:31;;:94;11920:9;11885:3;11854:173;;;;11707:587;;;-1:-1:-1;;;;;12122:20:0;;;;;;:9;:20;;;;;;;;12143:7;;12122:29;;;;;;;:39;:51;;12166:6;12122:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;12080:20:0;;;;;;:9;:20;;;;;;;;12101:7;;12080:29;;;;;;;:93;12192:27;12090:9;12192:16;:27::i;:::-;;12238:40;12259:10;12271:6;12238:20;:40::i;:::-;12395:58;12419:33;12448:3;12419:24;12430:12;;12419:6;:10;;:24;;;;:::i;:33::-;12401:7;;12395:14;;;;:5;:14;;;;;:19;;;;:58;:23;:58;:::i;:::-;12379:7;;12373:14;;;;:5;:14;;;;;:19;;:80;12578:8;;12537:60;;12567:29;;12592:3;;12567:20;;:6;;:20;:10;:20;:::i;:29::-;12544:5;;-1:-1:-1;;;;;12544:5:0;12537:13;;;;:6;:13;;;;;:25;;;;:60;:29;:60;:::i;:::-;12516:5;;-1:-1:-1;;;;;12516:5:0;12509:13;;;;:6;:13;;;;;:25;;:88;;;;12657:152;12673:6;:13;12671:15;;12657:152;;;12743:50;12777:15;:6;12788:3;12777:15;:10;:15;:::i;:::-;12743:6;:17;12750:6;12757:1;12750:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12750:9:0;12743:17;;;;;;;;;;;;:29;;;;:50;:33;:50;:::i;:::-;12711:6;:17;12718:6;12725:1;12718:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12718:9:0;12711:17;;;;;;;;;;;;:29;;:82;12718:9;12688:3;12657:152;;;;12862:21;12886:27;12907:5;12886:16;12897:4;;12886:6;:10;;:16;;;;:::i;:::-;:20;:27;:20;:27;:::i;:::-;12928:10;;;:45;;;-1:-1:-1;;;12928:45:0;;12948:10;12928:45;;;;;;;;;;;;12862:51;;-1:-1:-1;;;;;;12928:10:0;;;;:19;;:45;;;;;;;;;;;;;;;;;;:10;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;12928:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12928:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;13070:7:0;;13064:14;;;;:5;12928:45;13064:14;;;;:22;;;13058:3;:28;:61;;;;-1:-1:-1;13096:7:0;;13090:14;;;;:5;:14;;;;;:20;;;;;:29;13058:61;13054:118;;;13140:16;:14;:16::i;:::-;13205:36;;13234:6;;13222:10;;13205:36;;;;;8918:1;;;8703;9392:3857;;:::o;6445:24::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6445:24:0;;-1:-1:-1;6445:24:0;:::o;6062:22::-;;;;:::o;30948:380::-;9065:5;;31018:16;;-1:-1:-1;;;;;9065:5:0;9051:10;:19;9043:42;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;;;;31052:6;31048:247;31066:6;:13;31062:17;;31048:247;;;31116:13;-1:-1:-1;;;;;31103:26:0;:6;31110:1;31103:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31103:9:0;:26;31100:184;;;31162:6;31169:13;;-1:-1:-1;;31169:15:0;;;31162:23;;;;;;;;;;;;;;;;31150:6;:9;;-1:-1:-1;;;;;31162:23:0;;;;31157:1;;31150:9;;;;;;;;;;;;;;;:35;;-1:-1:-1;;;;;;31150:35:0;-1:-1:-1;;;;;31150:35:0;;;;;;;;;;31211:6;31218:13;;-1:-1:-1;;31218:15:0;;;31211:23;;;;;;;;;;;;;;;31204:30;;-1:-1:-1;;;;;;31204:30:0;;;31253:6;:15;;;;;-1:-1:-1;;31253:15:0;;;:::i;:::-;;31100:184;31081:3;;31048:247;;;;31312:6;31305:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31305:13:0;;;;;;;;;;;;;;;;;;;;;;;9096:1;30948:380;;;:::o;6601:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6302:33::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6302:33:0;;:::o;30584:129::-;9065:5;;-1:-1:-1;;;;;9065:5:0;9051:10;:19;9043:42;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;;;;30643:10;;;30663:5;30669:35;;;-1:-1:-1;;;30669:35:0;;30698:4;30669:35;;;;;;-1:-1:-1;;;;;30643:10:0;;;;:19;;30663:5;;30643:10;;30669:20;;:35;;;;;;;;;;;;;;;30643:10;30669:35;;;5:2:-1;;;;30:1;27;20:12;5:2;30669:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30669:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30669:35:0;30643:62;;;-1:-1:-1;;;;;;30643:62:0;;;;;;;-1:-1:-1;;;;;30643:62:0;;;;;;;;;;;;;;;;;;;;30669:35;;30643:62;;;;;;;-1:-1:-1;30643:62:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;30643:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30643:62:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;30584:129:0:o;6722:88::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;6664:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6664:51:0;;:::o;30725:211::-;9065:5;;30791:17;;-1:-1:-1;;;;;9065:5:0;9051:10;:19;9043:42;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;;;;30825:6;:13;30841:1;-1:-1:-1;30822:83:0;;;30863:6;27:10:-1;;39:1;23:18;;45:23;;-1:-1;30863:26:0;;;;;;;;-1:-1:-1;;;;;;30863:26:0;-1:-1:-1;;;;;30863:26:0;;;;;30822:83;30922:6;30915:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30915:13:0;;;;;;;;;;;;;;;;;;;;;;30725:211;;;:::o;29878:694::-;9065:5;;-1:-1:-1;;;;;9065:5:0;9051:10;:19;9043:42;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;;;;29993:9;30006:1;29993:14;:31;;;;;30017:7;30011:2;;:13;;29993:31;29990:575;;;30044:11;;30041:218;;30104:7;30079:21;:32;30076:168;;30141:2;;:15;;30148:7;30141:15;:6;:15;:::i;:::-;30136:2;:20;30179:45;;-1:-1:-1;;;;;30179:36:0;;;:45;;;;;30216:7;;30179:45;;;;30216:7;30179:36;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30179:45:0;30076:168;29990:575;;;30288:9;30301:1;30288:14;:31;;;;;30312:7;30306:2;;:13;;30288:31;30285:280;;;30339:11;;30336:218;;30399:7;30374:21;:32;30371:168;;30436:2;;:15;;30443:7;30436:15;:6;:15;:::i;:::-;30431:2;:20;30474:45;;-1:-1:-1;;;;;30474:36:0;;;:45;;;;;30511:7;;30474:45;;;;30511:7;30474:36;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30474:45:0;30371:168;29878:694;;;:::o;5762:23::-;;;-1:-1:-1;;;;;5762:23:0;;:::o;5794:20::-;;;-1:-1:-1;;;;;5794:20:0;;:::o;6151:21::-;;;;:::o;6553:41::-;;;;;;;;;;;;-1:-1:-1;;;;;6553:41:0;;:::o;6091:25::-;;;;:::o;6123:21::-;;;;:::o;21630:1071::-;21717:10;21785:28;21717:10;21785:12;:28::i;:::-;-1:-1:-1;;;;;22057:22:0;;21834:17;22057:22;;;:6;:22;;;;;:40;;;;21993;;;;21933:36;;;;21875:34;;;;;:94;;;:158;;;:222;22180:13;;22177:517;;22243:9;22218:21;:34;;22210:98;;;;-1:-1:-1;;;22210:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22325:22:0;;22362:1;22325:22;;;:6;:22;;;;;;:34;;;:38;;;22378:36;;;:40;;;-1:-1:-1;22433:40:0;;:44;;;22492:40;;:44;;;22565:52;;;;;;22607:9;;22565:52;;22362:1;22565:52;22607:9;22325:22;22565:52;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22565:52:0;22678:3;22667:9;22651:14;-1:-1:-1;;;;;22637:45:0;;;;;;;;;;;21630:1071;;:::o;6348:37::-;;;;;;;;;6392:46;;;;;;;;;;;;;-1:-1:-1;6392:46:0;:::o;31475:111::-;9065:5;;-1:-1:-1;;;;;9065:5:0;9051:10;:19;9043:42;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;-1:-1:-1;;;9043:42:0;;;;;;;;;;;;;;;31550:28;31569:8;31550:18;:28::i;:::-;31475:111;:::o;2650:471::-;2708:7;2953:6;2949:47;;-1:-1:-1;2983:1:0;2976:8;;2949:47;3020:5;;;3024:1;3020;:5;:1;3044:5;;;;;:10;3036:56;;;;-1:-1:-1;;;3036:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3112:1;-1:-1:-1;2650:471:0;;;;;:::o;3589:132::-;3647:7;3674:39;3678:1;3681;3674:39;;;;;;;;;;;;;;;;;:3;:39::i;1165:181::-;1223:7;1255:5;;;1279:6;;;;1271:46;;;;;-1:-1:-1;;;1271:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;23600:4066;23675:4;-1:-1:-1;;;;;23701:20:0;;23697:64;;-1:-1:-1;23744:5:0;23737:12;;23697:64;-1:-1:-1;;;;;23788:15:0;;23773:12;23788:15;;;:9;:15;;;;;;;;23804:7;;23788:24;;;;;;;:34;23912:14;:18;:26;-1:-1:-1;23908:70:0;;23961:5;23954:12;;;;;23908:70;24010:19;;:11;24059:18;24119:19;;:14;24169:18;24228:19;;:14;24277:18;-1:-1:-1;;;;;24010:19:0;;;;24119;;;;24228;;;;24369:25;;;24365:3294;;;24416:19;;-1:-1:-1;;;;;24416:27:0;;;:19;;:27;24412:1395;;;24484:4;24463:11;24475:1;24463:14;;;;:25;-1:-1:-1;24514:4:0;;-1:-1:-1;24507:11:0;;-1:-1:-1;;;;;;24507:11:0;24412:1395;24637:19;;-1:-1:-1;;;;;24637:27:0;;;:19;;:27;24633:1174;;;24686:19;:26;;-1:-1:-1;;;;;;24686:26:0;-1:-1:-1;;;;;24686:26:0;;;;;24752:4;24686:11;-1:-1:-1;24731:14:0;;;:25;24775:19;:31;;-1:-1:-1;;;;;;24775:31:0;-1:-1:-1;;;;;24775:31:0;;;;;24846:8;24775:11;-1:-1:-1;24825:14:0;;24633:1174;24994:19;;-1:-1:-1;;;;;24994:27:0;;;:19;;:27;24990:817;;;25042:19;:26;;-1:-1:-1;;;;;;25042:26:0;-1:-1:-1;;;;;25042:26:0;;;;;25108:4;25042:11;-1:-1:-1;25087:14:0;;;:25;25131:19;:31;;-1:-1:-1;;;;;;25131:31:0;-1:-1:-1;;;;;25131:31:0;;;;;25202:8;25131:11;-1:-1:-1;25181:14:0;;;;:18;;:29;;;;25251:10;25229:11;25241:1;25229:14;;;;;;;;;;:19;;;:32;;;;;-1:-1:-1;;;;;25229:32:0;;;;;-1:-1:-1;;;;;25229:32:0;;;;;;25301:9;25280:11;25292:1;25280:14;;;;;;24990:817;25395:19;:26;;-1:-1:-1;;;;;;25395:26:0;-1:-1:-1;;;;;25395:26:0;;;;;25461:4;25395:11;-1:-1:-1;25440:14:0;;;:25;25484:19;:31;;-1:-1:-1;;;;;;25484:31:0;-1:-1:-1;;;;;25484:31:0;;;;;25555:8;25484:11;-1:-1:-1;25534:14:0;;;;:18;;:29;;;;25604:10;25582:11;25594:1;25582:14;;;;;;;;;;:19;;;:32;;;;;-1:-1:-1;;;;;25582:32:0;;;;;-1:-1:-1;;;;;25582:32:0;;;;;;25654:9;25633:11;25645:1;25633:14;;;;;;;;;;:30;25682:19;:31;;-1:-1:-1;;;;;;25682:31:0;-1:-1:-1;;;;;25682:31:0;;;;;25753:8;25682:11;25694:1;25732:14;;24365:3294;25901:14;:18;25894:25;;25890:1769;;;25941:19;;-1:-1:-1;;;;;25941:27:0;;;:19;;:27;25937:826;;;26009:4;25988:11;26000:1;25988:14;;25937:826;26148:19;;-1:-1:-1;;;;;26148:27:0;;;:19;;:27;26145:618;;;26196:19;:26;;-1:-1:-1;;;;;;26196:26:0;-1:-1:-1;;;;;26196:26:0;;;;;26262:4;26196:11;-1:-1:-1;26241:14:0;;26145:618;26449:19;:26;;-1:-1:-1;;;;;;26449:26:0;-1:-1:-1;;;;;26449:26:0;;;;;26515:4;26449:11;-1:-1:-1;26494:14:0;;25890:1769;26850:14;:18;26843:25;;26840:819;;;26887:19;;-1:-1:-1;;;;;26887:27:0;;;:19;;:27;26884:344;;;26956:4;26935:11;26947:1;26935:14;;26884:344;27044:19;:26;;-1:-1:-1;;;;;;27044:26:0;-1:-1:-1;;;;;27044:26:0;;;;;27110:4;27044:11;27056:1;27089:14;;;:25;27133:19;:31;;-1:-1:-1;;;;;;27133:31:0;-1:-1:-1;;;;;27133:31:0;;;;;27204:8;27133:11;27145:1;27183:14;;;:29;26840:819;;;27322:14;:18;27315:25;;27311:348;;;27363:19;;-1:-1:-1;;;;;27363:27:0;;;:19;;:27;27359:289;;;27431:4;27410:11;27422:1;27410:14;;27359:289;27532:19;:26;;-1:-1:-1;;;;;;27532:26:0;-1:-1:-1;;;;;27532:26:0;;;;;27598:4;27532:11;27544:1;27577:14;;27359:289;23600:4066;;;;;;;;;;:::o;13259:2492::-;-1:-1:-1;;;;;13382:22:0;;;13358:21;13382:22;;;:6;:22;;;;;;:31;;;;;;13437:21;;;;;;:24;13464:2;-1:-1:-1;13434:2310:0;;13527:23;13546:3;13527:14;:6;13538:2;13527:14;:10;:14;:::i;:23::-;-1:-1:-1;;;;;13486:21:0;;;;;;:6;:21;;;;;:37;;;:64;13482:1105;;13611:66;13653:23;13672:3;13653:14;:6;13664:2;13653:14;:10;:14;:::i;:23::-;-1:-1:-1;;;;;13611:21:0;;;;;;:6;:21;;;;;:37;;;;:66;:41;:66;:::i;:::-;-1:-1:-1;;;;;13571:21:0;;;;;;:6;:21;;;;;:37;;:106;13734:64;13774:23;13793:3;13774:14;:6;13785:2;13774:14;:10;:14;:::i;:23::-;-1:-1:-1;;;;;13734:21:0;;;;;;:6;:21;;;;;:35;;;;:64;:39;:64;:::i;:::-;-1:-1:-1;;;;;13696:21:0;;;;;;:6;:21;;;;;:35;;:102;13891:23;13910:3;13891:14;:6;13902:2;13891:14;:10;:14;:::i;:23::-;13876:13;-1:-1:-1;;;;;13836:84:0;13860:14;-1:-1:-1;;;;;13836:84:0;-1:-1:-1;;;;;;;;;;;13916:3:0;13836:84;;;;;;;;;;;;;;;;;;13482:1105;;;-1:-1:-1;;;;;13982:21:0;;;;;;:6;:21;;;;;:37;;;:41;13979:608;;-1:-1:-1;;;;;14122:21:0;;;;;;:6;:21;;;;;:37;;;;14082:35;;;;;:78;;;:39;:78;:::i;:::-;-1:-1:-1;;;;;14044:21:0;;;;;;:6;:21;;;;;:35;;;:116;;;;14219:37;;;14184:74;;14191:66;;:23;14210:3;14191:14;:6;14202:2;14191:14;:10;:14;:::i;:23::-;:27;:66;:27;:66;:::i;:::-;14184:2;;;:74;:6;:74;:::i;:::-;14179:2;:79;-1:-1:-1;;;;;14337:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;14282:98;;14376:3;14282:98;;;;14337:37;;14282:98;;;-1:-1:-1;;;;;;;;;;;14282:98:0;;;;;;;;-1:-1:-1;;;;;14399:21:0;;14439:1;14399:21;;;:6;:21;;;;;:37;;:41;13979:608;;;14500:31;14507:23;14526:3;14507:14;:6;14518:2;14507:14;:10;:14;:::i;14500:31::-;14495:2;:36;13434:2310;;;14673:23;14692:3;14673:14;:6;14684:2;14673:14;:10;:14;:::i;:23::-;-1:-1:-1;;;;;14632:21:0;;;;;;:6;:21;;;;;:37;;;:64;14628:1105;;14757:66;14799:23;14818:3;14799:14;:6;14810:2;14799:14;:10;:14;:::i;14757:66::-;-1:-1:-1;;;;;14717:21:0;;;;;;:6;:21;;;;;:37;;:106;14880:64;14920:23;14939:3;14920:14;:6;14931:2;14920:14;:10;:14;:::i;14880:64::-;-1:-1:-1;;;;;14842:21:0;;;;;;:6;:21;;;;;:35;;:102;15037:23;15056:3;15037:14;:6;15048:2;15037:14;:10;:14;:::i;:23::-;15022:13;-1:-1:-1;;;;;14982:84:0;15006:14;-1:-1:-1;;;;;14982:84:0;-1:-1:-1;;;;;;;;;;;15062:3:0;14982:84;;;;;;;;;;;;;;;;;;14628:1105;;;-1:-1:-1;;;;;15128:21:0;;;;;;:6;:21;;;;;:37;;;:41;15125:608;;-1:-1:-1;;;;;15268:21:0;;;;;;:6;:21;;;;;:37;;;;15228:35;;;;;:78;;;:39;:78;:::i;:::-;-1:-1:-1;;;;;15190:21:0;;;;;;:6;:21;;;;;:35;;;:116;;;;15365:37;;;15330:74;;15337:66;;:23;15356:3;15337:14;:6;15348:2;15337:14;:10;:14;:::i;15330:74::-;15325:2;:79;-1:-1:-1;;;;;15483:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;15428:98;;15522:3;15428:98;;;;15483:37;;15428:98;;;-1:-1:-1;;;;;;;;;;;15428:98:0;;;;;;;;-1:-1:-1;;;;;15545:21:0;;15585:1;15545:21;;;:6;:21;;;;;:37;;:41;15125:608;;;15646:31;15653:23;15672:3;15653:14;:6;15664:2;15653:14;:10;:14;:::i;15646:31::-;15641:2;:36;13259:2492;;;:::o;22764:820::-;22839:7;;22820:16;22888:14;;;:5;:14;;;;;:19;;;22951:8;22936:23;;22932:635;;22980:15;;;;:5;:15;;;;;:21;;:28;;-1:-1:-1;;22980:28:0;23004:4;22980:28;;;23062:19;:17;:19::i;:::-;23147:7;:9;;23118:10;23147:9;;;;;;23118:10;;;23147:7;23175:15;;;:5;:15;;;;;23203:3;23175:31;;;;23259:8;;23118:10;;23027:54;-1:-1:-1;23251:17:0;;;:7;:17;:::i;:::-;23225:15;;;;:5;:15;;;;;:23;;:43;23310:41;:11;23326:24;23310:41;:15;:41;:::i;:::-;23287:15;;;;:5;:15;;;;;:20;;:64;-1:-1:-1;22932:635:0;;;23405:15;;;;:5;:15;;;;;23433:3;23405:31;;;;23489:8;;23481:17;;23433:3;23481:17;:7;:17;:::i;:::-;23455:15;;;;:5;:15;;;;;;:23;;;:43;;;;23517:20;;;;:34;22764:820::o;1621:136::-;1679:7;1706:43;1710:1;1713;1706:43;;;;;;;;;;;;;;;;;:3;:43::i;19303:2255::-;19539:12;;-1:-1:-1;;;;;19498:22:0;;19397:30;19498:22;;;:6;:22;;;;;:38;;;19397:30;;;;19498:53;19492:3;:59;19489:2052;;;-1:-1:-1;;;;;19682:22:0;;19654:17;19682:22;;;:6;:22;;;;;:38;;;19674:47;;:3;;:47;:7;:47;:::i;:::-;19654:67;;19736:20;19866:61;19914:12;;19867:41;19894:12;;19882:9;:24;;;;;19867:9;;19882:24;;19867:41;:13;:41;:::i;19866:61::-;-1:-1:-1;;;;;19977:22:0;;;;;;:6;:22;;;;;;;;:37;;;19841:86;;-1:-1:-1;19977:37:0;;-1:-1:-1;20097:26:0;;19977:37;;20097:26;:22;:26;:::i;:::-;20082:41;-1:-1:-1;20232:40:0;20082:41;20249:22;20232:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;20190:22:0;;;;;;:6;:22;;;;;:38;;;:82;20186:1335;;20334:84;20377:40;:12;20394:22;20377:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;20334:22:0;;;;;;:6;:22;;;;;:38;;;;:84;:42;:84;:::i;:::-;-1:-1:-1;;;;;20293:22:0;;;;;;:6;:22;;;;;:38;;:125;20474:80;20513:40;:12;20530:22;20513:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;20474:22:0;;;;;;:6;:22;;;;;:34;;;;:80;:38;:80;:::i;:::-;-1:-1:-1;;;;;20437:22:0;;;;;;:6;:22;;;;;:34;;:117;20685:12;;20614:87;;20658:41;;20673:9;20685:12;20673:24;;;;20658:9;;20673:24;;20658:41;:13;:41;:::i;:::-;-1:-1:-1;;;;;20614:22:0;;;;;;:6;:22;;;;;:38;;;;:87;:42;:87;:::i;:::-;-1:-1:-1;;;;;20573:22:0;;;;;;:6;:22;;;;;:38;;:128;20801:3;20759:40;:12;20776:22;20759:40;:16;:40;:::i;:::-;20725:80;;-1:-1:-1;;;;;20725:80:0;;;;;;;;20824:74;20841:14;20857:40;:12;20874:22;20857:40;:16;:40;:::i;:::-;20824:16;:74::i;:::-;20186:1335;;;-1:-1:-1;;;;;21000:22:0;;;;;;:6;:22;;;;;:38;;;:42;20997:524;;-1:-1:-1;;;;;21101:22:0;;21063:12;21101:22;;;:6;:22;;;;;:38;;;;;21175:42;;;21273:34;;;:44;;21101:38;21273:44;:38;:44;:::i;:::-;-1:-1:-1;;;;;21236:22:0;;;;;;:6;:22;;;;;;:34;;;:81;;;;21377:3;21336:38;;;;:44;;;21404;21438:4;;21236:22;21404:44;;;21467:38;21484:14;21500:4;21467:16;:38::i;:::-;20997:524;;19489:2052;;19303:2255;;;:::o;31693:224::-;-1:-1:-1;;;;;31766:22:0;;31758:71;;;;-1:-1:-1;;;31758:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31866:5;;31845:37;;-1:-1:-1;;;;;31845:37:0;;;;31866:5;;31845:37;;31866:5;;31845:37;31893:5;:16;;-1:-1:-1;;;;;;31893:16:0;-1:-1:-1;;;;;31893:16:0;;;;;;;;;;31693:224::o;4356:345::-;4442:7;4544:12;4537:5;4529:28;;;;-1:-1:-1;;;4529:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4529:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4568:9;4584:1;4580;:5;;;;;;;4356:345;-1:-1:-1;;;;;4356:345:0:o;27676:2190::-;27798:7;;27742;27792:14;;;:5;:14;;;;;:19;;;27742:7;;27792:36;;27824:3;;27792:27;;27816:2;27792:27;:23;:27;:::i;:36::-;27775:53;-1:-1:-1;27843:25:0;;27918:1898;27933:1;27930;:4;27918:1898;;;27995:3;27964:11;27976:1;27964:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;27964:19:0;:35;27960:1841;;28075:39;28110:3;28075:30;28086:15;28102:1;28086:18;;;;;;;;;28075:6;;:30;:10;:30;:::i;:39::-;28028:6;:27;28035:11;28047:1;28035:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28035:19:0;28028:27;;;;;;;;;;;-1:-1:-1;28028:27:0;:43;;;:86;28024:1319;;28189:88;28237:39;28272:3;28237:30;28248:15;28264:1;28248:18;;;;;;;;;28237:6;;:30;:10;:30;:::i;:39::-;28189:6;:27;28196:11;28208:1;28196:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28196:19:0;28189:27;;;;;;;;;;;-1:-1:-1;28189:27:0;:43;;;;:47;:88::i;:::-;28143:6;:27;28150:11;28162:1;28150:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28150:19:0;28143:27;;;;;;;;;;;-1:-1:-1;28143:27:0;:43;;:134;28352:90;28402:39;28437:3;28402:30;28413:15;28429:1;28413:18;;;;;;28402:39;28352:6;:27;28359:11;28371:1;28359:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28359:19:0;28352:27;;;;;;;;;;;-1:-1:-1;28352:27:0;:45;;;;:49;:90::i;:::-;28304:6;:27;28311:11;28323:1;28311:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28311:19:0;28304:27;;;;;;;;;;;-1:-1:-1;28304:27:0;:45;;:138;28560:39;28595:3;28560:30;28571:15;28587:1;28571:18;;;;;;28560:39;28539:11;28551:1;28539:14;;;;;;;;;;:19;;;28522:78;;-1:-1:-1;;;;;28539:19:0;;;;28522:78;;28539:19;;28522:78;28024:1319;;;28654:6;:27;28661:11;28673:1;28661:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28661:19:0;28654:27;;;;;;;;;;;-1:-1:-1;28654:27:0;:43;;;:47;28651:692;;28778:94;28828:6;:27;28835:11;28847:1;28835:14;;;;;;;;;;:19;;;;;;;;;;-1:-1:-1;;;;;28835:19:0;-1:-1:-1;;;;;28828:27:0;-1:-1:-1;;;;;28828:27:0;;;;;;;;;;;;:43;;;28778:6;:27;28785:11;28797:1;28785:14;;;;;;28778:94;28730:6;:27;28737:11;28749:1;28737:14;;;;;;;;;;:19;;;;;;;;;;-1:-1:-1;;;;;28737:19:0;-1:-1:-1;;;;;28730:27:0;-1:-1:-1;;;;;28730:27:0;;;;;;;;;;;;:45;;:142;;;;28904:98;28911:90;28957:6;:27;28964:11;28976:1;28964:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;28964:19:0;28957:27;;;;;;;;;;;-1:-1:-1;28957:27:0;:43;;;28912:39;28947:3;28912:30;28923:15;28939:1;28923:18;;;;;;;;;28912:6;;:30;:10;:30;:::i;28911:90::-;28904:2;;;:98;:6;:98;:::i;:::-;28899:2;:103;29071:6;:27;29078:11;29090:1;29078:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;29078:19:0;29071:27;;;;;;;;;;;-1:-1:-1;29071:27:0;:43;;;29051:11;29063:1;29051:14;;;;;;;;;;:19;;;29034:81;;-1:-1:-1;;;;;29051:19:0;;;;29034:81;;29051:19;;29034:81;29188:1;29142:6;:27;29149:11;29161:1;29149:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;29149:19:0;29142:27;;;;;;;;;;;-1:-1:-1;29142:27:0;:43;;:47;28651:692;;;29272:47;29279:39;29314:3;29279:30;29290:15;29306:1;29290:18;;;;;;29272:47;29267:2;:52;28651:692;29387:62;29409:39;29444:3;29409:30;29420:15;29436:1;29420:18;;;;;;29409:39;29387:17;;:62;:21;:62;:::i;:::-;29367:82;;29498:11;29510:1;29498:14;;;;;;;;;;:19;;;-1:-1:-1;;;;;29498:19:0;29472:15;29488:1;29472:18;;;;;;;;;;:23;;;:45;;;;;-1:-1:-1;;;;;29472:45:0;;;;;-1:-1:-1;;;;;29472:45:0;;;;;;29565:11;29577:1;29565:14;;;;;;;;;;:18;29540:15;29556:1;29540:18;;;;;;;;;;:43;29640:39;29675:3;29640:30;29651:15;29667:1;29651:18;;;;;;29640:39;29606:28;29635:1;29606:31;;;;;;;;:73;29732:3;29702:11;29714:1;29702:14;;;;;;;;;;:19;;;:34;;;;;-1:-1:-1;;;;;29702:34:0;;;;;-1:-1:-1;;;;;29702:34:0;;;;;;29780:1;29759:11;29771:1;29759:14;;;;;;;;;;:22;27960:1841;27936:3;;27918:1898;;;-1:-1:-1;29837:17:0;-1:-1:-1;;27676:2190:0;;:::o;2207:192::-;2293:7;2329:12;2321:6;;;;2313:29;;;;-1:-1:-1;;;2313:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2313:29:0;-1:-1:-1;;;2365:5:0;;;2207:192::o;15835:3403::-;-1:-1:-1;;;;;15954:22:0;;;15930:21;15954:22;;;:6;:22;;;;;:31;;;;;;;16018:13;:6;16029:1;16018:13;:10;:13;:::i;:::-;15996:35;-1:-1:-1;16042:6:0;16061:3170;16074:2;16070:1;:6;16061:3170;;;-1:-1:-1;;;;;16116:29:0;;;16112:3047;;16169:6;16166:2805;;16245:13;:6;16256:1;16245:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;16204:21:0;;;;;;:6;:21;;;;;:37;;;:54;16200:1144;;16327:56;16369:13;:6;16380:1;16369:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;16327:21:0;;;;;;:6;:21;;;;;:37;;;;:56;:41;:56;:::i;:::-;-1:-1:-1;;;;;16287:21:0;;;;;;:6;:21;;;;;:37;;:96;16452:58;16496:13;:6;16507:1;16496:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;16452:21:0;;;;;;:6;:21;;;;;:39;;;;:58;:43;:58;:::i;:::-;-1:-1:-1;;;;;16410:21:0;;;;;;:6;:21;;;;;:39;;:100;16623:13;:6;16634:1;16623:13;:10;:13;:::i;:::-;16608;-1:-1:-1;;;;;16568:74:0;16592:14;-1:-1:-1;;;;;16568:74:0;-1:-1:-1;;;;;;;;;;;16638:3:0;16568:74;;;;;;;;;;;;;;;;;;16200:1144;;;-1:-1:-1;;;;;16701:21:0;;;;;;:6;:21;;;;;:37;;;:41;16698:646;;-1:-1:-1;;;;;16857:21:0;;;;;;:6;:21;;;;;:37;;;;16813:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;16771:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;16952:37;;;16927:64;;16934:56;;:13;:6;16945:1;16934:13;:10;:13;:::i;16927:64::-;16922:2;:69;-1:-1:-1;;;;;17078:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;17023:98;;17117:3;17023:98;;;;17078:37;;17023:98;;;-1:-1:-1;;;;;;;;;;;17023:98:0;;;;;;;;-1:-1:-1;;;;;17148:21:0;;17188:1;17148:21;;;:6;:21;;;;;:37;;:41;16698:646;;;17298:21;17305:13;:6;17316:1;17305:13;:10;:13;:::i;17298:21::-;17293:2;:26;16698:646;17380:30;17396:13;:6;17407:1;17396:13;:10;:13;:::i;:::-;17380:11;;:30;:15;:30;:::i;:::-;17366:44;;16166:2805;;;-1:-1:-1;;;;;17513:21:0;;;;;;:6;:21;;;;;:35;;;17554:1;17552:3;;-1:-1:-1;17510:1442:0;;17629:14;:6;17640:2;17629:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;17588:21:0;;;;;;:6;:21;;;;;:37;;;:55;17584:1199;;17716:57;17758:14;:6;17769:2;17758:14;:10;:14;:::i;17716:57::-;-1:-1:-1;;;;;17676:21:0;;;;;;:6;:21;;;;;:37;;:97;17846:59;17890:14;:6;17901:2;17890:14;:10;:14;:::i;17846:59::-;-1:-1:-1;;;;;17804:21:0;;;;;;:6;:21;;;;;:39;;:101;18026:14;:6;18037:2;18026:14;:10;:14;:::i;:::-;18011:13;-1:-1:-1;;;;;17971:75:0;17995:14;-1:-1:-1;;;;;17971:75:0;-1:-1:-1;;;;;;;;;;;18042:3:0;17971:75;;;;;;;;;;;;;;;;;;17584:1199;;;-1:-1:-1;;;;;18108:21:0;;;;;;:6;:21;;;;;:37;;;:41;18105:678;;-1:-1:-1;;;;;18268:21:0;;;;;;:6;:21;;;;;:37;;;;18224:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;18182:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;18368:37;;;18342:65;;18349:57;;:14;:6;18360:2;18349:14;:10;:14;:::i;18342:65::-;18337:2;:70;-1:-1:-1;;;;;18498:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;18443:98;;18537:3;18443:98;;;;18498:37;;18443:98;;;-1:-1:-1;;;;;;;;;;;18443:98:0;;;;;;;;-1:-1:-1;;;;;18572:21:0;;18612:1;18572:21;;;:6;:21;;;;;:37;;:41;18105:678;;;18732:22;18739:14;:6;18750:2;18739:14;:10;:14;:::i;18732:22::-;18727:2;:27;18105:678;17510:1442;;;18866:22;18873:14;:6;18884:2;18873:14;:10;:14;:::i;18866:22::-;18861:2;:27;17510:1442;16112:3047;;;19036:62;19043:54;19085:11;19043:37;19065:14;:6;19076:2;19065:14;:10;:14;:::i;:::-;19044:15;19049:2;19057:1;19044:15;:12;:15;:::i;19043:37::-;:41;:54;:41;:54;:::i;19036:62::-;19031:2;:67;19122:5;;16112:3047;-1:-1:-1;;;;;19189:21:0;;;;;;;:6;:21;;;;;:30;;;;;;;;16078:3;16061:3170;;5707:26213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://bd5143f969f48637188416e879788f07461e62878cdc26380943fb2caa925380
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,814.87 | 0.00029459 | $0.829228 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.