ETH Price: $2,374.61 (+0.27%)

Token

GrokX (GrokX)
 

Overview

Max Total Supply

6,900,000,000 GrokX

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.534884102 GrokX

Value
$0.00
0x6870a91c0905d20a316029561108968e8265945a
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:
GrokX

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 988 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*


 $$$$$$\                      $$\       $$\   $$\ 
$$  __$$\                     $$ |      $$ |  $$ |
$$ /  \__| $$$$$$\   $$$$$$\  $$ |  $$\ \$$\ $$  |
$$ |$$$$\ $$  __$$\ $$  __$$\ $$ | $$  | \$$$$  / 
$$ |\_$$ |$$ |  \__|$$ /  $$ |$$$$$$  /  $$  $$<  
$$ |  $$ |$$ |      $$ |  $$ |$$  _$$<  $$  /\$$\ 
\$$$$$$  |$$ |      \$$$$$$  |$$ | \$$\ $$ /  $$ |
 \______/ \__|       \______/ \__|  \__|\__|  \__|
                                                  

Community https://t.me/GrokxEnglish
Supporting Grok!

*/

pragma solidity 0.8.21;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, 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 sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract GrokX is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 6900000000 * 10**_decimals;
    string private constant _name = "GrokX";
    string private constant _symbol = "GrokX";
    uint256 public _maxTxAmount = 172500000 * 10**_decimals;
    uint256 public _maxWalletSize = 172500000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 17250000 * 10**_decimals;
    uint256 public _maxTaxSwap= 50000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] <
                        block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 50000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
            sendETHToFee(ethBalance);
        }
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff191660011790556002600781905560088190556009818155600a918255601e600b556019600c556005600d555f600e55620000459162000348565b6200005590630a4824206200035f565b600f55620000666009600a62000348565b6200007690630a4824206200035f565b601055620000876009600a62000348565b620000979063010736d06200035f565b601155620000a86009600a62000348565b620000b8906302faf0806200035f565b6012556014805461ffff60a81b19169055348015620000d5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191661010033021790556200013b6009600a62000348565b6200014c9064019b45a5006200035f565b335f908152600160208190526040822092909255600390620001755f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001d83390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002116009600a62000348565b620002229064019b45a5006200035f565b60405190815260200160405180910390a362000379565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028d57815f190482111562000271576200027162000239565b808516156200027f57918102915b93841c939080029062000252565b509250929050565b5f82620002a55750600162000342565b81620002b357505f62000342565b8160018114620002cc5760028114620002d757620002f7565b600191505062000342565b60ff841115620002eb57620002eb62000239565b50506001821b62000342565b5060208310610133831016604e8410600b84101617156200031c575081810a62000342565b6200032883836200024d565b805f19048211156200033e576200033e62000239565b0290505b92915050565b5f6200035860ff84168362000295565b9392505050565b808202811582820484141762000342576200034262000239565b611a0580620003875f395ff3fe608060405260043610610140575f3560e01c8063751039fc116100bb578063a9059cbb11610071578063c876d0b911610057578063c876d0b914610335578063c9567bf91461034e578063dd62ed3e14610362575f80fd5b8063a9059cbb14610301578063bf474bed14610320575f80fd5b80638da5cb5b116100a15780638da5cb5b146102c65780638f9a55c0146102ec57806395d89b411461014b575f80fd5b8063751039fc1461029d5780637d1db4a5146102b1575f80fd5b806323b872dd1161011057806351bc3c85116100f657806351bc3c851461023f57806370a0823114610255578063715018a614610289575f80fd5b806323b872dd14610205578063313ce56714610224575f80fd5b806306fdde031461014b578063095ea7b31461019f5780630faee56f146101ce57806318160ddd146101f1575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b50604080518082018252600581527f47726f6b5800000000000000000000000000000000000000000000000000000060208201529051610196919061162d565b60405180910390f35b3480156101aa575f80fd5b506101be6101b936600461168f565b6103a6565b6040519015158152602001610196565b3480156101d9575f80fd5b506101e360125481565b604051908152602001610196565b3480156101fc575f80fd5b506101e36103bc565b348015610210575f80fd5b506101be61021f3660046116b9565b6103dd565b34801561022f575f80fd5b5060405160098152602001610196565b34801561024a575f80fd5b50610253610444565b005b348015610260575f80fd5b506101e361026f3660046116f7565b6001600160a01b03165f9081526001602052604090205490565b348015610294575f80fd5b5061025361049a565b3480156102a8575f80fd5b5061025361054d565b3480156102bc575f80fd5b506101e3600f5481565b3480156102d1575f80fd5b505f546040516001600160a01b039091168152602001610196565b3480156102f7575f80fd5b506101e360105481565b34801561030c575f80fd5b506101be61031b36600461168f565b61063b565b34801561032b575f80fd5b506101e360115481565b348015610340575f80fd5b506006546101be9060ff1681565b348015610359575f80fd5b50610253610647565b34801561036d575f80fd5b506101e361037c366004611712565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b2338484610abf565b5060015b92915050565b5f6103c96009600a61183d565b6103d89064019b45a50061184b565b905090565b5f6103e9848484610c16565b61043a8433610435856040518060600160405280602881526020016119a8602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611257565b610abf565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610468575f80fd5b305f908152600160205260409020548015610486576104868161128f565b4780156104965761049681611431565b5050565b5f546001600160a01b031633146104f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f805473ffffffffffffffffffffffffffffffffffffffff19169055565b5f546001600160a01b031633146105a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ef565b6105b26009600a61183d565b6105c19064019b45a50061184b565b600f556105d06009600a61183d565b6105df9064019b45a50061184b565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106196009600a61183d565b6106289064019b45a50061184b565b60405190815260200160405180910390a1565b5f6103b2338484610c16565b5f546001600160a01b031633146106a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ef565b60145474010000000000000000000000000000000000000000900460ff161561070b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104ef565b6013805473ffffffffffffffffffffffffffffffffffffffff1916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107629030906107536009600a61183d565b6104359064019b45a50061184b565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d69190611862565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610835573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190611862565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190611862565b601480546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199091161790556013541663f305d7194730610933816001600160a01b03165f9081526001602052604090205490565b5f806109465f546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109c4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109e9919061187d565b50506014546013546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b91906118a8565b50601480547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6001600160a01b038316610b3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ef565b6001600160a01b038216610bb65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104ef565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104ef565b6001600160a01b038216610d0e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104ef565b5f8111610d835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016104ef565b5f80546001600160a01b03858116911614801590610dae57505f546001600160a01b03848116911614155b1561111a57610ddf6064610dd9600b54600e5411610dce57600754610dd2565b6009545b859061146c565b9061150d565b60065490915060ff1615610ed9576013546001600160a01b03848116911614801590610e1957506014546001600160a01b03848116911614155b15610ed957325f908152600560205260409020544311610ec75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60648201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000608482015260a4016104ef565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f0457506013546001600160a01b03848116911614155b8015610f2857506001600160a01b0383165f9081526003602052604090205460ff16155b1561100e57600f54821115610f7f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104ef565b60105482610fa1856001600160a01b03165f9081526001602052604090205490565b610fab91906118c7565b1115610ff95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104ef565b600e8054905f611008836118da565b91905055505b6014546001600160a01b03848116911614801561103457506001600160a01b0384163014155b156110615761105e6064610dd9600c54600e541161105457600854610dd2565b600a54859061146c565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561109757506014546001600160a01b038581169116145b80156110bf5750601454760100000000000000000000000000000000000000000000900460ff165b80156110cc575060115481115b80156110db5750600d54600e54115b15611118576110fd6110f8846110f38460125461154e565b61154e565b61128f565b4766b1a2bc2ec500008111156111165761111647611431565b505b505b801561119257305f908152600160205260409020546111399082611562565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111899085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111b490836115c0565b6001600160a01b0385165f908152600160205260409020556111f76111d983836115c0565b6001600160a01b0385165f9081526001602052604090205490611562565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61124085856115c0565b60405190815260200160405180910390a350505050565b5f818484111561127a5760405162461bcd60e51b81526004016104ef919061162d565b505f61128684866118f2565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d5576112d5611905565b6001600160a01b03928316602091820292909201810191909152601354604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113699190611862565b8160018151811061137c5761137c611905565b6001600160a01b0392831660209182029290920101526013546113a29130911684610abf565b6013546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906113f39085905f90869030904290600401611919565b5f604051808303815f87803b15801561140a575f80fd5b505af115801561141c573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f803e3d5ffd5b5f825f0361147b57505f6103b6565b5f611486838561184b565b9050826114938583611988565b146115065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016104ef565b9392505050565b5f61150683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b5f81831161155c5782611506565b50919050565b5f8061156e83856118c7565b9050838110156115065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ef565b5f61150683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611257565b5f81836116215760405162461bcd60e51b81526004016104ef919061162d565b505f6112868486611988565b5f6020808352835180828501525f5b818110156116585785810183015185820160400152820161163c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461168c575f80fd5b50565b5f80604083850312156116a0575f80fd5b82356116ab81611678565b946020939093013593505050565b5f805f606084860312156116cb575f80fd5b83356116d681611678565b925060208401356116e681611678565b929592945050506040919091013590565b5f60208284031215611707575f80fd5b813561150681611678565b5f8060408385031215611723575f80fd5b823561172e81611678565b9150602083013561173e81611678565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561179757815f190482111561177d5761177d611749565b8085161561178a57918102915b93841c9390800290611762565b509250929050565b5f826117ad575060016103b6565b816117b957505f6103b6565b81600181146117cf57600281146117d9576117f5565b60019150506103b6565b60ff8411156117ea576117ea611749565b50506001821b6103b6565b5060208310610133831016604e8410600b8410161715611818575081810a6103b6565b611822838361175d565b805f190482111561183557611835611749565b029392505050565b5f61150660ff84168361179f565b80820281158282048414176103b6576103b6611749565b5f60208284031215611872575f80fd5b815161150681611678565b5f805f6060848603121561188f575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118b8575f80fd5b81518015158114611506575f80fd5b808201808211156103b6576103b6611749565b5f600182016118eb576118eb611749565b5060010190565b818103818111156103b6576103b6611749565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119675784516001600160a01b031683529383019391830191600101611942565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119a257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3f57728cf322f90740c5bf44d88033803a39d5fbb9820aa5115387bc5f761b264736f6c63430008150033

Deployed Bytecode

0x608060405260043610610140575f3560e01c8063751039fc116100bb578063a9059cbb11610071578063c876d0b911610057578063c876d0b914610335578063c9567bf91461034e578063dd62ed3e14610362575f80fd5b8063a9059cbb14610301578063bf474bed14610320575f80fd5b80638da5cb5b116100a15780638da5cb5b146102c65780638f9a55c0146102ec57806395d89b411461014b575f80fd5b8063751039fc1461029d5780637d1db4a5146102b1575f80fd5b806323b872dd1161011057806351bc3c85116100f657806351bc3c851461023f57806370a0823114610255578063715018a614610289575f80fd5b806323b872dd14610205578063313ce56714610224575f80fd5b806306fdde031461014b578063095ea7b31461019f5780630faee56f146101ce57806318160ddd146101f1575f80fd5b3661014757005b5f80fd5b348015610156575f80fd5b50604080518082018252600581527f47726f6b5800000000000000000000000000000000000000000000000000000060208201529051610196919061162d565b60405180910390f35b3480156101aa575f80fd5b506101be6101b936600461168f565b6103a6565b6040519015158152602001610196565b3480156101d9575f80fd5b506101e360125481565b604051908152602001610196565b3480156101fc575f80fd5b506101e36103bc565b348015610210575f80fd5b506101be61021f3660046116b9565b6103dd565b34801561022f575f80fd5b5060405160098152602001610196565b34801561024a575f80fd5b50610253610444565b005b348015610260575f80fd5b506101e361026f3660046116f7565b6001600160a01b03165f9081526001602052604090205490565b348015610294575f80fd5b5061025361049a565b3480156102a8575f80fd5b5061025361054d565b3480156102bc575f80fd5b506101e3600f5481565b3480156102d1575f80fd5b505f546040516001600160a01b039091168152602001610196565b3480156102f7575f80fd5b506101e360105481565b34801561030c575f80fd5b506101be61031b36600461168f565b61063b565b34801561032b575f80fd5b506101e360115481565b348015610340575f80fd5b506006546101be9060ff1681565b348015610359575f80fd5b50610253610647565b34801561036d575f80fd5b506101e361037c366004611712565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b2338484610abf565b5060015b92915050565b5f6103c96009600a61183d565b6103d89064019b45a50061184b565b905090565b5f6103e9848484610c16565b61043a8433610435856040518060600160405280602881526020016119a8602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611257565b610abf565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b031614610468575f80fd5b305f908152600160205260409020548015610486576104868161128f565b4780156104965761049681611431565b5050565b5f546001600160a01b031633146104f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f805473ffffffffffffffffffffffffffffffffffffffff19169055565b5f546001600160a01b031633146105a65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ef565b6105b26009600a61183d565b6105c19064019b45a50061184b565b600f556105d06009600a61183d565b6105df9064019b45a50061184b565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106196009600a61183d565b6106289064019b45a50061184b565b60405190815260200160405180910390a1565b5f6103b2338484610c16565b5f546001600160a01b031633146106a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ef565b60145474010000000000000000000000000000000000000000900460ff161561070b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104ef565b6013805473ffffffffffffffffffffffffffffffffffffffff1916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107629030906107536009600a61183d565b6104359064019b45a50061184b565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d69190611862565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610835573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108599190611862565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190611862565b601480546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff199091161790556013541663f305d7194730610933816001600160a01b03165f9081526001602052604090205490565b5f806109465f546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109c4573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109e9919061187d565b50506014546013546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b91906118a8565b50601480547fffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffff16760100010000000000000000000000000000000000000000179055565b6001600160a01b038316610b3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104ef565b6001600160a01b038216610bb65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104ef565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104ef565b6001600160a01b038216610d0e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104ef565b5f8111610d835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016104ef565b5f80546001600160a01b03858116911614801590610dae57505f546001600160a01b03848116911614155b1561111a57610ddf6064610dd9600b54600e5411610dce57600754610dd2565b6009545b859061146c565b9061150d565b60065490915060ff1615610ed9576013546001600160a01b03848116911614801590610e1957506014546001600160a01b03848116911614155b15610ed957325f908152600560205260409020544311610ec75760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60648201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000608482015260a4016104ef565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f0457506013546001600160a01b03848116911614155b8015610f2857506001600160a01b0383165f9081526003602052604090205460ff16155b1561100e57600f54821115610f7f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104ef565b60105482610fa1856001600160a01b03165f9081526001602052604090205490565b610fab91906118c7565b1115610ff95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104ef565b600e8054905f611008836118da565b91905055505b6014546001600160a01b03848116911614801561103457506001600160a01b0384163014155b156110615761105e6064610dd9600c54600e541161105457600854610dd2565b600a54859061146c565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561109757506014546001600160a01b038581169116145b80156110bf5750601454760100000000000000000000000000000000000000000000900460ff165b80156110cc575060115481115b80156110db5750600d54600e54115b15611118576110fd6110f8846110f38460125461154e565b61154e565b61128f565b4766b1a2bc2ec500008111156111165761111647611431565b505b505b801561119257305f908152600160205260409020546111399082611562565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111899085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111b490836115c0565b6001600160a01b0385165f908152600160205260409020556111f76111d983836115c0565b6001600160a01b0385165f9081526001602052604090205490611562565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61124085856115c0565b60405190815260200160405180910390a350505050565b5f818484111561127a5760405162461bcd60e51b81526004016104ef919061162d565b505f61128684866118f2565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d5576112d5611905565b6001600160a01b03928316602091820292909201810191909152601354604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611345573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113699190611862565b8160018151811061137c5761137c611905565b6001600160a01b0392831660209182029290920101526013546113a29130911684610abf565b6013546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906113f39085905f90869030904290600401611919565b5f604051808303815f87803b15801561140a575f80fd5b505af115801561141c573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f803e3d5ffd5b5f825f0361147b57505f6103b6565b5f611486838561184b565b9050826114938583611988565b146115065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016104ef565b9392505050565b5f61150683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611601565b5f81831161155c5782611506565b50919050565b5f8061156e83856118c7565b9050838110156115065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ef565b5f61150683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611257565b5f81836116215760405162461bcd60e51b81526004016104ef919061162d565b505f6112868486611988565b5f6020808352835180828501525f5b818110156116585785810183015185820160400152820161163c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461168c575f80fd5b50565b5f80604083850312156116a0575f80fd5b82356116ab81611678565b946020939093013593505050565b5f805f606084860312156116cb575f80fd5b83356116d681611678565b925060208401356116e681611678565b929592945050506040919091013590565b5f60208284031215611707575f80fd5b813561150681611678565b5f8060408385031215611723575f80fd5b823561172e81611678565b9150602083013561173e81611678565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561179757815f190482111561177d5761177d611749565b8085161561178a57918102915b93841c9390800290611762565b509250929050565b5f826117ad575060016103b6565b816117b957505f6103b6565b81600181146117cf57600281146117d9576117f5565b60019150506103b6565b60ff8411156117ea576117ea611749565b50506001821b6103b6565b5060208310610133831016604e8410600b8410161715611818575081810a6103b6565b611822838361175d565b805f190482111561183557611835611749565b029392505050565b5f61150660ff84168361179f565b80820281158282048414176103b6576103b6611749565b5f60208284031215611872575f80fd5b815161150681611678565b5f805f6060848603121561188f575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118b8575f80fd5b81518015158114611506575f80fd5b808201808211156103b6576103b6611749565b5f600182016118eb576118eb611749565b5060010190565b818103818111156103b6576103b6611749565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119675784516001600160a01b031683529383019391830191600101611942565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119a257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3f57728cf322f90740c5bf44d88033803a39d5fbb9820aa5115387bc5f761b264736f6c63430008150033

Deployed Bytecode Sourcemap

3979:7959:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5892:83;;;;;;;;;;-1:-1:-1;5962:5:0;;;;;;;;;;;;;;;;5892:83;;;;5962:5;5892:83;:::i;:::-;;;;;;;;6725:161;;;;;;;;;;-1:-1:-1;6725:161:0;;;;;:::i;:::-;;:::i;:::-;;;1211:14:1;;1204:22;1186:41;;1174:2;1159:18;6725:161:0;1046:187:1;5167:52:0;;;;;;;;;;;;;;;;;;;1384:25:1;;;1372:2;1357:18;5167:52:0;1238:177:1;6169:95:0;;;;;;;;;;;;;:::i;6894:313::-;;;;;;;;;;-1:-1:-1;6894:313:0;;;;;:::i;:::-;;:::i;6078:83::-;;;;;;;;;;-1:-1:-1;6078:83:0;;4806:1;2023:36:1;;2011:2;1996:18;6078:83:0;1881:184:1;11583:352:0;;;;;;;;;;;;;:::i;:::-;;6272:119;;;;;;;;;;-1:-1:-1;6272:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6365:18:0;6338:7;6365:18;;;:9;:18;;;;;;;6272:119;3060:148;;;;;;;;;;;;;:::i;10561:196::-;;;;;;;;;;;;;:::i;4976:55::-;;;;;;;;;;;;;;;;2846:79;;;;;;;;;;-1:-1:-1;2884:7:0;2911:6;2846:79;;-1:-1:-1;;;;;2911:6:0;;;2468:74:1;;2456:2;2441:18;2846:79:0;2322:226:1;5038:57:0;;;;;;;;;;;;;;;;6399:167;;;;;;;;;;-1:-1:-1;6399:167:0;;;;;:::i;:::-;;:::i;5102:58::-;;;;;;;;;;;;;;;;4366:39;;;;;;;;;;-1:-1:-1;4366:39:0;;;;;;;;10867:671;;;;;;;;;;;;;:::i;6574:143::-;;;;;;;;;;-1:-1:-1;6574:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6682:18:0;;;6655:7;6682:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6574:143;6725:161;6800:4;6817:39;681:10;6840:7;6849:6;6817:8;:39::i;:::-;-1:-1:-1;6874:4:0;6725:161;;;;;:::o;6169:95::-;6222:7;4862:13;4806:1;4862:2;:13;:::i;:::-;4849:26;;:10;:26;:::i;:::-;6242:14;;6169:95;:::o;6894:313::-;6992:4;7009:36;7019:6;7027:9;7038:6;7009:9;:36::i;:::-;7056:121;7065:6;681:10;7087:89;7125:6;7087:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7087:19:0;;;;;;:11;:19;;;;;;;;681:10;7087:33;;;;;;;;;;:37;:89::i;:::-;7056:8;:121::i;:::-;-1:-1:-1;7195:4:0;6894:313;;;;;:::o;11583:352::-;11647:10;;;;;-1:-1:-1;;;;;11647:10:0;681;-1:-1:-1;;;;;11633:24:0;;11625:33;;;;;;11708:4;11669:20;6365:18;;;:9;:18;;;;;;11728:14;;11725:75;;11758:30;11775:12;11758:16;:30::i;:::-;11829:21;11864:12;;11861:67;;11892:24;11905:10;11892:12;:24::i;:::-;11614:321;;11583:352::o;3060:148::-;2973:6;;-1:-1:-1;;;;;2973:6:0;681:10;2973:22;2965:67;;;;-1:-1:-1;;;2965:67:0;;4893:2:1;2965:67:0;;;4875:21:1;;;4912:18;;;4905:30;4971:34;4951:18;;;4944:62;5023:18;;2965:67:0;;;;;;;;;3167:1:::1;3151:6:::0;;3130:40:::1;::::0;-1:-1:-1;;;;;3151:6:0;;::::1;::::0;3130:40:::1;::::0;3167:1;;3130:40:::1;3198:1;3181:19:::0;;-1:-1:-1;;3181:19:0::1;::::0;;3060:148::o;10561:196::-;2973:6;;-1:-1:-1;;;;;2973:6:0;681:10;2973:22;2965:67;;;;-1:-1:-1;;;2965:67:0;;4893:2:1;2965:67:0;;;4875:21:1;;;4912:18;;;4905:30;4971:34;4951:18;;;4944:62;5023:18;;2965:67:0;4691:356:1;2965:67:0;4862:13:::1;4806:1;4862:2;:13;:::i;:::-;4849:26;::::0;:10:::1;:26;:::i;:::-;10614:12;:22:::0;4862:13:::1;4806:1;4862:2;:13;:::i;:::-;4849:26;::::0;:10:::1;:26;:::i;:::-;10647:14;:22:::0;10680:20:::1;:26:::0;;-1:-1:-1;;10680:26:0::1;::::0;;10722:27:::1;4862:13;4806:1;-1:-1:-1::0;4862:13:0::1;:::i;:::-;4849:26;::::0;:10:::1;:26;:::i;:::-;10722:27;::::0;1384:25:1;;;1372:2;1357:18;10722:27:0::1;;;;;;;10561:196::o:0;6399:167::-;6477:4;6494:42;681:10;6518:9;6529:6;6494:9;:42::i;10867:671::-;2973:6;;-1:-1:-1;;;;;2973:6:0;681:10;2973:22;2965:67;;;;-1:-1:-1;;;2965:67:0;;4893:2:1;2965:67:0;;;4875:21:1;;;4912:18;;;4905:30;4971:34;4951:18;;;4944:62;5023:18;;2965:67:0;4691:356:1;2965:67:0;10931:11:::1;::::0;;;::::1;;;10930:12;10922:47;;;::::0;-1:-1:-1;;;10922:47:0;;5254:2:1;10922:47:0::1;::::0;::::1;5236:21:1::0;5293:2;5273:18;;;5266:30;5332:25;5312:18;;;5305:53;5375:18;;10922:47:0::1;5052:347:1::0;10922:47:0::1;10980:15;:80:::0;;-1:-1:-1;;10980:80:0::1;11017:42;10980:80:::0;;::::1;::::0;;;11071:58:::1;::::0;11088:4:::1;::::0;4862:13:::1;4806:1;4862:2;:13;:::i;:::-;4849:26;::::0;:10:::1;:26;:::i;11071:58::-;11174:15;;;;;;;;;-1:-1:-1::0;;;;;11174:15:0::1;-1:-1:-1::0;;;;;11174:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11156:55:0::1;;11220:4;11227:15;;;;;;;;;-1:-1:-1::0;;;;;11227:15:0::1;-1:-1:-1::0;;;;;11227:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11156:94;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;5913:15:1;;;11156:94:0::1;::::0;::::1;5895:34:1::0;5965:15;;5945:18;;;5938:43;5807:18;;11156:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11140:13;:110:::0;;-1:-1:-1;;;;;11140:110:0;;::::1;-1:-1:-1::0;;11140:110:0;;::::1;;::::0;;11261:15:::1;::::0;::::1;:31;11300:21;11331:4;11337:24;11331:4:::0;-1:-1:-1;;;;;6365:18:0;6338:7;6365:18;;;:9;:18;;;;;;;6272:119;11337:24:::1;11362:1;11364::::0;11366:7:::1;2884::::0;2911:6;-1:-1:-1;;;;;2911:6:0;;2846:79;11366:7:::1;11261:129;::::0;::::1;::::0;;;;;;;-1:-1:-1;;;;;6374:15:1;;;11261:129:0::1;::::0;::::1;6356:34:1::0;6406:18;;;6399:34;;;;6449:18;;;6442:34;;;;6492:18;;;6485:34;6556:15;;;6535:19;;;6528:44;11374:15:0::1;6588:19:1::0;;;6581:35;6267:19;;11261:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11408:13:0::1;::::0;11439:15:::1;::::0;11401:71:::1;::::0;;;;-1:-1:-1;;;;;11439:15:0;;::::1;11401:71;::::0;::::1;7112:74:1::0;-1:-1:-1;;7202:18:1;;;7195:34;11408:13:0;::::1;::::0;-1:-1:-1;11401:29:0::1;::::0;7085:18:1;;11401:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11483:11:0::1;:18:::0;;11512;;;;;;10867:671::o;7215:335::-;-1:-1:-1;;;;;7308:19:0;;7300:68;;;;-1:-1:-1;;;7300:68:0;;7724:2:1;7300:68:0;;;7706:21:1;7763:2;7743:18;;;7736:30;7802:34;7782:18;;;7775:62;7873:6;7853:18;;;7846:34;7897:19;;7300:68:0;7522:400:1;7300:68:0;-1:-1:-1;;;;;7387:21:0;;7379:68;;;;-1:-1:-1;;;7379:68:0;;8129:2:1;7379:68:0;;;8111:21:1;8168:2;8148:18;;;8141:30;8207:34;8187:18;;;8180:62;8278:4;8258:18;;;8251:32;8300:19;;7379:68:0;7927:398:1;7379:68:0;-1:-1:-1;;;;;7458:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7510:32;;1384:25:1;;;7510:32:0;;1357:18:1;7510:32:0;;;;;;;7215:335;;;:::o;7558:2394::-;-1:-1:-1;;;;;7646:18:0;;7638:68;;;;-1:-1:-1;;;7638:68:0;;8532:2:1;7638:68:0;;;8514:21:1;8571:2;8551:18;;;8544:30;8610:34;8590:18;;;8583:62;8681:7;8661:18;;;8654:35;8706:19;;7638:68:0;8330:401:1;7638:68:0;-1:-1:-1;;;;;7725:16:0;;7717:64;;;;-1:-1:-1;;;7717:64:0;;8938:2:1;7717:64:0;;;8920:21:1;8977:2;8957:18;;;8950:30;9016:34;8996:18;;;8989:62;9087:5;9067:18;;;9060:33;9110:19;;7717:64:0;8736:399:1;7717:64:0;7809:1;7800:6;:10;7792:64;;;;-1:-1:-1;;;7792:64:0;;9342:2:1;7792:64:0;;;9324:21:1;9381:2;9361:18;;;9354:30;9420:34;9400:18;;;9393:62;9491:11;9471:18;;;9464:39;9520:19;;7792:64:0;9140:405:1;7792:64:0;7867:17;2911:6;;-1:-1:-1;;;;;7901:15:0;;;2911:6;;7901:15;;;;:32;;-1:-1:-1;2884:7:0;2911:6;-1:-1:-1;;;;;7920:13:0;;;2911:6;;7920:13;;7901:32;7897:1695;;;7962:76;8034:3;7962:67;7984:15;;7974:9;;:25;7973:55;;8014:14;;7973:55;;;8001:12;;7973:55;7962:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8059:20;;7950:88;;-1:-1:-1;8059:20:0;;8055:486;;;8118:15;;-1:-1:-1;;;;;8104:30:0;;;8118:15;;8104:30;;;;:62;;-1:-1:-1;8152:13:0;;-1:-1:-1;;;;;8138:28:0;;;8152:13;;8138:28;;8104:62;8100:426;;;8254:9;8225:39;;;;:28;:39;;;;;;8292:12;-1:-1:-1;8191:238:0;;;;-1:-1:-1;;;8191:238:0;;9752:2:1;8191:238:0;;;9734:21:1;9791:2;9771:18;;;9764:30;9830:34;9810:18;;;9803:62;9901:34;9881:18;;;9874:62;9973:11;9952:19;;;9945:40;10002:19;;8191:238:0;9550:477:1;8191:238:0;8481:9;8452:39;;;;:28;:39;;;;;8494:12;8452:54;;8100:426;8569:13;;-1:-1:-1;;;;;8561:21:0;;;8569:13;;8561:21;:55;;;;-1:-1:-1;8600:15:0;;-1:-1:-1;;;;;8586:30:0;;;8600:15;;8586:30;;8561:55;:83;;;;-1:-1:-1;;;;;;8622:22:0;;;;;;:18;:22;;;;;;;;8620:24;8561:83;8557:313;;;8684:12;;8674:6;:22;;8666:60;;;;-1:-1:-1;;;8666:60:0;;10234:2:1;8666:60:0;;;10216:21:1;10273:2;10253:18;;;10246:30;10312:27;10292:18;;;10285:55;10357:18;;8666:60:0;10032:349:1;8666:60:0;8779:14;;8769:6;8753:13;8763:2;-1:-1:-1;;;;;6365:18:0;6338:7;6365:18;;;:9;:18;;;;;;;6272:119;8753:13;:22;;;;:::i;:::-;:40;;8745:79;;;;-1:-1:-1;;;8745:79:0;;10718:2:1;8745:79:0;;;10700:21:1;10757:2;10737:18;;;10730:30;10796:28;10776:18;;;10769:56;10842:18;;8745:79:0;10516:350:1;8745:79:0;8843:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8557:313;8895:13;;-1:-1:-1;;;;;8889:19:0;;;8895:13;;8889:19;:43;;;;-1:-1:-1;;;;;;8912:20:0;;8927:4;8912:20;;8889:43;8886:174;;;8965:79;9040:3;8965:70;8987:16;;8977:9;;:26;8976:58;;9019:15;;8976:58;;;9005:13;;8965:6;;:10;:70::i;:79::-;8953:91;;8886:174;9125:4;9076:28;6365:18;;;:9;:18;;;;;;9151:6;;-1:-1:-1;;;9151:6:0;;;;9150:7;:30;;;;-1:-1:-1;9167:13:0;;-1:-1:-1;;;;;9161:19:0;;;9167:13;;9161:19;9150:30;:45;;;;-1:-1:-1;9184:11:0;;;;;;;9150:45;:87;;;;;9220:17;;9199:20;:38;9150:87;:119;;;;;9251:18;;9241:9;;:28;9150:119;9146:435;;;9290:67;9307:49;9311:6;9318:37;9322:20;9343:11;;9318:3;:37::i;:::-;9307:3;:49::i;:::-;9290:16;:67::i;:::-;9405:21;9469:17;9448:38;;9445:121;;;9511:35;9524:21;9511:12;:35::i;:::-;9271:310;9146:435;7935:1657;7897:1695;9607:11;;9604:165;;9677:4;9659:24;;;;:9;:24;;;;;;:39;;9688:9;9659:28;:39::i;:::-;9652:4;9634:24;;;;:9;:24;;;;;;;:64;;;;9718:39;;-1:-1:-1;;;;;9718:39:0;;;;;;;9747:9;1384:25:1;;1372:2;1357:18;;1238:177;9718:39:0;;;;;;;;9604:165;-1:-1:-1;;;;;9795:15:0;;;;;;:9;:15;;;;;;:27;;9815:6;9795:19;:27::i;:::-;-1:-1:-1;;;;;9779:15:0;;;;;;:9;:15;;;;;:43;9847:40;9865:21;:6;9876:9;9865:10;:21::i;:::-;-1:-1:-1;;;;;9847:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9833:13:0;;;;;;;:9;:13;;;;;:54;;;;9903:41;;;9922:21;:6;9933:9;9922:10;:21::i;:::-;9903:41;;1384:25:1;;;1372:2;1357:18;9903:41:0;;;;;;;7627:2325;7558:2394;;;:::o;1738:190::-;1824:7;1860:12;1852:6;;;;1844:29;;;;-1:-1:-1;;;1844:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1884:9:0;1896:5;1900:1;1896;:5;:::i;:::-;1884:17;1738:190;-1:-1:-1;;;;;1738:190:0:o;10070:483::-;5501:6;:13;;-1:-1:-1;;;;5501:13:0;-1:-1:-1;;;5501:13:0;;;10172:16:::1;::::0;;10186:1:::1;10172:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10172:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10172:16:0::1;10148:40;;10217:4;10199;10204:1;10199:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10199:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10243:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10199:7;;10243:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10233:4;10238:1;10233:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10233:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10308:15:::1;::::0;10276:62:::1;::::0;10293:4:::1;::::0;10308:15:::1;10326:11:::0;10276:8:::1;:62::i;:::-;10349:15;::::0;:196:::1;::::0;;;;-1:-1:-1;;;;;10349:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10430:11;;10349:15:::1;::::0;10472:4;;10499::::1;::::0;10519:15:::1;::::0;10349:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5537:6:0;:14;;-1:-1:-1;;;;5537:14:0;;;-1:-1:-1;;;;10070:483:0:o;10765:92::-;10822:10;;:27;;:10;;;;-1:-1:-1;;;;;10822:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1936:246;1994:7;2018:1;2023;2018:6;2014:47;;-1:-1:-1;2048:1:0;2041:8;;2014:47;2071:9;2083:5;2087:1;2083;:5;:::i;:::-;2071:17;-1:-1:-1;2116:1:0;2107:5;2111:1;2071:17;2107:5;:::i;:::-;:10;2099:56;;;;-1:-1:-1;;;2099:56:0;;13034:2:1;2099:56:0;;;13016:21:1;13073:2;13053:18;;;13046:30;13112:34;13092:18;;;13085:62;13183:3;13163:18;;;13156:31;13204:19;;2099:56:0;12832:397:1;2099:56:0;2173:1;1936:246;-1:-1:-1;;;1936:246:0:o;2190:132::-;2248:7;2275:39;2279:1;2282;2275:39;;;;;;;;;;;;;;;;;:3;:39::i;9962:100::-;10019:7;10048:1;10046;:3;10045:9;;10053:1;10045:9;;;-1:-1:-1;10051:1:0;9962:100;-1:-1:-1;9962:100:0:o;1407:179::-;1465:7;;1497:5;1501:1;1497;:5;:::i;:::-;1485:17;;1526:1;1521;:6;;1513:46;;;;-1:-1:-1;;;1513:46:0;;13436:2:1;1513:46:0;;;13418:21:1;13475:2;13455:18;;;13448:30;13514:29;13494:18;;;13487:57;13561:18;;1513:46:0;13234:351:1;1594:136:0;1652:7;1679:43;1683:1;1686;1679:43;;;;;;;;;;;;;;;;;:3;:43::i;2330:189::-;2416:7;2451:12;2444:5;2436:28;;;;-1:-1:-1;;;2436:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2475:9:0;2487:5;2491:1;2487;:5;:::i;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:154::-;-1:-1:-1;;;;;646:5:1;642:54;635:5;632:65;622:93;;711:1;708;701:12;622:93;567:154;:::o;726:315::-;794:6;802;855:2;843:9;834:7;830:23;826:32;823:52;;;871:1;868;861:12;823:52;910:9;897:23;929:31;954:5;929:31;:::i;:::-;979:5;1031:2;1016:18;;;;1003:32;;-1:-1:-1;;;726:315:1:o;1420:456::-;1497:6;1505;1513;1566:2;1554:9;1545:7;1541:23;1537:32;1534:52;;;1582:1;1579;1572:12;1534:52;1621:9;1608:23;1640:31;1665:5;1640:31;:::i;:::-;1690:5;-1:-1:-1;1747:2:1;1732:18;;1719:32;1760:33;1719:32;1760:33;:::i;:::-;1420:456;;1812:7;;-1:-1:-1;;;1866:2:1;1851:18;;;;1838:32;;1420:456::o;2070:247::-;2129:6;2182:2;2170:9;2161:7;2157:23;2153:32;2150:52;;;2198:1;2195;2188:12;2150:52;2237:9;2224:23;2256:31;2281:5;2256:31;:::i;2553:388::-;2621:6;2629;2682:2;2670:9;2661:7;2657:23;2653:32;2650:52;;;2698:1;2695;2688:12;2650:52;2737:9;2724:23;2756:31;2781:5;2756:31;:::i;:::-;2806:5;-1:-1:-1;2863:2:1;2848:18;;2835:32;2876:33;2835:32;2876:33;:::i;:::-;2928:7;2918:17;;;2553:388;;;;;:::o;2946:184::-;-1:-1:-1;;;2995:1:1;2988:88;3095:4;3092:1;3085:15;3119:4;3116:1;3109:15;3135:422;3224:1;3267:5;3224:1;3281:270;3302:7;3292:8;3289:21;3281:270;;;3361:4;3357:1;3353:6;3349:17;3343:4;3340:27;3337:53;;;3370:18;;:::i;:::-;3420:7;3410:8;3406:22;3403:55;;;3440:16;;;;3403:55;3519:22;;;;3479:15;;;;3281:270;;;3285:3;3135:422;;;;;:::o;3562:806::-;3611:5;3641:8;3631:80;;-1:-1:-1;3682:1:1;3696:5;;3631:80;3730:4;3720:76;;-1:-1:-1;3767:1:1;3781:5;;3720:76;3812:4;3830:1;3825:59;;;;3898:1;3893:130;;;;3805:218;;3825:59;3855:1;3846:10;;3869:5;;;3893:130;3930:3;3920:8;3917:17;3914:43;;;3937:18;;:::i;:::-;-1:-1:-1;;3993:1:1;3979:16;;4008:5;;3805:218;;4107:2;4097:8;4094:16;4088:3;4082:4;4079:13;4075:36;4069:2;4059:8;4056:16;4051:2;4045:4;4042:12;4038:35;4035:77;4032:159;;;-1:-1:-1;4144:19:1;;;4176:5;;4032:159;4223:34;4248:8;4242:4;4223:34;:::i;:::-;4293:6;4289:1;4285:6;4281:19;4272:7;4269:32;4266:58;;;4304:18;;:::i;:::-;4342:20;;3562:806;-1:-1:-1;;;3562:806:1:o;4373:140::-;4431:5;4460:47;4501:4;4491:8;4487:19;4481:4;4460:47;:::i;4518:168::-;4591:9;;;4622;;4639:15;;;4633:22;;4619:37;4609:71;;4660:18;;:::i;5404:251::-;5474:6;5527:2;5515:9;5506:7;5502:23;5498:32;5495:52;;;5543:1;5540;5533:12;5495:52;5575:9;5569:16;5594:31;5619:5;5594:31;:::i;6627:306::-;6715:6;6723;6731;6784:2;6772:9;6763:7;6759:23;6755:32;6752:52;;;6800:1;6797;6790:12;6752:52;6829:9;6823:16;6813:26;;6879:2;6868:9;6864:18;6858:25;6848:35;;6923:2;6912:9;6908:18;6902:25;6892:35;;6627:306;;;;;:::o;7240:277::-;7307:6;7360:2;7348:9;7339:7;7335:23;7331:32;7328:52;;;7376:1;7373;7366:12;7328:52;7408:9;7402:16;7461:5;7454:13;7447:21;7440:5;7437:32;7427:60;;7483:1;7480;7473:12;10386:125;10451:9;;;10472:10;;;10469:36;;;10485:18;;:::i;10871:135::-;10910:3;10931:17;;;10928:43;;10951:18;;:::i;:::-;-1:-1:-1;10998:1:1;10987:13;;10871:135::o;11011:128::-;11078:9;;;11099:11;;;11096:37;;;11113:18;;:::i;11333:184::-;-1:-1:-1;;;11382:1:1;11375:88;11482:4;11479:1;11472:15;11506:4;11503:1;11496:15;11522:1026;11784:4;11832:3;11821:9;11817:19;11863:6;11852:9;11845:25;11889:2;11927:6;11922:2;11911:9;11907:18;11900:34;11970:3;11965:2;11954:9;11950:18;11943:31;11994:6;12029;12023:13;12060:6;12052;12045:22;12098:3;12087:9;12083:19;12076:26;;12137:2;12129:6;12125:15;12111:29;;12158:1;12168:218;12182:6;12179:1;12176:13;12168:218;;;12247:13;;-1:-1:-1;;;;;12243:62:1;12231:75;;12361:15;;;;12326:12;;;;12204:1;12197:9;12168:218;;;-1:-1:-1;;;;;;;12442:55:1;;;;12437:2;12422:18;;12415:83;-1:-1:-1;;;12529:3:1;12514:19;12507:35;12403:3;11522:1026;-1:-1:-1;;;11522:1026:1:o;12553:274::-;12593:1;12619;12609:189;;-1:-1:-1;;;12651:1:1;12644:88;12755:4;12752:1;12745:15;12783:4;12780:1;12773:15;12609:189;-1:-1:-1;12812:9:1;;12553:274::o

Swarm Source

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