ETH Price: $3,358.59 (-2.73%)
Gas: 4.34 Gwei

Token

Vether (VETH)
 

Overview

Max Total Supply

1,000,000 VETH

Holders

606

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.469121110370611087 VETH

Value
$0.00
0x68d78cbab080a6d6c20437fd7f83c41c2c41a16a
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Vether is designed to be a store-of-value with properties of strict scarcity, unforgeable costliness and a fixed emission schedule.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vether4

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-02
*/

pragma solidity 0.6.4;
//ERC20 Interface
interface ERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address, uint) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address, uint) external returns (bool);
    function transferFrom(address, address, uint) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
interface VETH {
    function genesis() external view returns (uint);
    function totalBurnt() external view returns (uint);
    function totalFees() external view returns (uint);
    function upgradeHeight() external view returns (uint);
    function mapEraDay_Units(uint, uint) external view returns (uint);
}
library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
}
    //======================================VETHER=========================================//
contract Vether4 is ERC20 {
    using SafeMath for uint;
    // ERC-20 Parameters
    string public name; string public symbol;
    uint public decimals; uint public override totalSupply;
    // ERC-20 Mappings
    mapping(address => uint) private _balances;
    mapping(address => mapping(address => uint)) private _allowances;
    // Public Parameters
    uint public coin; uint public emission;
    uint public currentEra; uint public currentDay;
    uint public daysPerEra; uint public secondsPerDay;
    uint public upgradeHeight; uint public upgradedAmount;
    uint public genesis; uint public nextEraTime; uint public nextDayTime;
    address payable public burnAddress; address deployer;
    address public vether1; address public vether2; address public vether3;
    uint public totalFees; uint public totalBurnt; uint public totalEmitted;
    address[] public excludedArray; uint public excludedCount;
    // Public Mappings
    mapping(uint=>uint) public mapEra_Emission;                                             // Era->Emission
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_MemberCount;                        // Era,Days->MemberCount
    mapping(uint=>mapping(uint=>address[])) public mapEraDay_Members;                       // Era,Days->Members
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_Units;                              // Era,Days->Units
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_UnitsRemaining;                     // Era,Days->TotalUnits
    mapping(uint=>mapping(uint=>uint)) public mapEraDay_EmissionRemaining;                  // Era,Days->Emission
    mapping(uint=>mapping(uint=>mapping(address=>uint))) public mapEraDay_MemberUnits;      // Era,Days,Member->Units
    mapping(address=>mapping(uint=>uint[])) public mapMemberEra_Days;                       // Member,Era->Days[]
    mapping(address=>bool) public mapAddress_Excluded;                                      // Address->Excluded
    // Events
    event NewEra(uint era, uint emission, uint time, uint totalBurnt);
    event NewDay(uint era, uint day, uint time, uint previousDayTotal, uint previousDayMembers);
    event Burn(address indexed payer, address indexed member, uint era, uint day, uint units, uint dailyTotal);
    event Withdrawal(address indexed caller, address indexed member, uint era, uint day, uint value, uint vetherRemaining);

    //=====================================CREATION=========================================//
    // Constructor
    constructor() public {
        vether1 = 0x31Bb711de2e457066c6281f231fb473FC5c2afd3;                               // First Vether
        vether2 = 0x01217729940055011F17BeFE6270e6E59B7d0337;                               // Second Vether
        vether3 = 0x75572098dc462F976127f59F8c97dFa291f81d8b;                               // Third Vether
        upgradeHeight = 51;                                                                 // Height at which to upgrade
        name = "Vether"; symbol = "VETH"; decimals = 18; 
        coin = 10**decimals; totalSupply = 1000000*coin;
        genesis = VETH(vether1).genesis(); emission = 2048*coin; 
        currentEra = 1; currentDay = upgradeHeight;                                         // Begin at Upgrade Height
        daysPerEra = 244; secondsPerDay = 84200;
        totalBurnt = VETH(vether2).totalBurnt(); totalFees = 0;
        totalEmitted = (upgradeHeight-1)*emission;
        burnAddress = 0x0111011001100001011011000111010101100101; deployer = msg.sender;
        _balances[address(this)] = totalSupply; 
        emit Transfer(burnAddress, address(this), totalSupply);
        nextEraTime = genesis + (secondsPerDay * daysPerEra);
        nextDayTime = now + secondsPerDay;
        mapAddress_Excluded[address(this)] = true;                                          
        excludedArray.push(address(this)); excludedCount = 1;                               
        mapAddress_Excluded[burnAddress] = true;
        excludedArray.push(burnAddress); excludedCount +=1; 
        mapEra_Emission[currentEra] = emission; 
        mapEraDay_EmissionRemaining[currentEra][currentDay] = emission; 
        _setMappings();                                                                  // Map historical units
    }
    function _setMappings() internal {
        uint upgradeHeight1 = VETH(vether2).upgradeHeight();                
        for(uint i=1;i<upgradeHeight1; i++) {
            mapEraDay_Units[1][i] = VETH(vether1).mapEraDay_Units(1,i); 
        }
        uint upgradeHeight2 = VETH(vether3).upgradeHeight(); 
        for(uint i=upgradeHeight1;i<upgradeHeight2; i++) {
            mapEraDay_Units[1][i] = VETH(vether2).mapEraDay_Units(1,i); 
        }
        mapEraDay_Units[1][upgradeHeight2] = VETH(vether3).mapEraDay_Units(1,upgradeHeight2); 
    }

    //========================================ERC20=========================================//
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    // ERC20 Transfer function
    function transfer(address to, uint value) public override returns (bool success) {
        _transfer(msg.sender, to, value);
        return true;
    }
    // ERC20 Approve function
    function approve(address spender, uint value) public override returns (bool success) {
        _allowances[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }
    // ERC20 TransferFrom function
    function transferFrom(address from, address to, uint value) public override returns (bool success) {
        require(value <= _allowances[from][msg.sender], 'Must not send more than allowance');
        _allowances[from][msg.sender] = _allowances[from][msg.sender].sub(value);
        _transfer(from, to, value);
        return true;
    }
    // Internal transfer function which includes the Fee
    function _transfer(address _from, address _to, uint _value) private {
        require(_balances[_from] >= _value, 'Must not send more than balance');
        require(_balances[_to] + _value >= _balances[_to], 'Balance overflow');
        _balances[_from] =_balances[_from].sub(_value);
        uint _fee = _getFee(_from, _to, _value);                                            // Get fee amount
        _balances[_to] += (_value.sub(_fee));                                               // Add to receiver
        _balances[address(this)] += _fee;                                                   // Add fee to self
        totalFees += _fee;                                                                  // Track fees collected
        emit Transfer(_from, _to, (_value.sub(_fee)));                                      // Transfer event
        if (!mapAddress_Excluded[_from] && !mapAddress_Excluded[_to]) {
            emit Transfer(_from, address(this), _fee);                                      // Fee Transfer event
        }
    }
    // Calculate Fee amount
    function _getFee(address _from, address _to, uint _value) private view returns (uint) {
        if (mapAddress_Excluded[_from] || mapAddress_Excluded[_to]) {
           return 0;                                                                        // No fee if excluded
        } else {
            return (_value / 1000);                                                         // Fee amount = 0.1%
        }
    }

    //=====================================DISTRIBUTE======================================//
    // Distribute to previous owners
    function distribute(address[] memory owners, uint[] memory ownership) public{
        require(msg.sender == deployer);
        uint maxEmissions = (upgradeHeight-1) * mapEra_Emission[1]; 
        for(uint i = 0; i<owners.length; i++){
            upgradedAmount += ownership[i];                                                 // Track
            require(upgradedAmount <= maxEmissions, "Must not send more than possible");    // Safety Check
            _transfer(address(this), owners[i], ownership[i]);                              // Send to owner
        }
    }
    // purge
    function purgeDeployer() public{require(msg.sender == deployer);deployer = address(0);}

    //==================================PROOF-OF-VALUE======================================//
    // Calls when sending Ether
    receive() external payable {
        burnAddress.call.value(msg.value)("");                                              // Burn ether
        _recordBurn(msg.sender, msg.sender, currentEra, currentDay, msg.value);             // Record Burn
    }
    // Burn ether for nominated member
    function burnEtherForMember(address member) external payable {
        burnAddress.call.value(msg.value)("");                                              // Burn ether
        _recordBurn(msg.sender, member, currentEra, currentDay, msg.value);                 // Record Burn
    }
    // Internal - Records burn
    function _recordBurn(address _payer, address _member, uint _era, uint _day, uint _eth) private {
        if (mapEraDay_MemberUnits[_era][_day][_member] == 0){                               // If hasn't contributed to this Day yet
            mapMemberEra_Days[_member][_era].push(_day);                                    // Add it
            mapEraDay_MemberCount[_era][_day] += 1;                                         // Count member
            mapEraDay_Members[_era][_day].push(_member);                                    // Add member
        }
        mapEraDay_MemberUnits[_era][_day][_member] += _eth;                                 // Add member's share
        mapEraDay_UnitsRemaining[_era][_day] += _eth;                                       // Add to total historicals
        mapEraDay_Units[_era][_day] += _eth;                                                // Add to total outstanding
        totalBurnt += _eth;                                                                 // Add to total burnt
        emit Burn(_payer, _member, _era, _day, _eth, mapEraDay_Units[_era][_day]);          // Burn event
        _updateEmission();                                                                  // Update emission Schedule
    }
    // Allows changing an excluded address
    function addExcluded(address excluded) external {    
        if(!mapAddress_Excluded[excluded]){
            _transfer(msg.sender, address(this), mapEra_Emission[1]/16);                    // Pay fee of 128 Vether
            mapAddress_Excluded[excluded] = true;                                           // Add desired address
            excludedArray.push(excluded); excludedCount +=1;                                // Record details
            totalFees += mapEra_Emission[1]/16;                                             // Record fees
        }              
    }
    //======================================WITHDRAWAL======================================//
    // Used to efficiently track participation in each era
    function getDaysContributedForEra(address member, uint era) public view returns(uint){
        return mapMemberEra_Days[member][era].length;
    }
    // Call to withdraw a claim
    function withdrawShare(uint era, uint day) external returns (uint value) {
        value = _withdrawShare(era, day, msg.sender);                           
    }
    // Call to withdraw a claim for another member
    function withdrawShareForMember(uint era, uint day, address member) external returns (uint value) {
        value = _withdrawShare(era, day, member);
    }
    // Internal - withdraw function
    function _withdrawShare (uint _era, uint _day, address _member) private returns (uint value) {
        _updateEmission(); 
        if (_era < currentEra) {                                                            // Allow if in previous Era
            value = _processWithdrawal(_era, _day, _member);                                // Process Withdrawal
        } else if (_era == currentEra) {                                                    // Handle if in current Era
            if (_day < currentDay) {                                                        // Allow only if in previous Day
                value = _processWithdrawal(_era, _day, _member);                            // Process Withdrawal
            }
        }  
        return value;
    }
    // Internal - Withdrawal function
    function _processWithdrawal (uint _era, uint _day, address _member) private returns (uint value) {
        uint memberUnits = mapEraDay_MemberUnits[_era][_day][_member];                      // Get Member Units
        if (memberUnits == 0) { 
            value = 0;                                                                      // Do nothing if 0 (prevents revert)
        } else {
            value = getEmissionShare(_era, _day, _member);                                  // Get the emission Share for Member
            mapEraDay_MemberUnits[_era][_day][_member] = 0;                                 // Set to 0 since it will be withdrawn
            mapEraDay_UnitsRemaining[_era][_day] = mapEraDay_UnitsRemaining[_era][_day].sub(memberUnits);  // Decrement Member Units
            mapEraDay_EmissionRemaining[_era][_day] = mapEraDay_EmissionRemaining[_era][_day].sub(value);  // Decrement emission
            totalEmitted += value;                                                          // Add to Total Emitted
            _transfer(address(this), _member, value);                                       // ERC20 transfer function
            emit Withdrawal(msg.sender, _member, _era, _day, 
            value, mapEraDay_EmissionRemaining[_era][_day]);
        }
        return value;
    }
    // Get emission Share function
    function getEmissionShare(uint era, uint day, address member) public view returns (uint value) {
        uint memberUnits = mapEraDay_MemberUnits[era][day][member];                         // Get Member Units
        if (memberUnits == 0) {
            return 0;                                                                       // If 0, return 0
        } else {
            uint totalUnits = mapEraDay_UnitsRemaining[era][day];                           // Get Total Units
            uint emissionRemaining = mapEraDay_EmissionRemaining[era][day];                 // Get emission remaining for Day
            uint balance = _balances[address(this)];                                        // Find remaining balance
            if (emissionRemaining > balance) { emissionRemaining = balance; }               // In case less than required emission
            value = (emissionRemaining * memberUnits) / totalUnits;                         // Calculate share
            return  value;                            
        }
    }
    //======================================EMISSION========================================//
    // Internal - Update emission function
    function _updateEmission() private {
        uint _now = now;                                                                    // Find now()
        if (_now >= nextDayTime) {                                                          // If time passed the next Day time
            if (currentDay >= daysPerEra) {                                                 // If time passed the next Era time
                currentEra += 1; currentDay = 0;                                            // Increment Era, reset Day
                nextEraTime = _now + (secondsPerDay * daysPerEra);                          // Set next Era time
                emission = getNextEraEmission();                                            // Get correct emission
                mapEra_Emission[currentEra] = emission;                                     // Map emission to Era
                emit NewEra(currentEra, emission, nextEraTime, totalBurnt);                 // Emit Event
            }
            currentDay += 1;                                                                // Increment Day
            nextDayTime = _now + secondsPerDay;                                             // Set next Day time
            emission = getDayEmission();                                                    // Check daily Dmission
            mapEraDay_EmissionRemaining[currentEra][currentDay] = emission;                 // Map emission to Day
            uint _era = currentEra; uint _day = currentDay-1;
            if(currentDay == 1){ _era = currentEra-1; _day = daysPerEra; }                  // Handle New Era
            emit NewDay(currentEra, currentDay, nextDayTime, 
            mapEraDay_Units[_era][_day], mapEraDay_MemberCount[_era][_day]);                // Emit Event
        }
    }
    // Calculate Era emission
    function getNextEraEmission() public view returns (uint) {
        if (emission > coin) {                                                              // Normal Emission Schedule
            return emission / 2;                                                            // Emissions: 2048 -> 1.0
        } else{                                                                             // Enters Fee Era
            return coin;                                                                    // Return 1.0 from fees
        }
    }
    // Calculate Day emission
    function getDayEmission() public view returns (uint) {
        uint balance = _balances[address(this)];                                            // Find remaining balance
        if (balance > emission) {                                                           // Balance is sufficient
            return emission;                                                                // Return emission
        } else {                                                                            // Balance has dropped low
            return balance;                                                                 // Return full balance
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payer","type":"address"},{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"units","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dailyTotal","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"previousDayTotal","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"previousDayMembers","type":"uint256"}],"name":"NewDay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalBurnt","type":"uint256"}],"name":"NewEra","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"uint256","name":"era","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"vetherRemaining","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[{"internalType":"address","name":"excluded","type":"address"}],"name":"addExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"burnEtherForMember","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"coin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daysPerEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ownership","type":"uint256[]"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"excludedArray","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"excludedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDayEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"era","type":"uint256"}],"name":"getDaysContributedForEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"getEmissionShare","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextEraEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mapAddress_Excluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_EmissionRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_MemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"mapEraDay_MemberUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_Members","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_Units","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEraDay_UnitsRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapEra_Emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mapMemberEra_Days","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextDayTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEraTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purgeDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondsPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEmitted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeHeight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upgradedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vether1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vether2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vether3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"}],"name":"withdrawShare","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"day","type":"uint256"},{"internalType":"address","name":"member","type":"address"}],"name":"withdrawShareForMember","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b507331bb711de2e457066c6281f231fb473fc5c2afd3601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507301217729940055011f17befe6270e6e59b7d0337601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507375572098dc462f976127f59f8c97dfa291f81d8b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506033600c819055506040518060400160405280600681526020017f5665746865720000000000000000000000000000000000000000000000000000815250600090805190602001906200016692919062000b6a565b506040518060400160405280600481526020017f564554480000000000000000000000000000000000000000000000000000000081525060019080519060200190620001b492919062000b6a565b506012600281905550600254600a0a600681905550600654620f424002600381905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7f0b3de6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024057600080fd5b505afa15801562000255573d6000803e3d6000fd5b505050506040513d60208110156200026c57600080fd5b8101908080519060200190929190505050600e81905550600654610800026007819055506001600881905550600c5460098190555060f4600a81905550620148e8600b81905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663966ff6506040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031c57600080fd5b505afa15801562000331573d6000803e3d6000fd5b505050506040513d60208110156200034857600080fd5b810190808051906020019092919050505060178190555060006016819055506007546001600c540302601881905550730111011001100001011011000111010101100101601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a3600a54600b5402600e5401600f81905550600b5442016010819055506001602360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019309080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a81905550600160236000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a60008282540192505081905550600754601b60006008548152602001908152602001600020819055506007546020600060085481526020019081526020016000206000600954815260200190815260200160002081905550620007266200072c60201b60201c565b62000c19565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df909da66040518163ffffffff1660e01b815260040160206040518083038186803b1580156200079757600080fd5b505afa158015620007ac573d6000803e3d6000fd5b505050506040513d6020811015620007c357600080fd5b810190808051906020019092919050505090506000600190505b81811015620008d757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360b292596001836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156200086357600080fd5b505afa15801562000878573d6000803e3d6000fd5b505050506040513d60208110156200088f57600080fd5b8101908080519060200190929190505050601e6000600181526020019081526020016000206000838152602001908152602001600020819055508080600101915050620007dd565b506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663df909da66040518163ffffffff1660e01b815260040160206040518083038186803b1580156200094357600080fd5b505afa15801562000958573d6000803e3d6000fd5b505050506040513d60208110156200096f57600080fd5b8101908080519060200190929190505050905060008290505b8181101562000a8257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360b292596001836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562000a0e57600080fd5b505afa15801562000a23573d6000803e3d6000fd5b505050506040513d602081101562000a3a57600080fd5b8101908080519060200190929190505050601e600060018152602001908152602001600020600083815260200190815260200160002081905550808060010191505062000988565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166360b292596001836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562000b0057600080fd5b505afa15801562000b15573d6000803e3d6000fd5b505050506040513d602081101562000b2c57600080fd5b8101908080519060200190929190505050601e6000600181526020019081526020016000206000838152602001908152602001600020819055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000bad57805160ff191683800117855562000bde565b8280016001018555821562000bde579182015b8281111562000bdd57825182559160200191906001019062000bc0565b5b50905062000bed919062000bf1565b5090565b62000c1691905b8082111562000c1257600081600090555060010162000bf8565b5090565b90565b61300b8062000c296000396000f3fe6080604052600436106102975760003560e01c8063827c049e1161015a578063bdf75661116100c1578063dc3222a61161007a578063dc3222a614611183578063dd62ed3e146111f2578063df0244b114611277578063df909da6146112a2578063e82481cf146112cd578063fee05d62146112f857610337565b8063bdf7566114610f8b578063c0c8ebe114611004578063c31842e11461102f578063c3675a72146110a8578063c7d9bc18146110ff578063dac679ec1461112a57610337565b8063973628f611610113578063973628f614610dc1578063a5a1ba2114610dec578063a7f0b3de14610e45578063a9059cbb14610e70578063a932157314610ee3578063ba38b83c14610f3457610337565b8063827c049e14610c085780638454ed2714610c3357806389b86db514610c8257806395d89b4114610cad5780639618f7a814610d3d578063966ff65014610d9657610337565b8063313ce567116101fe57806360b29259116101b757806360b29259146109f85780636380995314610a5157806370a0823114610a7c57806370d5ae0514610ae157806376a1b75614610b3857806377217a8914610b8f57610337565b8063313ce5671461081a578063325e8f11146108455780633ac1c863146108c05780633db9a7ec146108eb5780634f8eddb2146109645780635c9302c9146109cd57610337565b806313114a9d1161025057806313114a9d1461053b57806318160ddd14610566578063227cb58c1461059157806323b872dd146105d55780632929abe6146106685780632a423be8146107c157610337565b806303a821381461033c57806306fdde0314610353578063090bbb01146103e3578063095ea7b31461040e5780630e21f7b41461048157806311df99951461051057610337565b3661033757601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d806000811461031c576040519150601f19603f3d011682016040523d82523d6000602084013e610321565b606091505b505050610335333360085460095434611323565b005b600080fd5b34801561034857600080fd5b50610351611650565b005b34801561035f57600080fd5b506103686116ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a857808201518184015260208101905061038d565b50505050905090810190601f1680156103d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103ef57600080fd5b506103f861178c565b6040518082815260200191505060405180910390f35b34801561041a57600080fd5b506104676004803603604081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611792565b604051808215151515815260200191505060405180910390f35b34801561048d57600080fd5b506104ce600480360360608110156104a457600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611884565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051c57600080fd5b506105256118dc565b6040518082815260200191505060405180910390f35b34801561054757600080fd5b506105506118e2565b6040518082815260200191505060405180910390f35b34801561057257600080fd5b5061057b6118e8565b6040518082815260200191505060405180910390f35b6105d3600480360360208110156105a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ee565b005b3480156105e157600080fd5b5061064e600480360360608110156105f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061198a565b604051808215151515815260200191505060405180910390f35b34801561067457600080fd5b506107bf6004803603604081101561068b57600080fd5b81019080803590602001906401000000008111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460208302840111640100000000831117156106dc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561073c57600080fd5b82018360208201111561074e57600080fd5b8035906020019184602083028401116401000000008311171561077057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611b86565b005b3480156107cd57600080fd5b50610804600480360360408110156107e457600080fd5b810190808035906020019092919080359060200190929190505050611cee565b6040518082815260200191505060405180910390f35b34801561082657600080fd5b5061082f611d03565b6040518082815260200191505060405180910390f35b34801561085157600080fd5b5061087e6004803603602081101561086857600080fd5b8101908080359060200190929190505050611d09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108cc57600080fd5b506108d5611d45565b6040518082815260200191505060405180910390f35b3480156108f757600080fd5b5061094e6004803603606081101561090e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611d4b565b6040518082815260200191505060405180910390f35b34801561097057600080fd5b506109b36004803603602081101561098757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d86565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b506109e2611da6565b6040518082815260200191505060405180910390f35b348015610a0457600080fd5b50610a3b60048036036040811015610a1b57600080fd5b810190808035906020019092919080359060200190929190505050611dac565b6040518082815260200191505060405180910390f35b348015610a5d57600080fd5b50610a66611dd1565b6040518082815260200191505060405180910390f35b348015610a8857600080fd5b50610acb60048036036020811015610a9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd7565b6040518082815260200191505060405180910390f35b348015610aed57600080fd5b50610af6611e20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d611e46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b9b57600080fd5b50610bf260048036036060811015610bb257600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e6c565b6040518082815260200191505060405180910390f35b348015610c1457600080fd5b50610c1d611e9e565b6040518082815260200191505060405180910390f35b348015610c3f57600080fd5b50610c6c60048036036020811015610c5657600080fd5b8101908080359060200190929190505050611ea4565b6040518082815260200191505060405180910390f35b348015610c8e57600080fd5b50610c97611ebc565b6040518082815260200191505060405180910390f35b348015610cb957600080fd5b50610cc2611ee7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d02578082015181840152602081019050610ce7565b50505050905090810190601f168015610d2f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d4957600080fd5b50610d8060048036036040811015610d6057600080fd5b810190808035906020019092919080359060200190929190505050611f85565b6040518082815260200191505060405180910390f35b348015610da257600080fd5b50610dab611faa565b6040518082815260200191505060405180910390f35b348015610dcd57600080fd5b50610dd6611fb0565b6040518082815260200191505060405180910390f35b348015610df857600080fd5b50610e2f60048036036040811015610e0f57600080fd5b810190808035906020019092919080359060200190929190505050611fb6565b6040518082815260200191505060405180910390f35b348015610e5157600080fd5b50610e5a611fda565b6040518082815260200191505060405180910390f35b348015610e7c57600080fd5b50610ec960048036036040811015610e9357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fe0565b604051808215151515815260200191505060405180910390f35b348015610eef57600080fd5b50610f3260048036036020811015610f0657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ff7565b005b348015610f4057600080fd5b50610f4961216f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f9757600080fd5b50610fee60048036036060811015610fae57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612195565b6040518082815260200191505060405180910390f35b34801561101057600080fd5b506110196122ce565b6040518082815260200191505060405180910390f35b34801561103b57600080fd5b506110926004803603606081101561105257600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122d4565b6040518082815260200191505060405180910390f35b3480156110b457600080fd5b506110bd6122ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110b57600080fd5b50611114612310565b6040518082815260200191505060405180910390f35b34801561113657600080fd5b5061116d6004803603604081101561114d57600080fd5b810190808035906020019092919080359060200190929190505050612316565b6040518082815260200191505060405180910390f35b34801561118f57600080fd5b506111dc600480360360408110156111a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061233b565b6040518082815260200191505060405180910390f35b3480156111fe57600080fd5b506112616004803603604081101561121557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612399565b6040518082815260200191505060405180910390f35b34801561128357600080fd5b5061128c612420565b6040518082815260200191505060405180910390f35b3480156112ae57600080fd5b506112b7612426565b6040518082815260200191505060405180910390f35b3480156112d957600080fd5b506112e261242c565b6040518082815260200191505060405180910390f35b34801561130457600080fd5b5061130d61248e565b6040518082815260200191505060405180910390f35b600060216000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156114bd57602260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150556001601c6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550601d60008481526020019081526020016000206000838152602001908152602001600020849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8060216000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601f600085815260200190815260200160002060008481526020019081526020016000206000828254019250508190555080601e6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550806017600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f661f25a08ee5c15fc997f7288c9cd798e1905052f21d761925800799791f130b858585601e60008a81526020019081526020016000206000898152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a3611649612494565b5050505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116aa57600080fd5b6000601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117845780601f1061175957610100808354040283529160200191611784565b820191906000526020600020905b81548152906001019060200180831161176757829003601f168201915b505050505081565b600f5481565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b601d60205282600052604060002060205281600052604060002081815481106118a957fe5b90600052602060002001600092509250509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60165481565b60035481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d806000811461196e576040519150601f19603f3d011682016040523d82523d6000602084013e611973565b606091505b505050611987338260085460095434611323565b50565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fb56021913960400191505060405180910390fd5b611af082600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b7b8484846126cf565b600190509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611be057600080fd5b6000601b600060018152602001908152602001600020546001600c540302905060008090505b8351811015611ce857828181518110611c1b57fe5b6020026020010151600d6000828254019250508190555081600d541115611caa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206e6f742073656e64206d6f7265207468616e20706f737369626c6581525060200191505060405180910390fd5b611cdb30858381518110611cba57fe5b6020026020010151858481518110611cce57fe5b60200260200101516126cf565b8080600101915050611c06565b50505050565b6000611cfb838333612b66565b905092915050565b60025481565b60198181548110611d1657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b60226020528260005260406000206020528160005260406000208181548110611d7057fe5b9060005260206000200160009250925050505481565b60236020528060005260406000206000915054906101000a900460ff1681565b60095481565b601e602052816000526040600020602052806000526040600020600091509150505481565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60075481565b601b6020528060005260406000206000915090505481565b60006006546007541115611ede57600260075481611ed657fe5b049050611ee4565b60065490505b90565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f7d5780601f10611f5257610100808354040283529160200191611f7d565b820191906000526020600020905b815481529060010190602001808311611f6057829003601f168201915b505050505081565b601c602052816000526040600020602052806000526040600020600091509150505481565b60175481565b60085481565b60208052816000526040600020602052806000526040600020600091509150505481565b600e5481565b6000611fed3384846126cf565b6001905092915050565b602360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661216c5761207133306010601b600060018152602001908152602001600020548161206b57fe5b046126cf565b6001602360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a600082825401925050819055506010601b600060018152602001908152602001600020548161215b57fe5b046016600082825401925050819055505b50565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060216000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561220f5760009150506122c7565b6000601f6000878152602001908152602001600020600086815260200190815260200160002054905060006020600088815260200190815260200160002060008781526020019081526020016000205490506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808211156122b1578091505b82848302816122bc57fe5b049450849450505050505b9392505050565b601a5481565b60006122e1848484612b66565b90509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b601f602052816000526040600020602052806000526040600020600091509150505481565b6000602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002080549050905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b600c5481565b600080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506007548111156124865760075491505061248b565b809150505b90565b60105481565b6000429050601054811061268257600a54600954106125575760016008600082825401925050819055506000600981905550600a54600b54028101600f819055506124dd611ebc565b600781905550600754601b60006008548152602001908152602001600020819055507fa7041f0c0dac061a7423e0d7d7b69a0d28e782c6e4842f4fce5523379acbb254600854600754600f546017546040518085815260200184815260200183815260200182815260200194505050505060405180910390a15b6001600960008282540192505081905550600b54810160108190555061257b61242c565b60078190555060075460206000600854815260200190815260200160002060006009548152602001908152602001600020819055506000600854905060006001600954039050600160095414156125da576001600854039150600a5490505b7ff0047f88d9bce548f6a3b5f02aae9964bcb69afb1848b6acaab809a2b0629aaf600854600954601054601e6000878152602001908152602001600020600086815260200190815260200160002054601c6000888152602001908152602001600020600087815260200190815260200160002054604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a150505b50565b60006126c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bba565b905092915050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e63650081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561287a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f42616c616e6365206f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b6128cc81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061291c848484612c7a565b9050612931818361268590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806016600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612a3c848661268590919063ffffffff16565b6040518082815260200191505060405180910390a3602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612af55750602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b60573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b6000612b70612494565b600854841015612b8c57612b85848484612d41565b9050612bb0565b600854841415612baf57600954831015612bae57612bab848484612d41565b90505b5b5b8090509392505050565b6000838311158290612c67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c2c578082015181840152602081019050612c11565b50505050905090810190601f168015612c595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d1d5750602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d2b5760009050612d3a565b6103e88281612d3657fe5b0490505b9392505050565b60008060216000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612dba5760009150612fa9565b612dc5858585612195565b9150600060216000878152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e6581601f600088815260200190815260200160002060008781526020019081526020016000205461268590919063ffffffff16565b601f6000878152602001908152602001600020600086815260200190815260200160002081905550612ec4826020600088815260200190815260200160002060008781526020019081526020016000205461268590919063ffffffff16565b6020600087815260200190815260200160002060008681526020019081526020016000208190555081601860008282540192505081905550612f073084846126cf565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7f3fa649aa08dbaff5b36b865f9585ae5b83bcb35185c846035019b63967b6e9878786602060008c815260200190815260200160002060008b8152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a35b81915050939250505056fe4d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e6365a2646970667358221220174ee7534dcbd76a47c4149a136de6b78cb448ceff478712f4302e9377eb5c1f64736f6c63430006040033

Deployed Bytecode

0x6080604052600436106102975760003560e01c8063827c049e1161015a578063bdf75661116100c1578063dc3222a61161007a578063dc3222a614611183578063dd62ed3e146111f2578063df0244b114611277578063df909da6146112a2578063e82481cf146112cd578063fee05d62146112f857610337565b8063bdf7566114610f8b578063c0c8ebe114611004578063c31842e11461102f578063c3675a72146110a8578063c7d9bc18146110ff578063dac679ec1461112a57610337565b8063973628f611610113578063973628f614610dc1578063a5a1ba2114610dec578063a7f0b3de14610e45578063a9059cbb14610e70578063a932157314610ee3578063ba38b83c14610f3457610337565b8063827c049e14610c085780638454ed2714610c3357806389b86db514610c8257806395d89b4114610cad5780639618f7a814610d3d578063966ff65014610d9657610337565b8063313ce567116101fe57806360b29259116101b757806360b29259146109f85780636380995314610a5157806370a0823114610a7c57806370d5ae0514610ae157806376a1b75614610b3857806377217a8914610b8f57610337565b8063313ce5671461081a578063325e8f11146108455780633ac1c863146108c05780633db9a7ec146108eb5780634f8eddb2146109645780635c9302c9146109cd57610337565b806313114a9d1161025057806313114a9d1461053b57806318160ddd14610566578063227cb58c1461059157806323b872dd146105d55780632929abe6146106685780632a423be8146107c157610337565b806303a821381461033c57806306fdde0314610353578063090bbb01146103e3578063095ea7b31461040e5780630e21f7b41461048157806311df99951461051057610337565b3661033757601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d806000811461031c576040519150601f19603f3d011682016040523d82523d6000602084013e610321565b606091505b505050610335333360085460095434611323565b005b600080fd5b34801561034857600080fd5b50610351611650565b005b34801561035f57600080fd5b506103686116ee565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a857808201518184015260208101905061038d565b50505050905090810190601f1680156103d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103ef57600080fd5b506103f861178c565b6040518082815260200191505060405180910390f35b34801561041a57600080fd5b506104676004803603604081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611792565b604051808215151515815260200191505060405180910390f35b34801561048d57600080fd5b506104ce600480360360608110156104a457600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611884565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051c57600080fd5b506105256118dc565b6040518082815260200191505060405180910390f35b34801561054757600080fd5b506105506118e2565b6040518082815260200191505060405180910390f35b34801561057257600080fd5b5061057b6118e8565b6040518082815260200191505060405180910390f35b6105d3600480360360208110156105a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ee565b005b3480156105e157600080fd5b5061064e600480360360608110156105f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061198a565b604051808215151515815260200191505060405180910390f35b34801561067457600080fd5b506107bf6004803603604081101561068b57600080fd5b81019080803590602001906401000000008111156106a857600080fd5b8201836020820111156106ba57600080fd5b803590602001918460208302840111640100000000831117156106dc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561073c57600080fd5b82018360208201111561074e57600080fd5b8035906020019184602083028401116401000000008311171561077057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611b86565b005b3480156107cd57600080fd5b50610804600480360360408110156107e457600080fd5b810190808035906020019092919080359060200190929190505050611cee565b6040518082815260200191505060405180910390f35b34801561082657600080fd5b5061082f611d03565b6040518082815260200191505060405180910390f35b34801561085157600080fd5b5061087e6004803603602081101561086857600080fd5b8101908080359060200190929190505050611d09565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108cc57600080fd5b506108d5611d45565b6040518082815260200191505060405180910390f35b3480156108f757600080fd5b5061094e6004803603606081101561090e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611d4b565b6040518082815260200191505060405180910390f35b34801561097057600080fd5b506109b36004803603602081101561098757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d86565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b506109e2611da6565b6040518082815260200191505060405180910390f35b348015610a0457600080fd5b50610a3b60048036036040811015610a1b57600080fd5b810190808035906020019092919080359060200190929190505050611dac565b6040518082815260200191505060405180910390f35b348015610a5d57600080fd5b50610a66611dd1565b6040518082815260200191505060405180910390f35b348015610a8857600080fd5b50610acb60048036036020811015610a9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd7565b6040518082815260200191505060405180910390f35b348015610aed57600080fd5b50610af6611e20565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d611e46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b9b57600080fd5b50610bf260048036036060811015610bb257600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e6c565b6040518082815260200191505060405180910390f35b348015610c1457600080fd5b50610c1d611e9e565b6040518082815260200191505060405180910390f35b348015610c3f57600080fd5b50610c6c60048036036020811015610c5657600080fd5b8101908080359060200190929190505050611ea4565b6040518082815260200191505060405180910390f35b348015610c8e57600080fd5b50610c97611ebc565b6040518082815260200191505060405180910390f35b348015610cb957600080fd5b50610cc2611ee7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d02578082015181840152602081019050610ce7565b50505050905090810190601f168015610d2f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d4957600080fd5b50610d8060048036036040811015610d6057600080fd5b810190808035906020019092919080359060200190929190505050611f85565b6040518082815260200191505060405180910390f35b348015610da257600080fd5b50610dab611faa565b6040518082815260200191505060405180910390f35b348015610dcd57600080fd5b50610dd6611fb0565b6040518082815260200191505060405180910390f35b348015610df857600080fd5b50610e2f60048036036040811015610e0f57600080fd5b810190808035906020019092919080359060200190929190505050611fb6565b6040518082815260200191505060405180910390f35b348015610e5157600080fd5b50610e5a611fda565b6040518082815260200191505060405180910390f35b348015610e7c57600080fd5b50610ec960048036036040811015610e9357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fe0565b604051808215151515815260200191505060405180910390f35b348015610eef57600080fd5b50610f3260048036036020811015610f0657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ff7565b005b348015610f4057600080fd5b50610f4961216f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f9757600080fd5b50610fee60048036036060811015610fae57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612195565b6040518082815260200191505060405180910390f35b34801561101057600080fd5b506110196122ce565b6040518082815260200191505060405180910390f35b34801561103b57600080fd5b506110926004803603606081101561105257600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122d4565b6040518082815260200191505060405180910390f35b3480156110b457600080fd5b506110bd6122ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110b57600080fd5b50611114612310565b6040518082815260200191505060405180910390f35b34801561113657600080fd5b5061116d6004803603604081101561114d57600080fd5b810190808035906020019092919080359060200190929190505050612316565b6040518082815260200191505060405180910390f35b34801561118f57600080fd5b506111dc600480360360408110156111a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061233b565b6040518082815260200191505060405180910390f35b3480156111fe57600080fd5b506112616004803603604081101561121557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612399565b6040518082815260200191505060405180910390f35b34801561128357600080fd5b5061128c612420565b6040518082815260200191505060405180910390f35b3480156112ae57600080fd5b506112b7612426565b6040518082815260200191505060405180910390f35b3480156112d957600080fd5b506112e261242c565b6040518082815260200191505060405180910390f35b34801561130457600080fd5b5061130d61248e565b6040518082815260200191505060405180910390f35b600060216000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156114bd57602260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150556001601c6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550601d60008481526020019081526020016000206000838152602001908152602001600020849080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8060216000858152602001908152602001600020600084815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080601f600085815260200190815260200160002060008481526020019081526020016000206000828254019250508190555080601e6000858152602001908152602001600020600084815260200190815260200160002060008282540192505081905550806017600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f661f25a08ee5c15fc997f7288c9cd798e1905052f21d761925800799791f130b858585601e60008a81526020019081526020016000206000898152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a3611649612494565b5050505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116aa57600080fd5b6000601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117845780601f1061175957610100808354040283529160200191611784565b820191906000526020600020905b81548152906001019060200180831161176757829003601f168201915b505050505081565b600f5481565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b601d60205282600052604060002060205281600052604060002081815481106118a957fe5b90600052602060002001600092509250509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b60165481565b60035481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d806000811461196e576040519150601f19603f3d011682016040523d82523d6000602084013e611973565b606091505b505050611987338260085460095434611323565b50565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612fb56021913960400191505060405180910390fd5b611af082600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b7b8484846126cf565b600190509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611be057600080fd5b6000601b600060018152602001908152602001600020546001600c540302905060008090505b8351811015611ce857828181518110611c1b57fe5b6020026020010151600d6000828254019250508190555081600d541115611caa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206e6f742073656e64206d6f7265207468616e20706f737369626c6581525060200191505060405180910390fd5b611cdb30858381518110611cba57fe5b6020026020010151858481518110611cce57fe5b60200260200101516126cf565b8080600101915050611c06565b50505050565b6000611cfb838333612b66565b905092915050565b60025481565b60198181548110611d1657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b60226020528260005260406000206020528160005260406000208181548110611d7057fe5b9060005260206000200160009250925050505481565b60236020528060005260406000206000915054906101000a900460ff1681565b60095481565b601e602052816000526040600020602052806000526040600020600091509150505481565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b60075481565b601b6020528060005260406000206000915090505481565b60006006546007541115611ede57600260075481611ed657fe5b049050611ee4565b60065490505b90565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f7d5780601f10611f5257610100808354040283529160200191611f7d565b820191906000526020600020905b815481529060010190602001808311611f6057829003601f168201915b505050505081565b601c602052816000526040600020602052806000526040600020600091509150505481565b60175481565b60085481565b60208052816000526040600020602052806000526040600020600091509150505481565b600e5481565b6000611fed3384846126cf565b6001905092915050565b602360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661216c5761207133306010601b600060018152602001908152602001600020548161206b57fe5b046126cf565b6001602360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601a600082825401925050819055506010601b600060018152602001908152602001600020548161215b57fe5b046016600082825401925050819055505b50565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060216000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141561220f5760009150506122c7565b6000601f6000878152602001908152602001600020600086815260200190815260200160002054905060006020600088815260200190815260200160002060008781526020019081526020016000205490506000600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808211156122b1578091505b82848302816122bc57fe5b049450849450505050505b9392505050565b601a5481565b60006122e1848484612b66565b90509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b601f602052816000526040600020602052806000526040600020600091509150505481565b6000602260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002080549050905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b600c5481565b600080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506007548111156124865760075491505061248b565b809150505b90565b60105481565b6000429050601054811061268257600a54600954106125575760016008600082825401925050819055506000600981905550600a54600b54028101600f819055506124dd611ebc565b600781905550600754601b60006008548152602001908152602001600020819055507fa7041f0c0dac061a7423e0d7d7b69a0d28e782c6e4842f4fce5523379acbb254600854600754600f546017546040518085815260200184815260200183815260200182815260200194505050505060405180910390a15b6001600960008282540192505081905550600b54810160108190555061257b61242c565b60078190555060075460206000600854815260200190815260200160002060006009548152602001908152602001600020819055506000600854905060006001600954039050600160095414156125da576001600854039150600a5490505b7ff0047f88d9bce548f6a3b5f02aae9964bcb69afb1848b6acaab809a2b0629aaf600854600954601054601e6000878152602001908152602001600020600086815260200190815260200160002054601c6000888152602001908152602001600020600087815260200190815260200160002054604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a150505b50565b60006126c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bba565b905092915050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e63650081525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561287a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f42616c616e6365206f766572666c6f770000000000000000000000000000000081525060200191505060405180910390fd5b6128cc81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061291c848484612c7a565b9050612931818361268590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806016600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612a3c848661268590919063ffffffff16565b6040518082815260200191505060405180910390a3602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612af55750602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b60573073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b6000612b70612494565b600854841015612b8c57612b85848484612d41565b9050612bb0565b600854841415612baf57600954831015612bae57612bab848484612d41565b90505b5b5b8090509392505050565b6000838311158290612c67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c2c578082015181840152602081019050612c11565b50505050905090810190601f168015612c595780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000602360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d1d5750602360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d2b5760009050612d3a565b6103e88281612d3657fe5b0490505b9392505050565b60008060216000868152602001908152602001600020600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612dba5760009150612fa9565b612dc5858585612195565b9150600060216000878152602001908152602001600020600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e6581601f600088815260200190815260200160002060008781526020019081526020016000205461268590919063ffffffff16565b601f6000878152602001908152602001600020600086815260200190815260200160002081905550612ec4826020600088815260200190815260200160002060008781526020019081526020016000205461268590919063ffffffff16565b6020600087815260200190815260200160002060008681526020019081526020016000208190555081601860008282540192505081905550612f073084846126cf565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f7f3fa649aa08dbaff5b36b865f9585ae5b83bcb35185c846035019b63967b6e9878786602060008c815260200190815260200160002060008b8152602001908152602001600020546040518085815260200184815260200183815260200182815260200194505050505060405180910390a35b81915050939250505056fe4d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e6365a2646970667358221220174ee7534dcbd76a47c4149a136de6b78cb448ceff478712f4302e9377eb5c1f64736f6c63430006040033

Deployed Bytecode Sourcemap

1419:18406:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10106:11;;;;;;;;;;;:16;;10129:9;10106:37;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;10106:37:0;;10213:70;10225:10;10237;10249;;10261;;10273:9;10213:11;:70::i;:::-;1419:18406;;12:1:-1;9;2:12;9844:87:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9844:87:0;;;:::i;:::-;;1508:18;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1508:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1508:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2021:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2021:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6924:218;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6924:218:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6924:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2606:64;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2606:64:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2606:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1786:16;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1786:16:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2212:21;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2212:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1577:32;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1577:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10364:284;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10364:284:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7184:344;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7184:344:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7184:344:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9248:576;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9248:576:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9248:576:0;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;9248:576:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9248:576:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9248:576:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9248:576:0;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;9248:576:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9248:576:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9248:576:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9248:576:0;;;;;;;;;;;;;;;:::i;:::-;;12935:163;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12935:163:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12935:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1555:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1555:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2290:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2290:30:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2290:30:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1884:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1884:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3183:64;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3183:64:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3183:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3298:49;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3298:49:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3298:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1855:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1855:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2720:57;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2720:57:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2720:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1908:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1908:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6419:119;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6419:119:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6419:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2076:34;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2076:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2135:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2135:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3064:81;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3064:81:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3064:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1804:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1804:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2378:42;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2378:42:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2378:42:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18584:544;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18584:544:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1528:20;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1528:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1528:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2488:63;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2488:63:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2488:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2235:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2235:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1831;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1831:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2949:69;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2949:69:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2949:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2000:19;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2000:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6733:154;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6733:154:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6733:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12003:583;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12003:583:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12003:583:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2159:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2159:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15544:1047;;5:9:-1;2:2;;;27:1;24;17:12;2:2;15544:1047:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15544:1047:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2322:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2322:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13156:157;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13156:157:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13156:157:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2183:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2183:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1967:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1967:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2832:66;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2832:66:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2832:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12748:148;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12748:148:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;12748:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6544:151;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6544:151:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;6544:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2259:24;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2259:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1940:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1940:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19165:657;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19165:657:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2046:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2046:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10686:1267;10842:1;10796:21;:27;10818:4;10796:27;;;;;;;;;;;:33;10824:4;10796:33;;;;;;;;;;;:42;10830:7;10796:42;;;;;;;;;;;;;;;;:47;10792:454;;;10930:17;:26;10948:7;10930:26;;;;;;;;;;;;;;;:32;10957:4;10930:32;;;;;;;;;;;10968:4;10930:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10930:43:0;;;;;;;;;;;;;;;;;;;11070:1;11033:21;:27;11055:4;11033:27;;;;;;;;;;;:33;11061:4;11033:33;;;;;;;;;;;;:38;;;;;;;;;;;11142:17;:23;11160:4;11142:23;;;;;;;;;;;:29;11166:4;11142:29;;;;;;;;;;;11177:7;11142:43;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11142:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10792:454;11302:4;11256:21;:27;11278:4;11256:27;;;;;;;;;;;:33;11284:4;11256:33;;;;;;;;;;;:42;11290:7;11256:42;;;;;;;;;;;;;;;;:50;;;;;;;;;;;11411:4;11371:24;:30;11396:4;11371:30;;;;;;;;;;;:36;11402:4;11371:36;;;;;;;;;;;;:44;;;;;;;;;;;11523:4;11492:15;:21;11508:4;11492:21;;;;;;;;;;;:27;11514:4;11492:27;;;;;;;;;;;;:35;;;;;;;;;;;11627:4;11613:10;;:18;;;;;;;;;;;11746:7;11733:68;;11738:6;11733:68;;;11755:4;11761;11767;11773:15;:21;11789:4;11773:21;;;;;;;;;;;:27;11795:4;11773:27;;;;;;;;;;;;11733:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11835:17;:15;:17::i;:::-;10686:1267;;;;;:::o;9844:87::-;9898:8;;;;;;;;;;;9884:22;;:10;:22;;;9876:31;;12:1:-1;9;2:12;9876:31:0;9927:1;9908:8;;:21;;;;;;;;;;;;;;;;;;9844:87::o;1508:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2021:23::-;;;;:::o;6924:218::-;6995:12;7055:5;7020:11;:23;7032:10;7020:23;;;;;;;;;;;;;;;:32;7044:7;7020:32;;;;;;;;;;;;;;;:40;;;;7097:7;7076:36;;7085:10;7076:36;;;7106:5;7076:36;;;;;;;;;;;;;;;;;;7130:4;7123:11;;6924:218;;;;:::o;2606:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1786:16::-;;;;:::o;2212:21::-;;;;:::o;1577:32::-;;;;:::o;10364:284::-;10436:11;;;;;;;;;;;:16;;10459:9;10436:37;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;10436:37:0;;10543:66;10555:10;10567:6;10575:10;;10587;;10599:9;10543:11;:66::i;:::-;10364:284;:::o;7184:344::-;7269:12;7311:11;:17;7323:4;7311:17;;;;;;;;;;;;;;;:29;7329:10;7311:29;;;;;;;;;;;;;;;;7302:5;:38;;7294:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7421:40;7455:5;7421:11;:17;7433:4;7421:17;;;;;;;;;;;;;;;:29;7439:10;7421:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;7389:11;:17;7401:4;7389:17;;;;;;;;;;;;;;;:29;7407:10;7389:29;;;;;;;;;;;;;;;:72;;;;7472:26;7482:4;7488:2;7492:5;7472:9;:26::i;:::-;7516:4;7509:11;;7184:344;;;;;:::o;9248:576::-;9357:8;;;;;;;;;;;9343:22;;:10;:22;;;9335:31;;12:1:-1;9;2:12;9335:31:0;9377:17;9417:15;:18;9433:1;9417:18;;;;;;;;;;;;9412:1;9398:13;;:15;9397:38;9377:58;;9451:6;9460:1;9451:10;;9447:370;9465:6;:13;9463:1;:15;9447:370;;;9517:9;9527:1;9517:12;;;;;;;;;;;;;;9499:14;;:30;;;;;;;;;;;9627:12;9609:14;;:30;;9601:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9710:49;9728:4;9735:6;9742:1;9735:9;;;;;;;;;;;;;;9746;9756:1;9746:12;;;;;;;;;;;;;;9710:9;:49::i;:::-;9480:3;;;;;;;9447:370;;;;9248:576;;;:::o;12935:163::-;12996:10;13027:36;13042:3;13047;13052:10;13027:14;:36::i;:::-;13019:44;;12935:163;;;;:::o;1555:20::-;;;;:::o;2290:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1884:22::-;;;;:::o;3183:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3298:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;1855:22::-;;;;:::o;2720:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1908:25::-;;;;:::o;6419:119::-;6485:7;6512:9;:18;6522:7;6512:18;;;;;;;;;;;;;;;;6505:25;;6419:119;;;:::o;2076:34::-;;;;;;;;;;;;;:::o;2135:22::-;;;;;;;;;;;;;:::o;3064:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1804:20::-;;;;:::o;2378:42::-;;;;;;;;;;;;;;;;;:::o;18584:544::-;18635:4;18667;;18656:8;;:15;18652:469;;;18795:1;18784:8;;:12;;;;;;18777:19;;;;18652:469;19014:4;;19007:11;;18584:544;;:::o;1528:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2488:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2235:22::-;;;;:::o;1831:::-;;;;:::o;2949:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2000:19::-;;;;:::o;6733:154::-;6800:12;6825:32;6835:10;6847:2;6851:5;6825:9;:32::i;:::-;6875:4;6868:11;;6733:154;;;;:::o;12003:583::-;12070:19;:29;12090:8;12070:29;;;;;;;;;;;;;;;;;;;;;;;;;12066:499;;12115:59;12125:10;12145:4;12171:2;12152:15;:18;12168:1;12152:18;;;;;;;;;;;;:21;;;;;;12115:9;:59::i;:::-;12265:4;12233:19;:29;12253:8;12233:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;12349:13;12368:8;12349:28;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12349:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12395:1;12379:13;;:17;;;;;;;;;;;12492:2;12473:15;:18;12489:1;12473:18;;;;;;;;;;;;:21;;;;;;12460:9;;:34;;;;;;;;;;;12066:499;12003:583;:::o;2159:22::-;;;;;;;;;;;;;:::o;15544:1047::-;15627:10;15650:16;15669:21;:26;15691:3;15669:26;;;;;;;;;;;:31;15696:3;15669:31;;;;;;;;;;;:39;15701:6;15669:39;;;;;;;;;;;;;;;;15650:58;;15782:1;15767:11;:16;15763:821;;;15807:1;15800:8;;;;;15763:821;15929:15;15947:24;:29;15972:3;15947:29;;;;;;;;;;;:34;15977:3;15947:34;;;;;;;;;;;;15929:52;;16041:22;16066:27;:32;16094:3;16066:32;;;;;;;;;;;:37;16099:3;16066:37;;;;;;;;;;;;16041:62;;16168:12;16183:9;:24;16201:4;16183:24;;;;;;;;;;;;;;;;16168:39;;16311:7;16291:17;:27;16287:65;;;16342:7;16322:27;;16287:65;16463:10;16448:11;16428:17;:31;16427:46;;;;;;16419:54;;16539:5;16531:13;;;;;;15544:1047;;;;;;:::o;2322:25::-;;;;:::o;13156:157::-;13242:10;13273:32;13288:3;13293;13298:6;13273:14;:32::i;:::-;13265:40;;13156:157;;;;;:::o;2183:22::-;;;;;;;;;;;;;:::o;1967:26::-;;;;:::o;2832:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12748:148::-;12828:4;12851:17;:25;12869:6;12851:25;;;;;;;;;;;;;;;:30;12877:3;12851:30;;;;;;;;;;;:37;;;;12844:44;;12748:148;;;;:::o;6544:151::-;6633:7;6660:11;:18;6672:5;6660:18;;;;;;;;;;;;;;;:27;6679:7;6660:27;;;;;;;;;;;;;;;;6653:34;;6544:151;;;;:::o;2259:24::-;;;;:::o;1940:25::-;;;;:::o;19165:657::-;19212:4;19229:12;19244:9;:24;19262:4;19244:24;;;;;;;;;;;;;;;;19229:39;;19362:8;;19352:7;:18;19348:467;;;19477:8;;19470:15;;;;;19348:467;19709:7;19702:14;;;19165:657;;:::o;2046:23::-;;;;:::o;16737:1810::-;16783:9;16795:3;16783:15;;16902:11;;16894:4;:19;16890:1650;;17041:10;;17027;;:24;17023:705;;17170:1;17156:10;;:15;;;;;;;;;;;17186:1;17173:10;:14;;;;17315:10;;17299:13;;:26;17291:4;:35;17277:11;:49;;;;17402:20;:18;:20::i;:::-;17391:8;:31;;;;17538:8;;17508:15;:27;17524:10;;17508:27;;;;;;;;;;;:38;;;;17629:53;17636:10;;17648:8;;17658:11;;17671:10;;17629:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17023:705;17756:1;17742:10;;:15;;;;;;;;;;;17873:13;;17866:4;:20;17852:11;:34;;;;17977:16;:14;:16::i;:::-;17966:8;:27;;;;18137:8;;18083:27;:39;18111:10;;18083:39;;;;;;;;;;;:51;18123:10;;18083:51;;;;;;;;;;;:62;;;;18199:9;18211:10;;18199:22;;18223:9;18246:1;18235:10;;:12;18223:24;;18279:1;18265:10;;:15;18262:62;;;18301:1;18290:10;;:12;18283:19;;18311:10;;18304:17;;18262:62;18378:121;18385:10;;18397;;18409:11;;18436:15;:21;18452:4;18436:21;;;;;;;;;;;:27;18458:4;18436:27;;;;;;;;;;;;18465:21;:27;18487:4;18465:27;;;;;;;;;;;:33;18493:4;18465:33;;;;;;;;;;;;18378:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16890:1650;;;16737:1810;:::o;985:136::-;1043:7;1070:43;1074:1;1077;1070:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1063:50;;985:136;;;;:::o;7592:1057::-;7699:6;7679:9;:16;7689:5;7679:16;;;;;;;;;;;;;;;;:26;;7671:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7787:9;:14;7797:3;7787:14;;;;;;;;;;;;;;;;7777:6;7760:9;:14;7770:3;7760:14;;;;;;;;;;;;;;;;:23;:41;;7752:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7851:28;7872:6;7851:9;:16;7861:5;7851:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;7833:9;:16;7843:5;7833:16;;;;;;;;;;;;;;;:46;;;;7890:9;7902:27;7910:5;7917:3;7922:6;7902:7;:27::i;:::-;7890:39;;8020:16;8031:4;8020:6;:10;;:16;;;;:::i;:::-;8001:9;:14;8011:3;8001:14;;;;;;;;;;;;;;;;:36;;;;;;;;;;;8141:4;8113:9;:24;8131:4;8113:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;8238:4;8225:9;;:17;;;;;;;;;;;8363:3;8347:40;;8356:5;8347:40;;;8369:16;8380:4;8369:6;:10;;:16;;;;:::i;:::-;8347:40;;;;;;;;;;;;;;;;;;8458:19;:26;8478:5;8458:26;;;;;;;;;;;;;;;;;;;;;;;;;8457:27;:56;;;;;8489:19;:24;8509:3;8489:24;;;;;;;;;;;;;;;;;;;;;;;;;8488:25;8457:56;8453:189;;;8559:4;8535:36;;8544:5;8535:36;;;8566:4;8535:36;;;;;;;;;;;;;;;;;;8453:189;7592:1057;;;;:::o;13356:779::-;13437:10;13460:17;:15;:17::i;:::-;13500:10;;13493:4;:17;13489:614;;;13622:39;13641:4;13647;13653:7;13622:18;:39::i;:::-;13614:47;;13489:614;;;13744:10;;13736:4;:18;13732:371;;;13861:10;;13854:4;:17;13850:242;;;13988:39;14007:4;14013;14019:7;13988:18;:39::i;:::-;13980:47;;13850:242;13732:371;13489:614;14122:5;14115:12;;13356:779;;;;;:::o;1129:190::-;1215:7;1248:1;1243;:6;;1251:12;1235:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1235:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1275:9;1291:1;1287;:5;1275:17;;1310:1;1303:8;;;1129:190;;;;;:::o;8684:423::-;8764:4;8785:19;:26;8805:5;8785:26;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;;8815:19;:24;8835:3;8815:24;;;;;;;;;;;;;;;;;;;;;;;;;8785:54;8781:319;;;8862:1;8855:8;;;;8781:319;9006:4;8997:6;:13;;;;;;8989:22;;8684:423;;;;;;:::o;14180:1322::-;14265:10;14288:16;14307:21;:27;14329:4;14307:27;;;;;;;;;;;:33;14335:4;14307:33;;;;;;;;;;;:42;14341:7;14307:42;;;;;;;;;;;;;;;;14288:61;;14420:1;14405:11;:16;14401:1071;;;14447:1;14439:9;;14401:1071;;;14595:37;14612:4;14618;14624:7;14595:16;:37::i;:::-;14587:45;;14762:1;14717:21;:27;14739:4;14717:27;;;;;;;;;;;:33;14745:4;14717:33;;;;;;;;;;;:42;14751:7;14717:42;;;;;;;;;;;;;;;:46;;;;14888:53;14929:11;14888:24;:30;14913:4;14888:30;;;;;;;;;;;:36;14919:4;14888:36;;;;;;;;;;;;:40;;:53;;;;:::i;:::-;14849:24;:30;14874:4;14849:30;;;;;;;;;;;:36;14880:4;14849:36;;;;;;;;;;;:92;;;;15025:50;15069:5;15025:27;:33;15053:4;15025:33;;;;;;;;;;;:39;15059:4;15025:39;;;;;;;;;;;;:43;;:50;;;;:::i;:::-;14983:27;:33;15011:4;14983:33;;;;;;;;;;;:39;15017:4;14983:39;;;;;;;;;;;:92;;;;15129:5;15113:12;;:21;;;;;;;;;;;15230:40;15248:4;15255:7;15264:5;15230:9;:40::i;:::-;15378:7;15355:105;;15366:10;15355:105;;;15387:4;15393;15413:5;15420:27;:33;15448:4;15420:33;;;;;;;;;;;:39;15454:4;15420:39;;;;;;;;;;;;15355:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14401:1071;15489:5;15482:12;;;14180:1322;;;;;:::o

Swarm Source

ipfs://174ee7534dcbd76a47c4149a136de6b78cb448ceff478712f4302e9377eb5c1f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.