ETH Price: $2,782.46 (+5.45%)
 

Overview

Max Total Supply

80,808.808 BING0

Holders

3

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
850 BING0

Value
$0.00
0x3624c808b025fa95402b13860de4d43b39999bbd
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-09-19
*/

// File: contracts/Ownable.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Function can only be performed by the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Invalid address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

// File: contracts/SafeMath.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

// File: contracts/Token.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;



contract Token is Ownable {
    using SafeMath for uint;

    uint256 private constant _totalSupply = 80808808000000000000000;
    uint256 private constant _top = 100;
    uint256 private _beginTax;

    uint256 public holdersCount;
    address constant GUARD = address(1);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => address) private _nextHolders;

    function name() public pure returns (string memory) {
        return "BINGO";
    }

    function symbol() public pure returns (string memory) {
        return "BING0";
    }

    function decimals() public pure returns (uint8) {
        return 18;
    }
    
    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }

    constructor () public {
        _nextHolders[GUARD] = GUARD;
        _beginTax = now + 60 minutes;

        addHolder(msg.sender, 80808808000000000000000);

        emit Transfer(address(0), msg.sender, 80808808000000000000000);
    }

    function setTax(uint256 start) public onlyOwner() {
        require(start > _beginTax, "Must be in the future");
        _beginTax = start;
    }

    function approve(address spender, uint256 amount) external returns (bool) {
        require(spender != address(0), "Invalid address 3");

        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function allowance(address owner, address spender) external view returns (uint256) {
        return _allowances[owner][spender];
    }

    function balanceOf(address who) public view returns (uint256) {
        return _balances[who];
    }

    function transfer(address to, uint256 value) public returns (bool) {
        require(_balances[msg.sender] >= value, "Insufficient balance");

        _transferFrom(msg.sender, to, value);
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        require(_balances[from] >= value, "Insufficient balance");
        require(_allowances[from][msg.sender] >= value, "Insufficient balance");
        
        _allowances[from][msg.sender] = _allowances[from][msg.sender].sub(value);

        _transferFrom(from, to, value);
    }

    function _transferFrom(address from, address to, uint256 value) private returns (bool) {
        if (now > _beginTax) {
            address random = _getRandomHolder();
            uint256 tax = value.mul(15).div(100);
            value = value.mul(85).div(100);

            _updateBalance(random, _balances[random].add(tax));

            emit Transfer(from, random, tax);
        }
        
        if (_balances[to] == 0) {
            addHolder(to, value);
        } else {
            _updateBalance(to, _balances[to].add(value));
        }

        if (_balances[from].sub(value) == 0) {
            removeHolder(from);
        } else {
            _updateBalance(from, _balances[from].sub(value));
        }

        emit Transfer(from, to, value);
        return true;
    }

    //make private
    function addHolder(address who, uint256 balance) private {
        require(_nextHolders[who] == address(0), "Invalid address (add holder)");

        address index = _findIndex(balance);
        _balances[who] = balance;

        _nextHolders[who] = _nextHolders[index];
        _nextHolders[index] = who;

        holdersCount = holdersCount.add(1);
    }

    //make private
    function removeHolder(address who) private {
        require(_nextHolders[who] != address(0), "Invalid address (remove holder)");

        address prevHolder = _findPrevHolder(who);
        _nextHolders[prevHolder] = _nextHolders[who];
        _nextHolders[who] = address(0);
        _balances[who] = 0;
        holdersCount = holdersCount.sub(1);
    }

    function getTopHolders(uint256 k) public returns (address[] memory) {
        require(k <= holdersCount, "Index out of bounds");
        address[] memory holdersLists = new address[](k);
        address currentAddress = _nextHolders[GUARD];
        
        for(uint256 i = 0; i < k; ++i) {
            holdersLists[i] = currentAddress;
            currentAddress = _nextHolders[currentAddress];
        }

        return holdersLists;
    }

    function getTopHolder(uint256 n) public returns (address) {
        require(n <= holdersCount, "Index out of bounds");
        address currentAddress = _nextHolders[GUARD];
        
        for(uint256 i = 0; i < n; ++i) {
            currentAddress = _nextHolders[currentAddress];
        }

        return currentAddress;
    }

    function _updateBalance(address who, uint256 newBalance) internal {
        require(_nextHolders[who] != address(0), "Invalid address (update balance)");
        address prevHolder = _findPrevHolder(who);
        address nextHolder = _nextHolders[who];

        if(_verifyIndex(prevHolder, newBalance, nextHolder)){
            _balances[who] = newBalance;
        } else {
            removeHolder(who);
            addHolder(who, newBalance);
        }
    }

    function _verifyIndex(address prevHolder, uint256 newValue, address nextHolder) internal view returns(bool) {
        return (prevHolder == GUARD || _balances[prevHolder] >= newValue) && 
            (nextHolder == GUARD || newValue > _balances[nextHolder]);
    }

    function _findIndex(uint256 newValue) internal view returns(address) {
        address candidateAddress = GUARD;
        while(true) {
            if(_verifyIndex(candidateAddress, newValue, _nextHolders[candidateAddress]))
                return candidateAddress;
                
            candidateAddress = _nextHolders[candidateAddress];
        }
    }

    function _isPrevHolder(address who, address prev) internal view returns(bool) {
        return _nextHolders[prev] == who;
    }

    function _findPrevHolder(address who) internal view returns(address) {
        address currentAddress = GUARD;
        while(_nextHolders[currentAddress] != GUARD) {
            if(_isPrevHolder(who, currentAddress))
                return currentAddress;
                
            currentAddress = _nextHolders[currentAddress];
        }

        return address(0);
    }

    function _getRandomHolder() private returns (address) {
        uint256 mod = 100;

        if (holdersCount < 100) {
            mod = holdersCount;
        }

        uint256 n = uint256(keccak256(abi.encodePacked(now, block.difficulty, msg.sender)));
        uint256 randomIndex = n % mod;

        return getTopHolder(randomIndex);
    }

    function quickSort(uint[] memory arr, int left, int right) internal {
        int i = left;
        int j = right;
        if(i==j) return;
        uint pivot = arr[uint(left + (right - left) / 2)];
        while (i <= j) {
            while (arr[uint(i)] < pivot) i++;
            while (pivot < arr[uint(j)]) j--;
            if (i <= j) {
                (arr[uint(i)], arr[uint(j)]) = (arr[uint(j)], arr[uint(i)]);
                i++;
                j--;
            }
        }
        if (left < j)
            quickSort(arr, left, j);
        if (i < right)
            quickSort(arr, i, right);
    }

    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"getTopHolder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"k","type":"uint256"}],"name":"getTopHolders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"holdersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"","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":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e104201600181905550620000f93369111ca77d8c95f82400006200016f60201b60201c565b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69111ca77d8c95f82400006040518082815260200191505060405180910390a362000674565b600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642061646472657373202861646420686f6c646572290000000081525060200191505060405180910390fd5b600062000284826200044d60201b60201c565b905081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200044260016002546200054e60201b620017781790919060201c565b600281905550505050565b600080600190505b6001156200054757620004cf8184600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200056b60201b60201c565b15620004df578091505062000549565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000455565b505b919050565b6000808284019050838110156200056157fe5b8091505092915050565b6000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620005e8575082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156200066b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200066a5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483115b5b90509392505050565b61233180620006846000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb1461048a578063b6b80605146104f0578063dd62ed3e14610573578063f2fde38b146105eb576100f5565b806370a08231146102f75780638839b15e1461034f5780638da5cb5b146103bd57806395d89b4114610407576100f5565b806323b872dd116100d357806323b872dd146102015780632e5bb6ff14610287578063313ce567146102b55780636b4ed21b146102d9576100f5565b806306fdde03146100fa578063095ea7b31461017d57806318160ddd146101e3575b600080fd5b61010261062f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610142578082015181840152602081019050610127565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c96004803603604081101561019357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066c565b604051808215151515815260200191505060405180910390f35b6101eb610800565b6040518082815260200191505060405180910390f35b61026d6004803603606081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610812565b604051808215151515815260200191505060405180910390f35b6102b36004803603602081101561029d57600080fd5b8101908080359060200190929190505050610add565b005b6102bd610c03565b604051808260ff1660ff16815260200191505060405180910390f35b6102e1610c0c565b6040518082815260200191505060405180910390f35b6103396004803603602081101561030d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c12565b6040518082815260200191505060405180910390f35b61037b6004803603602081101561036557600080fd5b8101908080359060200190929190505050610c5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c5610dbf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040f610de4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561044f578082015181840152602081019050610434565b50505050905090810190601f16801561047c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104d6600480360360408110156104a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e21565b604051808215151515815260200191505060405180910390f35b61051c6004803603602081101561050657600080fd5b8101908080359060200190929190505050610eea565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b6105d56004803603604081101561058957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ca565b6040518082815260200191505060405180910390f35b61062d6004803603602081101561060157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611151565b005b60606040518060400160405280600581526020017f42494e474f000000000000000000000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c69642061646472657373203300000000000000000000000000000081525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600069111ca77d8c95f8240000905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610a4a82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135790919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ad584848461136e565b509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806122d1602b913960400191505060405180910390fd5b6001548111610bf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d75737420626520696e2074686520667574757265000000000000000000000081525060200191505060405180910390fd5b8060018190555050565b60006012905090565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600254821115610cd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b600060056000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b83811015610db557600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050610d40565b5080915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f42494e4730000000000000000000000000000000000000000000000000000000815250905090565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ed8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610ee333848461136e565b5092915050565b6060600254821115610f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b606082604051908082528060200260200182016040528015610f955781602001602082028038833980820191505090505b509050600060056000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b848110156110bf578183828151811061101857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050611003565b508192505050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806122d1602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561136357fe5b818303905092915050565b600060015442111561149d576000611384611684565b905060006113af60646113a1600f8761172890919063ffffffff16565b61175f90919063ffffffff16565b90506113d860646113ca60558761172890919063ffffffff16565b61175f90919063ffffffff16565b93506114358261143083600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177890919063ffffffff16565b611794565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156114f4576114ef838361197a565b611550565b61154f8361154a84600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177890919063ffffffff16565b611794565b5b60006115a483600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135790919063ffffffff16565b14156115b8576115b384611c48565b611614565b6116138461160e84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135790919063ffffffff16565b611794565b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080606490506064600254101561169c5760025490505b6000424433604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140193505050506040516020818303038152906040528051906020012060001c9050600082828161171457fe5b06905061172081610c5b565b935050505090565b60008083141561173b5760009050611759565b600082840290508284828161174c57fe5b041461175457fe5b809150505b92915050565b60008082848161176b57fe5b0490508091505092915050565b60008082840190508381101561178a57fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611896576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c6964206164647265737320287570646174652062616c616e63652981525060200191505060405180910390fd5b60006118a183611f18565b90506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061191282848361203d565b156119605782600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611974565b61196984611c48565b611973848461197a565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642061646472657373202861646420686f6c646572290000000081525060200191505060405180910390fd5b6000611a8682612143565b905081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c3d600160025461177890919063ffffffff16565b600281905550505050565b600073ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642061646472657373202872656d6f766520686f6c646572290081525060200191505060405180910390fd5b6000611d5582611f18565b9050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f0e600160025461135790919063ffffffff16565b6002819055505050565b600080600190505b600173ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203257611fbd8382612238565b15611fcb5780915050612038565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611f20565b60009150505b919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806120b9575082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b801561213a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806121395750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483115b5b90509392505050565b600080600190505b600115612231576121bc8184600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661203d565b156121ca5780915050612233565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061214b565b505b919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509291505056fe46756e6374696f6e2063616e206f6e6c7920626520706572666f726d656420627920746865206f776e6572a264697066735822122006904b731c675932ac655a16b5e0d60068024f0e4a7cda611c9664ce4c4f138764736f6c63430006000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb1461048a578063b6b80605146104f0578063dd62ed3e14610573578063f2fde38b146105eb576100f5565b806370a08231146102f75780638839b15e1461034f5780638da5cb5b146103bd57806395d89b4114610407576100f5565b806323b872dd116100d357806323b872dd146102015780632e5bb6ff14610287578063313ce567146102b55780636b4ed21b146102d9576100f5565b806306fdde03146100fa578063095ea7b31461017d57806318160ddd146101e3575b600080fd5b61010261062f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610142578082015181840152602081019050610127565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c96004803603604081101561019357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061066c565b604051808215151515815260200191505060405180910390f35b6101eb610800565b6040518082815260200191505060405180910390f35b61026d6004803603606081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610812565b604051808215151515815260200191505060405180910390f35b6102b36004803603602081101561029d57600080fd5b8101908080359060200190929190505050610add565b005b6102bd610c03565b604051808260ff1660ff16815260200191505060405180910390f35b6102e1610c0c565b6040518082815260200191505060405180910390f35b6103396004803603602081101561030d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c12565b6040518082815260200191505060405180910390f35b61037b6004803603602081101561036557600080fd5b8101908080359060200190929190505050610c5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c5610dbf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040f610de4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561044f578082015181840152602081019050610434565b50505050905090810190601f16801561047c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104d6600480360360408110156104a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e21565b604051808215151515815260200191505060405180910390f35b61051c6004803603602081101561050657600080fd5b8101908080359060200190929190505050610eea565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561055f578082015181840152602081019050610544565b505050509050019250505060405180910390f35b6105d56004803603604081101561058957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ca565b6040518082815260200191505060405180910390f35b61062d6004803603602081101561060157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611151565b005b60606040518060400160405280600581526020017f42494e474f000000000000000000000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c69642061646472657373203300000000000000000000000000000081525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600069111ca77d8c95f8240000905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610a4a82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135790919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ad584848461136e565b509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806122d1602b913960400191505060405180910390fd5b6001548111610bf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d75737420626520696e2074686520667574757265000000000000000000000081525060200191505060405180910390fd5b8060018190555050565b60006012905090565b60025481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600254821115610cd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b600060056000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b83811015610db557600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050610d40565b5080915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f42494e4730000000000000000000000000000000000000000000000000000000815250905090565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ed8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f496e73756666696369656e742062616c616e636500000000000000000000000081525060200191505060405180910390fd5b610ee333848461136e565b5092915050565b6060600254821115610f64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e646578206f7574206f6620626f756e64730000000000000000000000000081525060200191505060405180910390fd5b606082604051908082528060200260200182016040528015610f955781602001602082028038833980820191505090505b509050600060056000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b848110156110bf578183828151811061101857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150806001019050611003565b508192505050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806122d1602b913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561136357fe5b818303905092915050565b600060015442111561149d576000611384611684565b905060006113af60646113a1600f8761172890919063ffffffff16565b61175f90919063ffffffff16565b90506113d860646113ca60558761172890919063ffffffff16565b61175f90919063ffffffff16565b93506114358261143083600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177890919063ffffffff16565b611794565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156114f4576114ef838361197a565b611550565b61154f8361154a84600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177890919063ffffffff16565b611794565b5b60006115a483600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135790919063ffffffff16565b14156115b8576115b384611c48565b611614565b6116138461160e84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461135790919063ffffffff16565b611794565b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080606490506064600254101561169c5760025490505b6000424433604051602001808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140193505050506040516020818303038152906040528051906020012060001c9050600082828161171457fe5b06905061172081610c5b565b935050505090565b60008083141561173b5760009050611759565b600082840290508284828161174c57fe5b041461175457fe5b809150505b92915050565b60008082848161176b57fe5b0490508091505092915050565b60008082840190508381101561178a57fe5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611896576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e76616c6964206164647265737320287570646174652062616c616e63652981525060200191505060405180910390fd5b60006118a183611f18565b90506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061191282848361203d565b156119605782600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611974565b61196984611c48565b611973848461197a565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e76616c69642061646472657373202861646420686f6c646572290000000081525060200191505060405180910390fd5b6000611a8682612143565b905081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c3d600160025461177890919063ffffffff16565b600281905550505050565b600073ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642061646472657373202872656d6f766520686f6c646572290081525060200191505060405180910390fd5b6000611d5582611f18565b9050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f0e600160025461135790919063ffffffff16565b6002819055505050565b600080600190505b600173ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203257611fbd8382612238565b15611fcb5780915050612038565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611f20565b60009150505b919050565b6000600173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806120b9575082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b801561213a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806121395750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483115b5b90509392505050565b600080600190505b600115612231576121bc8184600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661203d565b156121ca5780915050612233565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061214b565b505b919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490509291505056fe46756e6374696f6e2063616e206f6e6c7920626520706572666f726d656420627920746865206f776e6572a264697066735822122006904b731c675932ac655a16b5e0d60068024f0e4a7cda611c9664ce4c4f138764736f6c63430006000033

Deployed Bytecode Sourcemap

1764:7606:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1764:7606:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2240:85;;;:::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;2240:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3022:273;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3022:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2516:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3763:379;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3763:379:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2866:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2866:148:0;;;;;;;;;;;;;;;;;:::i;:::-;;2428:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1975:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3447:102;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3447:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6209:338;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6209:338:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;118:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2333:87;;;:::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;2333:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3557:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3557:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5749:452;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5749:452: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;5749:452:0;;;;;;;;;;;;;;;;;3303:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3303:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;440:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;440:211:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2240:85;2277:13;2303:14;;;;;;;;;;;;;;;;;;;2240:85;:::o;3022:273::-;3090:4;3134:1;3115:21;;:7;:21;;;;3107:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3206:6;3171:11;:23;3183:10;3171:23;;;;;;;;;;;;;;;:32;3195:7;3171:32;;;;;;;;;;;;;;;:41;;;;3249:7;3228:37;;3237:10;3228:37;;;3258:6;3228:37;;;;;;;;;;;;;;;;;;3283:4;3276:11;;3022:273;;;;:::o;2516:93::-;2562:7;1869:23;2582:19;;2516:93;:::o;3763:379::-;3842:4;3886:5;3867:9;:15;3877:4;3867:15;;;;;;;;;;;;;;;;:24;;3859:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3968:5;3935:11;:17;3947:4;3935:17;;;;;;;;;;;;;;;:29;3953:10;3935:29;;;;;;;;;;;;;;;;:38;;3927:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:40;4085:5;4051:11;:17;4063:4;4051:17;;;;;;;;;;;;;;;:29;4069:10;4051:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;4019:11;:17;4031:4;4019:17;;;;;;;;;;;;;;;:29;4037:10;4019:29;;;;;;;;;;;;;;;:72;;;;4104:30;4118:4;4124:2;4128:5;4104:13;:30::i;:::-;;3763:379;;;;;:::o;2866:148::-;359:5;;;;;;;;;;;345:19;;:10;:19;;;337:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2943:9:::1;;2935:5;:17;2927:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3001:5;2989:9;:17;;;;2866:148:::0;:::o;2428:76::-;2469:5;2494:2;2487:9;;2428:76;:::o;1975:27::-;;;;:::o;3447:102::-;3500:7;3527:9;:14;3537:3;3527:14;;;;;;;;;;;;;;;;3520:21;;3447:102;;;:::o;6209:338::-;6258:7;6291:12;;6286:1;:17;;6278:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6338:22;6363:12;:19;2042:1;6363:19;;;;;;;;;;;;;;;;;;;;;;;;;6338:44;;6407:9;6419:1;6407:13;;6403:103;6426:1;6422;:5;6403:103;;;6466:12;:28;6479:14;6466:28;;;;;;;;;;;;;;;;;;;;;;;;;6449:45;;6429:3;;;;;6403:103;;;;6525:14;6518:21;;;6209:338;;;:::o;118:20::-;;;;;;;;;;;;;:::o;2333:87::-;2372:13;2398:14;;;;;;;;;;;;;;;;;;;2333:87;:::o;3557:198::-;3618:4;3668:5;3643:9;:21;3653:10;3643:21;;;;;;;;;;;;;;;;:30;;3635:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3711:36;3725:10;3737:2;3741:5;3711:13;:36::i;:::-;;3557:198;;;;:::o;5749:452::-;5799:16;5841:12;;5836:1;:17;;5828:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5888:29;5934:1;5920:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5920:16:0;;;;5888:48;;5947:22;5972:12;:19;2042:1;5972:19;;;;;;;;;;;;;;;;;;;;;;;;;5947:44;;6016:9;6028:1;6016:13;;6012:150;6035:1;6031;:5;6012:150;;;6076:14;6058:12;6071:1;6058:15;;;;;;;;;;;;;:32;;;;;;;;;;;6122:12;:28;6135:14;6122:28;;;;;;;;;;;;;;;;;;;;;;;;;6105:45;;6038:3;;;;;6012:150;;;;6181:12;6174:19;;;;5749:452;;;:::o;3303:136::-;3377:7;3404:11;:18;3416:5;3404:18;;;;;;;;;;;;;;;:27;3423:7;3404:27;;;;;;;;;;;;;;;;3397:34;;3303:136;;;;:::o;440:211::-;359:5;;;;;;;;;;;345:19;;:10;:19;;;337:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;541:1:::1;521:22;;:8;:22;;;;513:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;607:8;579:37;;600:5;::::0;::::1;;;;;;;;;579:37;;;;;;;;;;;;635:8;627:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;440:211:::0;:::o;1383:123::-;1441:7;1473:1;1468;:6;;1461:14;;;;1497:1;1493;:5;1486:12;;1383:123;;;;:::o;4150:808::-;4231:4;4258:9;;4252:3;:15;4248:295;;;4284:14;4301:18;:16;:18::i;:::-;4284:35;;4334:11;4348:22;4366:3;4348:13;4358:2;4348:5;:9;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;4334:36;;4393:22;4411:3;4393:13;4403:2;4393:5;:9;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;4385:30;;4432:50;4447:6;4455:26;4477:3;4455:9;:17;4465:6;4455:17;;;;;;;;;;;;;;;;:21;;:26;;;;:::i;:::-;4432:14;:50::i;:::-;4519:6;4504:27;;4513:4;4504:27;;;4527:3;4504:27;;;;;;;;;;;;;;;;;;4248:295;;;4584:1;4567:9;:13;4577:2;4567:13;;;;;;;;;;;;;;;;:18;4563:148;;;4602:20;4612:2;4616:5;4602:9;:20::i;:::-;4563:148;;;4655:44;4670:2;4674:24;4692:5;4674:9;:13;4684:2;4674:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4655:14;:44::i;:::-;4563:148;4757:1;4727:26;4747:5;4727:9;:15;4737:4;4727:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;:31;4723:163;;;4775:18;4788:4;4775:12;:18::i;:::-;4723:163;;;4826:48;4841:4;4847:26;4867:5;4847:9;:15;4857:4;4847:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4826:14;:48::i;:::-;4723:163;4918:2;4903:25;;4912:4;4903:25;;;4922:5;4903:25;;;;;;;;;;;;;;;;;;4946:4;4939:11;;4150:808;;;;;:::o;8215:352::-;8260:7;8280:11;8294:3;8280:17;;8329:3;8314:12;;:18;8310:69;;;8355:12;;8349:18;;8310:69;8391:9;8438:3;8443:16;8461:10;8421:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8421:51:0;;;8411:62;;;;;;8403:71;;8391:83;;8485:19;8511:3;8507:1;:7;;;;;;8485:29;;8534:25;8547:11;8534:12;:25::i;:::-;8527:32;;;;;8215:352;:::o;871:208::-;929:7;958:1;953;:6;949:47;;;983:1;976:8;;;;949:47;1006:9;1022:1;1018;:5;1006:17;;1050:1;1045;1041;:5;;;;;;:10;1034:18;;;;1070:1;1063:8;;;871:208;;;;;:::o;1087:288::-;1145:7;1244:9;1260:1;1256;:5;;;;;;1244:17;;1366:1;1359:8;;;1087:288;;;;:::o;1514:147::-;1572:7;1592:9;1608:1;1604;:5;1592:17;;1632:1;1627;:6;;1620:14;;;;1652:1;1645:8;;;1514:147;;;;:::o;6555:471::-;6669:1;6640:31;;:12;:17;6653:3;6640:17;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;6632:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6719:18;6740:20;6756:3;6740:15;:20::i;:::-;6719:41;;6771:18;6792:12;:17;6805:3;6792:17;;;;;;;;;;;;;;;;;;;;;;;;;6771:38;;6825:48;6838:10;6850;6862;6825:12;:48::i;:::-;6822:197;;;6906:10;6889:9;:14;6899:3;6889:14;;;;;;;;;;;;;;;:27;;;;6822:197;;;6949:17;6962:3;6949:12;:17::i;:::-;6981:26;6991:3;6996:10;6981:9;:26::i;:::-;6822:197;6555:471;;;;:::o;4986:366::-;5091:1;5062:31;;:12;:17;5075:3;5062:17;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;5054:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5139:13;5155:19;5166:7;5155:10;:19::i;:::-;5139:35;;5202:7;5185:9;:14;5195:3;5185:14;;;;;;;;;;;;;;;:24;;;;5242:12;:19;5255:5;5242:19;;;;;;;;;;;;;;;;;;;;;;;;;5222:12;:17;5235:3;5222:17;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;5294:3;5272:12;:19;5285:5;5272:19;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;5325:19;5342:1;5325:12;;:16;;:19;;;;:::i;:::-;5310:12;:34;;;;4986:366;;;:::o;5380:361::-;5471:1;5442:31;;:12;:17;5455:3;5442:17;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;5434:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:18;5543:20;5559:3;5543:15;:20::i;:::-;5522:41;;5601:12;:17;5614:3;5601:17;;;;;;;;;;;;;;;;;;;;;;;;;5574:12;:24;5587:10;5574:24;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;5657:1;5629:12;:17;5642:3;5629:17;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;5687:1;5670:9;:14;5680:3;5670:14;;;;;;;;;;;;;;;:18;;;;5714:19;5731:1;5714:12;;:16;;:19;;;;:::i;:::-;5699:12;:34;;;;5380:361;;:::o;7822:385::-;7882:7;7902:22;2042:1;7902:30;;7943:227;2042:1;7949:37;;:12;:28;7962:14;7949:28;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;7943:227;;8006:34;8020:3;8025:14;8006:13;:34::i;:::-;8003:77;;;8066:14;8059:21;;;;;8003:77;8130:12;:28;8143:14;8130:28;;;;;;;;;;;;;;;;;;;;;;;;;8113:45;;7943:227;;;8197:1;8182:17;;;7822:385;;;;:::o;7034:267::-;7136:4;2042:1;7161:19;;:10;:19;;;:56;;;;7209:8;7184:9;:21;7194:10;7184:21;;;;;;;;;;;;;;;;:33;;7161:56;7160:133;;;;;2042:1;7237:19;;:10;:19;;;:55;;;;7271:9;:21;7281:10;7271:21;;;;;;;;;;;;;;;;7260:8;:32;7237:55;7160:133;7153:140;;7034:267;;;;;:::o;7309:368::-;7369:7;7389:24;2042:1;7389:32;;7432:238;7438:4;7432:238;;;7462:72;7475:16;7493:8;7503:12;:30;7516:16;7503:30;;;;;;;;;;;;;;;;;;;;;;;;;7462:12;:72::i;:::-;7459:117;;;7560:16;7553:23;;;;;7459:117;7628:12;:30;7641:16;7628:30;;;;;;;;;;;;;;;;;;;;;;;;;7609:49;;7432:238;;;7309:368;;;;;:::o;7685:129::-;7757:4;7803:3;7781:25;;:12;:18;7794:4;7781:18;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;7774:32;;7685:129;;;;:::o

Swarm Source

ipfs://06904b731c675932ac655a16b5e0d60068024f0e4a7cda611c9664ce4c4f1387
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.