ETH Price: $3,412.91 (-1.45%)
Gas: 9 Gwei

Token

PONG (PING)
 

Overview

Max Total Supply

1,000,000,000 PING

Holders

156

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 10 Decimals)

Filtered by Token Holder
vitawin.eth
Balance
5,582,993.4667642328 PING

Value
$0.00
0x9a9a505707fd43027f52edddb2ed65d6d9aa2bde
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:
PINGPONG

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-12
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

/*
The world's first DePIN liquidity aggregation protocol. Turning AI computational resources into a new form of DeFi liquidity.

Website:    https://www.pingpong.build/
Telegram:   https://t.me/pingpongbuild
Twitter:    https://twitter.com/pingpongbuild
Whitepaper:    https://www.pingpong.build/whitepaperV0.1.1.pdf
*/

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 PINGPONG 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;
    
    address payable private _devAddress;
    address payable private _marketingAddress;

    uint256 firstBlock;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 10;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"PONG";
    string private constant _symbol = unicode"PING";
    uint256 public _maxTxAmount =   10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 5000000 * 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 () {

        _devAddress = payable (_msgSender());
        _marketingAddress = payable (_msgSender());

        _balances[_msgSender()] = _tTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[_devAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        _isExcludedFromFee[address(this)] = 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 (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            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 > 0) {
                    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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
        
    function withdrawStuckETH() external onlyOwner {
        require(address(this).balance > 0, "No stuck ETH to withdraw");
        
        uint256 amount = address(this).balance;
        payable(owner()).transfer(amount);
    }

    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;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function setTeamWallets(
    address devAddress,
    address marketingAddress

) external onlyOwner {


    _devAddress = payable(devAddress);
    _marketingAddress = payable(marketingAddress);

    _isExcludedFromFee[devAddress] = true;
    _isExcludedFromFee[marketingAddress] = true;
}
    
    function sendETHToFee(uint256 amount) private {
        uint256 devETH = amount.mul(1).div(5);
        uint256 marketingETH = amount.mul(1).div(5);
        
        payable(_devAddress).transfer(devETH);
        payable(_marketingAddress).transfer(marketingETH);
    }

    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;
        firstBlock = block.number;
    }

    receive() external payable {}
}

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":"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":[{"internalType":"address","name":"devAddress","type":"address"},{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setTeamWallets","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":[{"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"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526014600755601460085560046009556004600a55601e600b55601e600c55601e600d555f600e55600a806200003a919062000354565b6200004990629896806200036b565b600f5562000059600a8062000354565b6200006890629896806200036b565b60105562000078600a8062000354565b62000084905f6200036b565b60115562000094600a8062000354565b620000a390624c4b406200036b565b6012556014805461ffff60a81b19169055348015620000c0575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060048054336001600160a01b0319918216811790925560058054909116909117905562000130600a8062000354565b6200014090633b9aca006200036b565b335f908152600160208190526040822092909255600390620001695f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308082526003909452828120805486166001908117825560045484168352848320805488168217905560055490931682529281208054861683179055929092528054909216179055620001e63390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021e600a8062000354565b6200022e90633b9aca006200036b565b60405190815260200160405180910390a362000385565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029957815f19048211156200027d576200027d62000245565b808516156200028b57918102915b93841c93908002906200025e565b509250929050565b5f82620002b1575060016200034e565b81620002bf57505f6200034e565b8160018114620002d85760028114620002e35762000303565b60019150506200034e565b60ff841115620002f757620002f762000245565b50506001821b6200034e565b5060208310610133831016604e8410600b841016171562000328575081810a6200034e565b62000334838362000259565b805f19048211156200034a576200034a62000245565b0290505b92915050565b5f6200036460ff841683620002a1565b9392505050565b80820281158282048414176200034e576200034e62000245565b61193380620003935f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb146102f5578063bf474bed14610314578063c9567bf914610329578063dd62ed3e1461033d578063f5648a4f14610381575f80fd5b8063751039fc146102655780637d1db4a5146102795780638da5cb5b1461028e5780638f9a55c0146102b457806395d89b41146102c9575f80fd5b806323b872dd116100e357806323b872dd146101c2578063313ce567146101e157806368dcc166146101fc57806370a082311461021d578063715018a614610251575f80fd5b806306fdde031461011e578063095ea7b31461015c5780630faee56f1461018b57806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b50604080518082019091526004815263504f4e4760e01b60208201525b6040516101539190611523565b60405180910390f35b348015610167575f80fd5b5061017b610176366004611586565b610395565b6040519015158152602001610153565b348015610196575f80fd5b506101a060125481565b604051908152602001610153565b3480156101b9575f80fd5b506101a06103ab565b3480156101cd575f80fd5b5061017b6101dc3660046115b0565b6103ca565b3480156101ec575f80fd5b50604051600a8152602001610153565b348015610207575f80fd5b5061021b6102163660046115ee565b610431565b005b348015610228575f80fd5b506101a0610237366004611625565b6001600160a01b03165f9081526001602052604090205490565b34801561025c575f80fd5b5061021b6104c1565b348015610270575f80fd5b5061021b610532565b348015610284575f80fd5b506101a0600f5481565b348015610299575f80fd5b505f546040516001600160a01b039091168152602001610153565b3480156102bf575f80fd5b506101a060105481565b3480156102d4575f80fd5b5060408051808201909152600481526350494e4760e01b6020820152610146565b348015610300575f80fd5b5061017b61030f366004611586565b6105e0565b34801561031f575f80fd5b506101a060115481565b348015610334575f80fd5b5061021b6105ec565b348015610348575f80fd5b506101a06103573660046115ee565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561038c575f80fd5b5061021b610998565b5f6103a1338484610a5b565b5060015b92915050565b5f6103b7600a80611734565b6103c590633b9aca00611742565b905090565b5f6103d6848484610b7e565b6104278433610422856040518060600160405280602881526020016118d6602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061113c565b610a5b565b5060019392505050565b5f546001600160a01b031633146104635760405162461bcd60e51b815260040161045a90611759565b60405180910390fd5b600480546001600160a01b039384166001600160a01b031991821681179092556005805493909416921682179092555f91825260036020526040808320805460ff199081166001908117909255928452922080549091169091179055565b5f546001600160a01b031633146104ea5760405162461bcd60e51b815260040161045a90611759565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461055b5760405162461bcd60e51b815260040161045a90611759565b610566600a80611734565b61057490633b9aca00611742565b600f55610582600a80611734565b61059090633b9aca00611742565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105bf600a80611734565b6105cd90633b9aca00611742565b60405190815260200160405180910390a1565b5f6103a1338484610b7e565b5f546001600160a01b031633146106155760405162461bcd60e51b815260040161045a90611759565b601454600160a01b900460ff161561066f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b79030906106a9600a80611734565b61042290633b9aca00611742565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610707573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072b919061178e565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae919061178e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081c919061178e565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610863816001600160a01b03165f9081526001602052604090205490565b5f806108765f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108dc573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090191906117a9565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610956573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097a91906117d4565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b5f546001600160a01b031633146109c15760405162461bcd60e51b815260040161045a90611759565b5f4711610a105760405162461bcd60e51b815260206004820152601860248201527f4e6f20737475636b2045544820746f2077697468647261770000000000000000604482015260640161045a565b47610a225f546001600160a01b031690565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015610a57573d5f803e3d5ffd5b5050565b6001600160a01b038316610abd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045a565b6001600160a01b038216610b1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610be25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045a565b6001600160a01b038216610c445760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045a565b5f8111610ca55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045a565b5f80546001600160a01b03858116911614801590610cd057505f546001600160a01b03848116911614155b15610fff57610d016064610cfb600b54600e5411610cf057600754610cf4565b6009545b8590611174565b906111f9565b6014549091506001600160a01b038581169116148015610d2f57506013546001600160a01b03848116911614155b8015610d5357506001600160a01b0383165f9081526003602052604090205460ff16155b15610e5a57600f54821115610daa5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045a565b60105482610dcc856001600160a01b03165f9081526001602052604090205490565b610dd691906117f3565b1115610e245760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045a565b436006546003610e3491906117f3565b1115610e4557823b15610e45575f80fd5b600e8054905f610e5483611806565b91905055505b6014546001600160a01b03848116911614801590610e9057506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0f5760105482610eb7856001600160a01b03165f9081526001602052604090205490565b610ec191906117f3565b1115610f0f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045a565b6014546001600160a01b038481169116148015610f3557506001600160a01b0384163014155b15610f6257610f5f6064610cfb600c54600e5411610f5557600854610cf4565b600a548590611174565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610f9857506014546001600160a01b038581169116145b8015610fad5750601454600160b01b900460ff165b8015610fba575060115481115b8015610fc95750600d54600e54115b15610ffd57610feb610fe684610fe18460125461123a565b61123a565b61124e565b478015610ffb57610ffb476113be565b505b505b801561107757305f9081526001602052604090205461101e9082611458565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061106e9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461109990836114b6565b6001600160a01b0385165f908152600160205260409020556110dc6110be83836114b6565b6001600160a01b0385165f9081526001602052604090205490611458565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61112585856114b6565b60405190815260200160405180910390a350505050565b5f818484111561115f5760405162461bcd60e51b815260040161045a9190611523565b505f61116b848661181e565b95945050505050565b5f825f0361118357505f6103a5565b5f61118e8385611742565b90508261119b8583611831565b146111f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045a565b9392505050565b5f6111f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f7565b5f81831161124857826111f2565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061129457611294611850565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130f919061178e565b8160018151811061132257611322611850565b6001600160a01b0392831660209182029290920101526013546113489130911684610a5b565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113809085905f90869030904290600401611864565b5f604051808303815f87803b158015611397575f80fd5b505af11580156113a9573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f6113cf6005610cfb846001611174565b90505f6113e26005610cfb856001611174565b6004546040519192506001600160a01b03169083156108fc029084905f818181858888f1935050505015801561141a573d5f803e3d5ffd5b506005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611452573d5f803e3d5ffd5b50505050565b5f8061146483856117f3565b9050838110156111f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045a565b5f6111f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061113c565b5f81836115175760405162461bcd60e51b815260040161045a9190611523565b505f61116b8486611831565b5f602080835283518060208501525f5b8181101561154f57858101830151858201604001528201611533565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611583575f80fd5b50565b5f8060408385031215611597575f80fd5b82356115a28161156f565b946020939093013593505050565b5f805f606084860312156115c2575f80fd5b83356115cd8161156f565b925060208401356115dd8161156f565b929592945050506040919091013590565b5f80604083850312156115ff575f80fd5b823561160a8161156f565b9150602083013561161a8161156f565b809150509250929050565b5f60208284031215611635575f80fd5b81356111f28161156f565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561168e57815f190482111561167457611674611640565b8085161561168157918102915b93841c9390800290611659565b509250929050565b5f826116a4575060016103a5565b816116b057505f6103a5565b81600181146116c657600281146116d0576116ec565b60019150506103a5565b60ff8411156116e1576116e1611640565b50506001821b6103a5565b5060208310610133831016604e8410600b841016171561170f575081810a6103a5565b6117198383611654565b805f190482111561172c5761172c611640565b029392505050565b5f6111f260ff841683611696565b80820281158282048414176103a5576103a5611640565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561179e575f80fd5b81516111f28161156f565b5f805f606084860312156117bb575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156117e4575f80fd5b815180151581146111f2575f80fd5b808201808211156103a5576103a5611640565b5f6001820161181757611817611640565b5060010190565b818103818111156103a5576103a5611640565b5f8261184b57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118b45784516001600160a01b03168352938301939183019160010161188f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202f4f597990b3e8f63f95e9c5f7e61b3fe7d25f1ce62af920918321304b3f9aed64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb146102f5578063bf474bed14610314578063c9567bf914610329578063dd62ed3e1461033d578063f5648a4f14610381575f80fd5b8063751039fc146102655780637d1db4a5146102795780638da5cb5b1461028e5780638f9a55c0146102b457806395d89b41146102c9575f80fd5b806323b872dd116100e357806323b872dd146101c2578063313ce567146101e157806368dcc166146101fc57806370a082311461021d578063715018a614610251575f80fd5b806306fdde031461011e578063095ea7b31461015c5780630faee56f1461018b57806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b50604080518082019091526004815263504f4e4760e01b60208201525b6040516101539190611523565b60405180910390f35b348015610167575f80fd5b5061017b610176366004611586565b610395565b6040519015158152602001610153565b348015610196575f80fd5b506101a060125481565b604051908152602001610153565b3480156101b9575f80fd5b506101a06103ab565b3480156101cd575f80fd5b5061017b6101dc3660046115b0565b6103ca565b3480156101ec575f80fd5b50604051600a8152602001610153565b348015610207575f80fd5b5061021b6102163660046115ee565b610431565b005b348015610228575f80fd5b506101a0610237366004611625565b6001600160a01b03165f9081526001602052604090205490565b34801561025c575f80fd5b5061021b6104c1565b348015610270575f80fd5b5061021b610532565b348015610284575f80fd5b506101a0600f5481565b348015610299575f80fd5b505f546040516001600160a01b039091168152602001610153565b3480156102bf575f80fd5b506101a060105481565b3480156102d4575f80fd5b5060408051808201909152600481526350494e4760e01b6020820152610146565b348015610300575f80fd5b5061017b61030f366004611586565b6105e0565b34801561031f575f80fd5b506101a060115481565b348015610334575f80fd5b5061021b6105ec565b348015610348575f80fd5b506101a06103573660046115ee565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561038c575f80fd5b5061021b610998565b5f6103a1338484610a5b565b5060015b92915050565b5f6103b7600a80611734565b6103c590633b9aca00611742565b905090565b5f6103d6848484610b7e565b6104278433610422856040518060600160405280602881526020016118d6602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061113c565b610a5b565b5060019392505050565b5f546001600160a01b031633146104635760405162461bcd60e51b815260040161045a90611759565b60405180910390fd5b600480546001600160a01b039384166001600160a01b031991821681179092556005805493909416921682179092555f91825260036020526040808320805460ff199081166001908117909255928452922080549091169091179055565b5f546001600160a01b031633146104ea5760405162461bcd60e51b815260040161045a90611759565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461055b5760405162461bcd60e51b815260040161045a90611759565b610566600a80611734565b61057490633b9aca00611742565b600f55610582600a80611734565b61059090633b9aca00611742565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105bf600a80611734565b6105cd90633b9aca00611742565b60405190815260200160405180910390a1565b5f6103a1338484610b7e565b5f546001600160a01b031633146106155760405162461bcd60e51b815260040161045a90611759565b601454600160a01b900460ff161561066f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045a565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b79030906106a9600a80611734565b61042290633b9aca00611742565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610707573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072b919061178e565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae919061178e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081c919061178e565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610863816001600160a01b03165f9081526001602052604090205490565b5f806108765f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108dc573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090191906117a9565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610956573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097a91906117d4565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b5f546001600160a01b031633146109c15760405162461bcd60e51b815260040161045a90611759565b5f4711610a105760405162461bcd60e51b815260206004820152601860248201527f4e6f20737475636b2045544820746f2077697468647261770000000000000000604482015260640161045a565b47610a225f546001600160a01b031690565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015610a57573d5f803e3d5ffd5b5050565b6001600160a01b038316610abd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045a565b6001600160a01b038216610b1e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610be25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045a565b6001600160a01b038216610c445760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045a565b5f8111610ca55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045a565b5f80546001600160a01b03858116911614801590610cd057505f546001600160a01b03848116911614155b15610fff57610d016064610cfb600b54600e5411610cf057600754610cf4565b6009545b8590611174565b906111f9565b6014549091506001600160a01b038581169116148015610d2f57506013546001600160a01b03848116911614155b8015610d5357506001600160a01b0383165f9081526003602052604090205460ff16155b15610e5a57600f54821115610daa5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045a565b60105482610dcc856001600160a01b03165f9081526001602052604090205490565b610dd691906117f3565b1115610e245760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045a565b436006546003610e3491906117f3565b1115610e4557823b15610e45575f80fd5b600e8054905f610e5483611806565b91905055505b6014546001600160a01b03848116911614801590610e9057506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0f5760105482610eb7856001600160a01b03165f9081526001602052604090205490565b610ec191906117f3565b1115610f0f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045a565b6014546001600160a01b038481169116148015610f3557506001600160a01b0384163014155b15610f6257610f5f6064610cfb600c54600e5411610f5557600854610cf4565b600a548590611174565b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610f9857506014546001600160a01b038581169116145b8015610fad5750601454600160b01b900460ff165b8015610fba575060115481115b8015610fc95750600d54600e54115b15610ffd57610feb610fe684610fe18460125461123a565b61123a565b61124e565b478015610ffb57610ffb476113be565b505b505b801561107757305f9081526001602052604090205461101e9082611458565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061106e9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461109990836114b6565b6001600160a01b0385165f908152600160205260409020556110dc6110be83836114b6565b6001600160a01b0385165f9081526001602052604090205490611458565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61112585856114b6565b60405190815260200160405180910390a350505050565b5f818484111561115f5760405162461bcd60e51b815260040161045a9190611523565b505f61116b848661181e565b95945050505050565b5f825f0361118357505f6103a5565b5f61118e8385611742565b90508261119b8583611831565b146111f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045a565b9392505050565b5f6111f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f7565b5f81831161124857826111f2565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061129457611294611850565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130f919061178e565b8160018151811061132257611322611850565b6001600160a01b0392831660209182029290920101526013546113489130911684610a5b565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113809085905f90869030904290600401611864565b5f604051808303815f87803b158015611397575f80fd5b505af11580156113a9573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f6113cf6005610cfb846001611174565b90505f6113e26005610cfb856001611174565b6004546040519192506001600160a01b03169083156108fc029084905f818181858888f1935050505015801561141a573d5f803e3d5ffd5b506005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611452573d5f803e3d5ffd5b50505050565b5f8061146483856117f3565b9050838110156111f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045a565b5f6111f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061113c565b5f81836115175760405162461bcd60e51b815260040161045a9190611523565b505f61116b8486611831565b5f602080835283518060208501525f5b8181101561154f57858101830151858201604001528201611533565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611583575f80fd5b50565b5f8060408385031215611597575f80fd5b82356115a28161156f565b946020939093013593505050565b5f805f606084860312156115c2575f80fd5b83356115cd8161156f565b925060208401356115dd8161156f565b929592945050506040919091013590565b5f80604083850312156115ff575f80fd5b823561160a8161156f565b9150602083013561161a8161156f565b809150509250929050565b5f60208284031215611635575f80fd5b81356111f28161156f565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561168e57815f190482111561167457611674611640565b8085161561168157918102915b93841c9390800290611659565b509250929050565b5f826116a4575060016103a5565b816116b057505f6103a5565b81600181146116c657600281146116d0576116ec565b60019150506103a5565b60ff8411156116e1576116e1611640565b50506001821b6103a5565b5060208310610133831016604e8410600b841016171561170f575081810a6103a5565b6117198383611654565b805f190482111561172c5761172c611640565b029392505050565b5f6111f260ff841683611696565b80820281158282048414176103a5576103a5611640565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561179e575f80fd5b81516111f28161156f565b5f805f606084860312156117bb575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156117e4575f80fd5b815180151581146111f2575f80fd5b808201808211156103a5576103a5611640565b5f6001820161181757611817611640565b5060010190565b818103818111156103a5576103a5611640565b5f8261184b57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118b45784516001600160a01b03168352938301939183019160010161188f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202f4f597990b3e8f63f95e9c5f7e61b3fe7d25f1ce62af920918321304b3f9aed64736f6c63430008180033

Deployed Bytecode Sourcemap

3802:8430:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:83;;;;;;;;;;-1:-1:-1;5891:5:0;;;;;;;;;;;;-1:-1:-1;;;5891:5:0;;;;5821:83;;;;;;;:::i;:::-;;;;;;;;6654:161;;;;;;;;;;-1:-1:-1;6654:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6654:161:0;1023:187:1;4925:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4925:51:0;1215:177:1;6098:95:0;;;;;;;;;;;;;:::i;6823:313::-;;;;;;;;;;-1:-1:-1;6823:313:0;;;;;:::i;:::-;;:::i;6007:83::-;;;;;;;;;;-1:-1:-1;6007:83:0;;4555:2;2000:36:1;;1988:2;1973:18;6007:83:0;1858:184:1;10891:300:0;;;;;;;;;;-1:-1:-1;10891:300:0;;;;;:::i;:::-;;:::i;:::-;;6201:119;;;;;;;;;;-1:-1:-1;6201:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;2883:148;;;;;;;;;;;;;:::i;10724:159::-;;;;;;;;;;;;;:::i;4741:56::-;;;;;;;;;;;;;;;;2669:79;;;;;;;;;;-1:-1:-1;2707:7:0;2734:6;2669:79;;-1:-1:-1;;;;;2734:6:0;;;2838:51:1;;2826:2;2811:18;2669:79:0;2692:203:1;4804:56:0;;;;;;;;;;;;;;;;5912:87;;;;;;;;;;-1:-1:-1;5984:7:0;;;;;;;;;;;;-1:-1:-1;;;5984:7:0;;;;5912:87;;6328:167;;;;;;;;;;-1:-1:-1;6328:167:0;;;;;:::i;:::-;;:::i;4867:51::-;;;;;;;;;;;;;;;;11485:707;;;;;;;;;;;;;:::i;6503:143::-;;;;;;;;;;-1:-1:-1;6503:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6611:18:0;;;6584:7;6611:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6503:143;9994:231;;;;;;;;;;;;;:::i;6654:161::-;6729:4;6746:39;504:10;6769:7;6778:6;6746:8;:39::i;:::-;-1:-1:-1;6803:4:0;6654:161;;;;;:::o;6098:95::-;6151:7;4615:13;4555:2;;4615:13;:::i;:::-;4599:29;;:13;:29;:::i;:::-;6171:14;;6098:95;:::o;6823:313::-;6921:4;6938:36;6948:6;6956:9;6967:6;6938:9;:36::i;:::-;6985:121;6994:6;504:10;7016:89;7054:6;7016:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7016:19:0;;;;;;:11;:19;;;;;;;;504:10;7016:33;;;;;;;;;;:37;:89::i;:::-;6985:8;:121::i;:::-;-1:-1:-1;7124:4:0;6823:313;;;;;:::o;10891:300::-;2796:6;;-1:-1:-1;;;;;2796:6:0;504:10;2796:22;2788:67;;;;-1:-1:-1;;;2788:67:0;;;;;;;:::i;:::-;;;;;;;;;11006:11:::1;:33:::0;;-1:-1:-1;;;;;11006:33:0;;::::1;-1:-1:-1::0;;;;;;11006:33:0;;::::1;::::0;::::1;::::0;;;11046:17:::1;:45:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;11006:11:::1;11100:30:::0;;;:18:::1;:30;::::0;;;;;:37;;-1:-1:-1;;11100:37:0;;::::1;11006:33:::0;11100:37;;::::1;::::0;;;11144:36;;;;;:43;;;;::::1;::::0;;::::1;::::0;;10891:300::o;2883:148::-;2796:6;;-1:-1:-1;;;;;2796:6:0;504:10;2796:22;2788:67;;;;-1:-1:-1;;;2788:67:0;;;;;;;:::i;:::-;2990:1:::1;2974:6:::0;;2953:40:::1;::::0;-1:-1:-1;;;;;2974:6:0;;::::1;::::0;2953:40:::1;::::0;2990:1;;2953:40:::1;3021:1;3004:19:::0;;-1:-1:-1;;;;;;3004:19:0::1;::::0;;2883:148::o;10724:159::-;2796:6;;-1:-1:-1;;;;;2796:6:0;504:10;2796:22;2788:67;;;;-1:-1:-1;;;2788:67:0;;;;;;;:::i;:::-;4615:13:::1;4555:2;::::0;4615:13:::1;:::i;:::-;4599:29;::::0;:13:::1;:29;:::i;:::-;10777:12;:22:::0;4615:13:::1;4555:2;::::0;4615:13:::1;:::i;:::-;4599:29;::::0;:13:::1;:29;:::i;:::-;10810:14;:22:::0;10848:27:::1;4615:13;4555:2;::::0;4615:13:::1;:::i;:::-;4599:29;::::0;:13:::1;:29;:::i;:::-;10848:27;::::0;1361:25:1;;;1349:2;1334:18;10848:27:0::1;;;;;;;10724:159::o:0;6328:167::-;6406:4;6423:42;504:10;6447:9;6458:6;6423:9;:42::i;11485:707::-;2796:6;;-1:-1:-1;;;;;2796:6:0;504:10;2796:22;2788:67;;;;-1:-1:-1;;;2788:67:0;;;;;;;:::i;:::-;11549:11:::1;::::0;-1:-1:-1;;;11549:11:0;::::1;;;11548:12;11540:47;;;::::0;-1:-1:-1;;;11540:47:0;;5145:2:1;11540:47:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:25;5203:18;;;5196:53;5266:18;;11540:47:0::1;4943:347:1::0;11540:47:0::1;11598:15;:80:::0;;-1:-1:-1;;;;;;11598:80:0::1;11635:42;11598:80:::0;;::::1;::::0;;;11689:58:::1;::::0;11706:4:::1;::::0;4615:13:::1;4555:2;::::0;4615:13:::1;:::i;:::-;4599:29;::::0;:13:::1;:29;:::i;11689:58::-;11792:15;;;;;;;;;-1:-1:-1::0;;;;;11792:15:0::1;-1:-1:-1::0;;;;;11792:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11774:55:0::1;;11838:4;11845:15;;;;;;;;;-1:-1:-1::0;;;;;11845:15:0::1;-1:-1:-1::0;;;;;11845:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11774:94;::::0;-1:-1:-1;;;;;;11774:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5781:15:1;;;11774:94:0::1;::::0;::::1;5763:34:1::0;5833:15;;5813:18;;;5806:43;5698:18;;11774:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11758:13;:110:::0;;-1:-1:-1;;;;;11758:110:0;;::::1;-1:-1:-1::0;;;;;;11758:110:0;;::::1;;::::0;;11879:15:::1;::::0;::::1;:31;11918:21;11949:4;11955:24;11949:4:::0;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;11955:24:::1;11980:1;11982::::0;11984:7:::1;2707::::0;2734:6;-1:-1:-1;;;;;2734:6:0;;2669:79;11984:7:::1;11879:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11879:129:0;;;-1:-1:-1;;;;;6219:15:1;;;11879:129:0::1;::::0;::::1;6201:34:1::0;6251:18;;;6244:34;;;;6294:18;;;6287:34;;;;6337:18;;;6330:34;6401:15;;;6380:19;;;6373:44;11992:15:0::1;6433:19:1::0;;;6426:35;6135:19;;11879:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12026:13:0::1;::::0;12057:15:::1;::::0;12019:71:::1;::::0;-1:-1:-1;;;12019:71:0;;-1:-1:-1;;;;;12057:15:0;;::::1;12019:71;::::0;::::1;6957:51:1::0;-1:-1:-1;;7024:18:1;;;7017:34;12026:13:0;::::1;::::0;-1:-1:-1;12019:29:0::1;::::0;6930:18:1;;12019:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12101:11:0::1;:18:::0;;-1:-1:-1;;;;12130:18:0;-1:-1:-1;;;12130:18:0;;;12172:12:::1;12159:10;:25:::0;11485:707::o;9994:231::-;2796:6;;-1:-1:-1;;;;;2796:6:0;504:10;2796:22;2788:67;;;;-1:-1:-1;;;2788:67:0;;;;;;;:::i;:::-;10084:1:::1;10060:21;:25;10052:62;;;::::0;-1:-1:-1;;;10052:62:0;;7546:2:1;10052:62:0::1;::::0;::::1;7528:21:1::0;7585:2;7565:18;;;7558:30;7624:26;7604:18;;;7597:54;7668:18;;10052:62:0::1;7344:348:1::0;10052:62:0::1;10152:21;10192:7;2707::::0;2734:6;-1:-1:-1;;;;;2734:6:0;;2669:79;10192:7:::1;-1:-1:-1::0;;;;;10184:25:0::1;:33;10210:6;10184:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10041:184;9994:231::o:0;7144:335::-;-1:-1:-1;;;;;7237:19:0;;7229:68;;;;-1:-1:-1;;;7229:68:0;;7899:2:1;7229:68:0;;;7881:21:1;7938:2;7918:18;;;7911:30;7977:34;7957:18;;;7950:62;-1:-1:-1;;;8028:18:1;;;8021:34;8072:19;;7229:68:0;7697:400:1;7229:68:0;-1:-1:-1;;;;;7316:21:0;;7308:68;;;;-1:-1:-1;;;7308:68:0;;8304:2:1;7308:68:0;;;8286:21:1;8343:2;8323:18;;;8316:30;8382:34;8362:18;;;8355:62;-1:-1:-1;;;8433:18:1;;;8426:32;8475:19;;7308:68:0;8102:398:1;7308:68:0;-1:-1:-1;;;;;7387:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7439:32;;1361:25:1;;;7439:32:0;;1334:18:1;7439:32:0;;;;;;;7144:335;;;:::o;7487:2180::-;-1:-1:-1;;;;;7575:18:0;;7567:68;;;;-1:-1:-1;;;7567:68:0;;8707:2:1;7567:68:0;;;8689:21:1;8746:2;8726:18;;;8719:30;8785:34;8765:18;;;8758:62;-1:-1:-1;;;8836:18:1;;;8829:35;8881:19;;7567:68:0;8505:401:1;7567:68:0;-1:-1:-1;;;;;7654:16:0;;7646:64;;;;-1:-1:-1;;;7646:64:0;;9113:2:1;7646:64:0;;;9095:21:1;9152:2;9132:18;;;9125:30;9191:34;9171:18;;;9164:62;-1:-1:-1;;;9242:18:1;;;9235:33;9285:19;;7646:64:0;8911:399:1;7646:64:0;7738:1;7729:6;:10;7721:64;;;;-1:-1:-1;;;7721:64:0;;9517:2:1;7721:64:0;;;9499:21:1;9556:2;9536:18;;;9529:30;9595:34;9575:18;;;9568:62;-1:-1:-1;;;9646:18:1;;;9639:39;9695:19;;7721:64:0;9315:405:1;7721:64:0;7796:17;2734:6;;-1:-1:-1;;;;;7830:15:0;;;2734:6;;7830:15;;;;:32;;-1:-1:-1;2707:7:0;2734:6;-1:-1:-1;;;;;7849:13:0;;;2734:6;;7849:13;;7830:32;7826:1485;;;7891:76;7963:3;7891:67;7913:15;;7903:9;;:25;7902:55;;7943:14;;7902:55;;;7930:12;;7902:55;7891:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7996:13;;7879:88;;-1:-1:-1;;;;;;7988:21:0;;;7996:13;;7988:21;:55;;;;-1:-1:-1;8027:15:0;;-1:-1:-1;;;;;8013:30:0;;;8027:15;;8013:30;;7988:55;:83;;;;-1:-1:-1;;;;;;8049:22:0;;;;;;:18;:22;;;;;;;;8047:24;7988:83;7984:436;;;8111:12;;8101:6;:22;;8093:60;;;;-1:-1:-1;;;8093:60:0;;9927:2:1;8093:60:0;;;9909:21:1;9966:2;9946:18;;;9939:30;10005:27;9985:18;;;9978:55;10050:18;;8093:60:0;9725:349:1;8093:60:0;8206:14;;8196:6;8180:13;8190:2;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;8180:13;:22;;;;:::i;:::-;:40;;8172:79;;;;-1:-1:-1;;;8172:79:0;;10411:2:1;8172:79:0;;;10393:21:1;10450:2;10430:18;;;10423:30;10489:28;10469:18;;;10462:56;10535:18;;8172:79:0;10209:350:1;8172:79:0;8294:12;8276:10;;8289:1;8276:14;;;;:::i;:::-;:30;8272:103;;;9914:20;;9962:8;8331:24;;;;;;8393:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7984:436;8446:13;;-1:-1:-1;;;;;8440:19:0;;;8446:13;;8440:19;;;;:47;;-1:-1:-1;;;;;;8465:22:0;;;;;;:18;:22;;;;;;;;8463:24;8440:47;8436:167;;;8542:14;;8532:6;8516:13;8526:2;-1:-1:-1;;;;;6294:18:0;6267:7;6294:18;;;:9;:18;;;;;;;6201:119;8516:13;:22;;;;:::i;:::-;:40;;8508:79;;;;-1:-1:-1;;;8508:79:0;;10411:2:1;8508:79:0;;;10393:21:1;10450:2;10430:18;;;10423:30;10489:28;10469:18;;;10462:56;10535:18;;8508:79:0;10209:350:1;8508:79:0;8628:13;;-1:-1:-1;;;;;8622:19:0;;;8628:13;;8622:19;:43;;;;-1:-1:-1;;;;;;8645:20:0;;8660:4;8645:20;;8622:43;8619:174;;;8698:79;8773:3;8698:70;8720:16;;8710:9;;:26;8709:58;;8752:15;;8709:58;;;8738:13;;8698:6;;:10;:70::i;:79::-;8686:91;;8619:174;8858:4;8809:28;6294:18;;;:9;:18;;;;;;8884:6;;-1:-1:-1;;;8884:6:0;;;;8883:7;:32;;;;-1:-1:-1;8902:13:0;;-1:-1:-1;;;;;8894:21:0;;;8902:13;;8894:21;8883:32;:47;;;;-1:-1:-1;8919:11:0;;-1:-1:-1;;;8919:11:0;;;;8883:47;:89;;;;;8955:17;;8934:20;:38;8883:89;:121;;;;;8986:18;;8976:9;;:28;8883:121;8879:421;;;9025:67;9042:49;9046:6;9053:37;9057:20;9078:11;;9053:3;:37::i;:::-;9042:3;:49::i;:::-;9025:16;:67::i;:::-;9140:21;9183:22;;9180:105;;9230:35;9243:21;9230:12;:35::i;:::-;9006:294;8879:421;7864:1447;7826:1485;9326:11;;9323:161;;9394:4;9376:24;;;;:9;:24;;;;;;:39;;9405:9;9376:28;:39::i;:::-;9369:4;9351:24;;;;:9;:24;;;;;;;:64;;;;9433:39;;-1:-1:-1;;;;;9433:39:0;;;;;;;9462:9;1361:25:1;;1349:2;1334:18;;1215:177;9433:39:0;;;;;;;;9323:161;-1:-1:-1;;;;;9510:15:0;;;;;;:9;:15;;;;;;:27;;9530:6;9510:19;:27::i;:::-;-1:-1:-1;;;;;9494:15:0;;;;;;:9;:15;;;;;:43;9562:40;9580:21;:6;9591:9;9580:10;:21::i;:::-;-1:-1:-1;;;;;9562:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9548:13:0;;;;;;;:9;:13;;;;;:54;;;;9618:41;;;9637:21;:6;9648:9;9637:10;:21::i;:::-;9618:41;;1361:25:1;;;1349:2;1334:18;9618:41:0;;;;;;;7556:2111;7487:2180;;;:::o;1561:190::-;1647:7;1683:12;1675:6;;;;1667:29;;;;-1:-1:-1;;;1667:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1707:9:0;1719:5;1723:1;1719;:5;:::i;:::-;1707:17;1561:190;-1:-1:-1;;;;;1561:190:0:o;1759:246::-;1817:7;1841:1;1846;1841:6;1837:47;;-1:-1:-1;1871:1:0;1864:8;;1837:47;1894:9;1906:5;1910:1;1906;:5;:::i;:::-;1894:17;-1:-1:-1;1939:1:0;1930:5;1934:1;1894:17;1930:5;:::i;:::-;:10;1922:56;;;;-1:-1:-1;;;1922:56:0;;11261:2:1;1922:56:0;;;11243:21:1;11300:2;11280:18;;;11273:30;11339:34;11319:18;;;11312:62;-1:-1:-1;;;11390:18:1;;;11383:31;11431:19;;1922:56:0;11059:397:1;1922:56:0;1996:1;1759:246;-1:-1:-1;;;1759:246:0:o;2013:132::-;2071:7;2098:39;2102:1;2105;2098:39;;;;;;;;;;;;;;;;;:3;:39::i;9677:98::-;9734:7;9761:1;9759;:3;9758:9;;9766:1;9758:9;;;-1:-1:-1;9764:1:0;9677:98;-1:-1:-1;9677:98:0:o;10233:483::-;5258:6;:13;;-1:-1:-1;;;;5258:13:0;-1:-1:-1;;;5258:13:0;;;10335:16:::1;::::0;;10349:1:::1;10335:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10335:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10335:16:0::1;10311:40;;10380:4;10362;10367:1;10362:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10362:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10406:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10406:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10362:7;;10406:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10396:4;10401:1;10396:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10396:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10471:15:::1;::::0;10439:62:::1;::::0;10456:4:::1;::::0;10471:15:::1;10489:11:::0;10439:8:::1;:62::i;:::-;10512:15;::::0;:196:::1;::::0;-1:-1:-1;;;10512:196:0;;-1:-1:-1;;;;;10512:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10593:11;;10512:15:::1;::::0;10635:4;;10662::::1;::::0;10682:15:::1;::::0;10512:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5294:6:0;:14;;-1:-1:-1;;;;5294:14:0;;;-1:-1:-1;;;;10233:483:0:o;11203:274::-;11260:14;11277:20;11295:1;11277:13;:6;11288:1;11277:10;:13::i;:20::-;11260:37;-1:-1:-1;11308:20:0;11331;11349:1;11331:13;:6;11342:1;11331:10;:13::i;:20::-;11380:11;;11372:37;;11308:43;;-1:-1:-1;;;;;;11380:11:0;;11372:37;;;;;11402:6;;11380:11;11372:37;11380:11;11372:37;11402:6;11380:11;11372:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11428:17:0;;11420:49;;-1:-1:-1;;;;;11428:17:0;;;;11420:49;;;;;11456:12;;11428:17;11420:49;11428:17;11420:49;11456:12;11428:17;11420:49;;;;;;;;;;;;;;;;;;;;;11249:228;;11203:274;:::o;1230:179::-;1288:7;;1320:5;1324:1;1320;:5;:::i;:::-;1308:17;;1349:1;1344;:6;;1336:46;;;;-1:-1:-1;;;1336:46:0;;12912:2:1;1336:46:0;;;12894:21:1;12951:2;12931:18;;;12924:30;12990:29;12970:18;;;12963:57;13037:18;;1336:46:0;12710:351:1;1417:136:0;1475:7;1502:43;1506:1;1509;1502:43;;;;;;;;;;;;;;;;;:3;:43::i;2153:189::-;2239:7;2274:12;2267:5;2259:28;;;;-1:-1:-1;;;2259:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2298:9:0;2310:5;2314:1;2310;: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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:388::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;2231:9;2218:23;2250:31;2275:5;2250:31;:::i;:::-;2300:5;-1:-1:-1;2357:2:1;2342:18;;2329:32;2370:33;2329:32;2370:33;:::i;:::-;2422:7;2412:17;;;2047:388;;;;;:::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5295:251::-;5365:6;5418:2;5406:9;5397:7;5393:23;5389:32;5386:52;;;5434:1;5431;5424:12;5386:52;5466:9;5460:16;5485:31;5510:5;5485:31;:::i;6472:306::-;6560:6;6568;6576;6629:2;6617:9;6608:7;6604:23;6600:32;6597:52;;;6645:1;6642;6635:12;6597:52;6674:9;6668:16;6658:26;;6724:2;6713:9;6709:18;6703:25;6693:35;;6768:2;6757:9;6753:18;6747:25;6737:35;;6472:306;;;;;:::o;7062:277::-;7129:6;7182:2;7170:9;7161:7;7157:23;7153:32;7150:52;;;7198:1;7195;7188:12;7150:52;7230:9;7224:16;7283:5;7276:13;7269:21;7262:5;7259:32;7249:60;;7305:1;7302;7295:12;10079:125;10144:9;;;10165:10;;;10162:36;;;10178:18;;:::i;10564:135::-;10603:3;10624:17;;;10621:43;;10644:18;;:::i;:::-;-1:-1:-1;10691:1:1;10680:13;;10564:135::o;10704:128::-;10771:9;;;10792:11;;;10789:37;;;10806:18;;:::i;10837:217::-;10877:1;10903;10893:132;;10947:10;10942:3;10938:20;10935:1;10928:31;10982:4;10979:1;10972:15;11010:4;11007:1;11000:15;10893:132;-1:-1:-1;11039:9:1;;10837:217::o;11593:127::-;11654:10;11649:3;11645:20;11642:1;11635:31;11685:4;11682:1;11675:15;11709:4;11706:1;11699:15;11725:980;11987:4;12035:3;12024:9;12020:19;12066:6;12055:9;12048:25;12092:2;12130:6;12125:2;12114:9;12110:18;12103:34;12173:3;12168:2;12157:9;12153:18;12146:31;12197:6;12232;12226:13;12263:6;12255;12248:22;12301:3;12290:9;12286:19;12279:26;;12340:2;12332:6;12328:15;12314:29;;12361:1;12371:195;12385:6;12382:1;12379:13;12371:195;;;12450:13;;-1:-1:-1;;;;;12446:39:1;12434:52;;12541:15;;;;12506:12;;;;12482:1;12400:9;12371:195;;;-1:-1:-1;;;;;;;12622:32:1;;;;12617:2;12602:18;;12595:60;-1:-1:-1;;;12686:3:1;12671:19;12664:35;12583:3;11725:980;-1:-1:-1;;;11725:980:1:o

Swarm Source

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