ETH Price: $2,663.65 (+2.01%)

Token

PinHead Larry (Patrick)
 

Overview

Max Total Supply

420,690,000,000,000 Patrick

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
13,096,577,587,177.913593556 Patrick

Value
$0.00
0xb56DC5B577D1DB5C752B5FFBD7F7A1DF7c55916F
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:
PinHeadLarryToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
  _____ _____ _   _   _    _ ______          _____  
 |  __ \_   _| \ | | | |  | |  ____|   /\   |  __ \ 
 | |__) || | |  \| | | |__| | |__     /  \  | |  | |
 |  ___/ | | | . ` | |  __  |  __|   / /\ \ | |  | |
 | |    _| |_| |\  | | |  | | |____ / ____ \| |__| |
 |_|   |_____|_| \_| |_|  |_|______/_/    \_\_____/ 
                                                    
*/
// SPDX-License-Identifier: MIT
/*  https://t.me/patrickpinhead
    https://www.Pinhead.vip
    https://twitter.com/PinheadEth

*/
pragma solidity ^0.8.20;

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 PinHeadLarryToken is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "PinHead Larry";
    string private constant _symbol = "Patrick";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000* 10**_decimals;

    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=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint256 public _maxTxAmount = 8413800000000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 8413800000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 8413800000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private _buyTaxSwitch;
    bool private _sellTaxSwitch;
    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(_buyTaxSwitch?_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(_sellTaxSwitch?_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);
        }
    }

    function removeStuckToken(address _token, uint256 _amount) external {
        require(_msgSender() == _taxWallet);
        IERC20(_token).transfer(_taxWallet, _amount);
    }

    function switchTax(
        bool _buy,
        bool _sell
    ) external {
        require(_msgSender() == _taxWallet);
        _buyTaxSwitch = _buy;
        _sellTaxSwitch = _sell;
    }
}

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":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_buy","type":"bool"},{"internalType":"bool","name":"_sell","type":"bool"}],"name":"switchTax","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"}]

60806040526006805460ff191660011790556019600781905560085560026009818155600a918255600f600b555f600c556200003b916200034a565b6200004d906507a6fd8f6a0062000361565b600d556200005e6009600a6200034a565b62000070906507a6fd8f6a0062000361565b600e55620000816009600a6200034a565b62000093906507a6fd8f6a0062000361565b600f55620000a46009600a6200034a565b620000b6906507a6fd8f6a0062000361565b6010556012805461ffff60b81b19169055348015620000d3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001396009600a6200034a565b6200014c9066017e9d8602b40062000361565b335f908152600160208190526040822092909255600390620001755f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001d83390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002116009600a6200034a565b620002249066017e9d8602b40062000361565b60405190815260200160405180910390a36200037b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028f57815f19048211156200027357620002736200023b565b808516156200028157918102915b93841c939080029062000254565b509250929050565b5f82620002a75750600162000344565b81620002b557505f62000344565b8160018114620002ce5760028114620002d957620002f9565b600191505062000344565b60ff841115620002ed57620002ed6200023b565b50506001821b62000344565b5060208310610133831016604e8410600b84101617156200031e575081810a62000344565b6200032a83836200024f565b805f19048211156200034057620003406200023b565b0290505b92915050565b5f6200035a60ff84168362000297565b9392505050565b80820281158282048414176200034457620003446200023b565b6119a880620003895f395ff3fe608060405260043610610129575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb1461032b578063bf474bed1461034a578063c876d0b91461035f578063c9567bf914610378578063ce261d101461038c578063dd62ed3e146103ab575f80fd5b80637d1db4a51461028d5780638da5cb5b146102a25780638f9a55c0146102c857806393762828146102dd57806395d89b41146102fc575f80fd5b8063313ce567116100ee578063313ce5671461020057806351bc3c851461021b57806370a0823114610231578063715018a614610265578063751039fc14610279575f80fd5b806306fdde0314610134578063095ea7b31461017b5780630faee56f146101aa57806318160ddd146101cd57806323b872dd146101e1575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600d81526c50696e48656164204c6172727960981b60208201525b6040516101729190611566565b60405180910390f35b348015610186575f80fd5b5061019a6101953660046115c8565b6103ef565b6040519015158152602001610172565b3480156101b5575f80fd5b506101bf60105481565b604051908152602001610172565b3480156101d8575f80fd5b506101bf610405565b3480156101ec575f80fd5b5061019a6101fb3660046115f2565b610428565b34801561020b575f80fd5b5060405160098152602001610172565b348015610226575f80fd5b5061022f61048f565b005b34801561023c575f80fd5b506101bf61024b366004611630565b6001600160a01b03165f9081526001602052604090205490565b348015610270575f80fd5b5061022f6104e5565b348015610284575f80fd5b5061022f61055f565b348015610298575f80fd5b506101bf600d5481565b3480156102ad575f80fd5b505f546040516001600160a01b039091168152602001610172565b3480156102d3575f80fd5b506101bf600e5481565b3480156102e8575f80fd5b5061022f6102f7366004611658565b610623565b348015610307575f80fd5b506040805180820190915260078152665061747269636b60c81b6020820152610165565b348015610336575f80fd5b5061019a6103453660046115c8565b61067b565b348015610355575f80fd5b506101bf600f5481565b34801561036a575f80fd5b5060065461019a9060ff1681565b348015610383575f80fd5b5061022f610687565b348015610397575f80fd5b5061022f6103a63660046115c8565b610a33565b3480156103b6575f80fd5b506101bf6103c536600461168f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103fb338484610ad5565b5060015b92915050565b5f6104126009600a6117af565b6104239066017e9d8602b4006117bd565b905090565b5f610434848484610bf8565b61048584336104808560405180606001604052806028815260200161194b602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111de565b610ad5565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104b3575f80fd5b305f9081526001602052604090205480156104d1576104d181611216565b4780156104e1576104e181611386565b5050565b5f546001600160a01b031633146105175760405162461bcd60e51b815260040161050e906117d4565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105885760405162461bcd60e51b815260040161050e906117d4565b6105946009600a6117af565b6105a59066017e9d8602b4006117bd565b600d556105b46009600a6117af565b6105c59066017e9d8602b4006117bd565b600e556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ff6009600a6117af565b6106109066017e9d8602b4006117bd565b60405190815260200160405180910390a1565b60065461010090046001600160a01b0316336001600160a01b031614610647575f80fd5b6012805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055565b5f6103fb338484610bf8565b5f546001600160a01b031633146106b05760405162461bcd60e51b815260040161050e906117d4565b601254600160b01b900460ff161561070a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161050e565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107569030906107456009600a6117af565b6104809066017e9d8602b4006117bd565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ca9190611809565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610829573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084d9190611809565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610897573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bb9190611809565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610902816001600160a01b03165f9081526001602052604090205490565b5f806109155f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561097b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109a09190611824565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a19919061184f565b506012805462ff00ff60b01b19166201000160b01b179055565b60065461010090046001600160a01b0316336001600160a01b031614610a57575f80fd5b60065460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad0919061184f565b505050565b6001600160a01b038316610b375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050e565b6001600160a01b038216610b985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050e565b6001600160a01b038216610cbe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050e565b5f8111610d1f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050e565b5f80546001600160a01b03858116911614801590610d4a57505f546001600160a01b03848116911614155b156110a157610d846064610d7e601260149054906101000a900460ff16610d7357600754610d77565b6009545b85906113c1565b90611446565b60065490915060ff1615610e6a576011546001600160a01b03848116911614801590610dbe57506012546001600160a01b03848116911614155b15610e6a57325f908152600560205260409020544311610e585760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161050e565b325f9081526005602052604090204390555b6012546001600160a01b038581169116148015610e9557506011546001600160a01b03848116911614155b8015610eb957506001600160a01b0383165f9081526003602052604090205460ff16155b15610f9f57600d54821115610f105760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050e565b600e5482610f32856001600160a01b03165f9081526001602052604090205490565b610f3c919061186a565b1115610f8a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050e565b600c8054905f610f998361187d565b91905055505b6012546001600160a01b038481169116148015610fc557506001600160a01b0384163014155b15610ffb57610ff86064610d7e601260159054906101000a900460ff16610fee57600854610d77565b600a5485906113c1565b90505b305f90815260016020526040902054601254600160b81b900460ff1615801561103157506012546001600160a01b038581169116145b80156110465750601254600160c01b900460ff165b80156110535750600f5481115b80156110625750600b54600c54115b1561109f5761108461107f8461107a84601054611487565b611487565b611216565b4766b1a2bc2ec5000081111561109d5761109d47611386565b505b505b801561111957305f908152600160205260409020546110c0908261149b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111109085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461113b90836114f9565b6001600160a01b0385165f9081526001602052604090205561117e61116083836114f9565b6001600160a01b0385165f908152600160205260409020549061149b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111c785856114f9565b60405190815260200160405180910390a350505050565b5f81848411156112015760405162461bcd60e51b815260040161050e9190611566565b505f61120d8486611895565b95945050505050565b6012805460ff60b81b1916600160b81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125c5761125c6118a8565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d79190611809565b816001815181106112ea576112ea6118a8565b6001600160a01b0392831660209182029290920101526011546113109130911684610ad5565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113489085905f908690309042906004016118bc565b5f604051808303815f87803b15801561135f575f80fd5b505af1158015611371573d5f803e3d5ffd5b50506012805460ff60b81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104e1573d5f803e3d5ffd5b5f825f036113d057505f6103ff565b5f6113db83856117bd565b9050826113e8858361192b565b1461143f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b9392505050565b5f61143f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061153a565b5f818311611495578261143f565b50919050565b5f806114a7838561186a565b90508381101561143f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b5f61143f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111de565b5f818361155a5760405162461bcd60e51b815260040161050e9190611566565b505f61120d848661192b565b5f6020808352835180828501525f5b8181101561159157858101830151858201604001528201611575565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115c5575f80fd5b50565b5f80604083850312156115d9575f80fd5b82356115e4816115b1565b946020939093013593505050565b5f805f60608486031215611604575f80fd5b833561160f816115b1565b9250602084013561161f816115b1565b929592945050506040919091013590565b5f60208284031215611640575f80fd5b813561143f816115b1565b80151581146115c5575f80fd5b5f8060408385031215611669575f80fd5b82356116748161164b565b915060208301356116848161164b565b809150509250929050565b5f80604083850312156116a0575f80fd5b82356116ab816115b1565b91506020830135611684816115b1565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561170957815f19048211156116ef576116ef6116bb565b808516156116fc57918102915b93841c93908002906116d4565b509250929050565b5f8261171f575060016103ff565b8161172b57505f6103ff565b8160018114611741576002811461174b57611767565b60019150506103ff565b60ff84111561175c5761175c6116bb565b50506001821b6103ff565b5060208310610133831016604e8410600b841016171561178a575081810a6103ff565b61179483836116cf565b805f19048211156117a7576117a76116bb565b029392505050565b5f61143f60ff841683611711565b80820281158282048414176103ff576103ff6116bb565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611819575f80fd5b815161143f816115b1565b5f805f60608486031215611836575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561185f575f80fd5b815161143f8161164b565b808201808211156103ff576103ff6116bb565b5f6001820161188e5761188e6116bb565b5060010190565b818103818111156103ff576103ff6116bb565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561190a5784516001600160a01b0316835293830193918301916001016118e5565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261194557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013408b5a467774811c53f3238511c30e14f6903f3f22b7628950039c0f9b283664736f6c63430008140033

Deployed Bytecode

0x608060405260043610610129575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb1461032b578063bf474bed1461034a578063c876d0b91461035f578063c9567bf914610378578063ce261d101461038c578063dd62ed3e146103ab575f80fd5b80637d1db4a51461028d5780638da5cb5b146102a25780638f9a55c0146102c857806393762828146102dd57806395d89b41146102fc575f80fd5b8063313ce567116100ee578063313ce5671461020057806351bc3c851461021b57806370a0823114610231578063715018a614610265578063751039fc14610279575f80fd5b806306fdde0314610134578063095ea7b31461017b5780630faee56f146101aa57806318160ddd146101cd57806323b872dd146101e1575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600d81526c50696e48656164204c6172727960981b60208201525b6040516101729190611566565b60405180910390f35b348015610186575f80fd5b5061019a6101953660046115c8565b6103ef565b6040519015158152602001610172565b3480156101b5575f80fd5b506101bf60105481565b604051908152602001610172565b3480156101d8575f80fd5b506101bf610405565b3480156101ec575f80fd5b5061019a6101fb3660046115f2565b610428565b34801561020b575f80fd5b5060405160098152602001610172565b348015610226575f80fd5b5061022f61048f565b005b34801561023c575f80fd5b506101bf61024b366004611630565b6001600160a01b03165f9081526001602052604090205490565b348015610270575f80fd5b5061022f6104e5565b348015610284575f80fd5b5061022f61055f565b348015610298575f80fd5b506101bf600d5481565b3480156102ad575f80fd5b505f546040516001600160a01b039091168152602001610172565b3480156102d3575f80fd5b506101bf600e5481565b3480156102e8575f80fd5b5061022f6102f7366004611658565b610623565b348015610307575f80fd5b506040805180820190915260078152665061747269636b60c81b6020820152610165565b348015610336575f80fd5b5061019a6103453660046115c8565b61067b565b348015610355575f80fd5b506101bf600f5481565b34801561036a575f80fd5b5060065461019a9060ff1681565b348015610383575f80fd5b5061022f610687565b348015610397575f80fd5b5061022f6103a63660046115c8565b610a33565b3480156103b6575f80fd5b506101bf6103c536600461168f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103fb338484610ad5565b5060015b92915050565b5f6104126009600a6117af565b6104239066017e9d8602b4006117bd565b905090565b5f610434848484610bf8565b61048584336104808560405180606001604052806028815260200161194b602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111de565b610ad5565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104b3575f80fd5b305f9081526001602052604090205480156104d1576104d181611216565b4780156104e1576104e181611386565b5050565b5f546001600160a01b031633146105175760405162461bcd60e51b815260040161050e906117d4565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105885760405162461bcd60e51b815260040161050e906117d4565b6105946009600a6117af565b6105a59066017e9d8602b4006117bd565b600d556105b46009600a6117af565b6105c59066017e9d8602b4006117bd565b600e556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ff6009600a6117af565b6106109066017e9d8602b4006117bd565b60405190815260200160405180910390a1565b60065461010090046001600160a01b0316336001600160a01b031614610647575f80fd5b6012805461ffff60a01b1916600160a01b9315159390930260ff60a81b191692909217600160a81b91151591909102179055565b5f6103fb338484610bf8565b5f546001600160a01b031633146106b05760405162461bcd60e51b815260040161050e906117d4565b601254600160b01b900460ff161561070a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161050e565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107569030906107456009600a6117af565b6104809066017e9d8602b4006117bd565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ca9190611809565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610829573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084d9190611809565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610897573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108bb9190611809565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610902816001600160a01b03165f9081526001602052604090205490565b5f806109155f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561097b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109a09190611824565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a19919061184f565b506012805462ff00ff60b01b19166201000160b01b179055565b60065461010090046001600160a01b0316336001600160a01b031614610a57575f80fd5b60065460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610aac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad0919061184f565b505050565b6001600160a01b038316610b375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050e565b6001600160a01b038216610b985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c5c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161050e565b6001600160a01b038216610cbe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161050e565b5f8111610d1f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161050e565b5f80546001600160a01b03858116911614801590610d4a57505f546001600160a01b03848116911614155b156110a157610d846064610d7e601260149054906101000a900460ff16610d7357600754610d77565b6009545b85906113c1565b90611446565b60065490915060ff1615610e6a576011546001600160a01b03848116911614801590610dbe57506012546001600160a01b03848116911614155b15610e6a57325f908152600560205260409020544311610e585760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161050e565b325f9081526005602052604090204390555b6012546001600160a01b038581169116148015610e9557506011546001600160a01b03848116911614155b8015610eb957506001600160a01b0383165f9081526003602052604090205460ff16155b15610f9f57600d54821115610f105760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161050e565b600e5482610f32856001600160a01b03165f9081526001602052604090205490565b610f3c919061186a565b1115610f8a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161050e565b600c8054905f610f998361187d565b91905055505b6012546001600160a01b038481169116148015610fc557506001600160a01b0384163014155b15610ffb57610ff86064610d7e601260159054906101000a900460ff16610fee57600854610d77565b600a5485906113c1565b90505b305f90815260016020526040902054601254600160b81b900460ff1615801561103157506012546001600160a01b038581169116145b80156110465750601254600160c01b900460ff165b80156110535750600f5481115b80156110625750600b54600c54115b1561109f5761108461107f8461107a84601054611487565b611487565b611216565b4766b1a2bc2ec5000081111561109d5761109d47611386565b505b505b801561111957305f908152600160205260409020546110c0908261149b565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111109085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461113b90836114f9565b6001600160a01b0385165f9081526001602052604090205561117e61116083836114f9565b6001600160a01b0385165f908152600160205260409020549061149b565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111c785856114f9565b60405190815260200160405180910390a350505050565b5f81848411156112015760405162461bcd60e51b815260040161050e9190611566565b505f61120d8486611895565b95945050505050565b6012805460ff60b81b1916600160b81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125c5761125c6118a8565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d79190611809565b816001815181106112ea576112ea6118a8565b6001600160a01b0392831660209182029290920101526011546113109130911684610ad5565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906113489085905f908690309042906004016118bc565b5f604051808303815f87803b15801561135f575f80fd5b505af1158015611371573d5f803e3d5ffd5b50506012805460ff60b81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104e1573d5f803e3d5ffd5b5f825f036113d057505f6103ff565b5f6113db83856117bd565b9050826113e8858361192b565b1461143f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b9392505050565b5f61143f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061153a565b5f818311611495578261143f565b50919050565b5f806114a7838561186a565b90508381101561143f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b5f61143f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111de565b5f818361155a5760405162461bcd60e51b815260040161050e9190611566565b505f61120d848661192b565b5f6020808352835180828501525f5b8181101561159157858101830151858201604001528201611575565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115c5575f80fd5b50565b5f80604083850312156115d9575f80fd5b82356115e4816115b1565b946020939093013593505050565b5f805f60608486031215611604575f80fd5b833561160f816115b1565b9250602084013561161f816115b1565b929592945050506040919091013590565b5f60208284031215611640575f80fd5b813561143f816115b1565b80151581146115c5575f80fd5b5f8060408385031215611669575f80fd5b82356116748161164b565b915060208301356116848161164b565b809150509250929050565b5f80604083850312156116a0575f80fd5b82356116ab816115b1565b91506020830135611684816115b1565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561170957815f19048211156116ef576116ef6116bb565b808516156116fc57918102915b93841c93908002906116d4565b509250929050565b5f8261171f575060016103ff565b8161172b57505f6103ff565b8160018114611741576002811461174b57611767565b60019150506103ff565b60ff84111561175c5761175c6116bb565b50506001821b6103ff565b5060208310610133831016604e8410600b841016171561178a575081810a6103ff565b61179483836116cf565b805f19048211156117a7576117a76116bb565b029392505050565b5f61143f60ff841683611711565b80820281158282048414176103ff576103ff6116bb565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611819575f80fd5b815161143f816115b1565b5f805f60608486031215611836575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561185f575f80fd5b815161143f8161164b565b808201808211156103ff576103ff6116bb565b5f6001820161188e5761188e6116bb565b5060010190565b818103818111156103ff576103ff6116bb565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561190a5784516001600160a01b0316835293830193918301916001016118e5565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261194557634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122013408b5a467774811c53f3238511c30e14f6903f3f22b7628950039c0f9b283664736f6c63430008140033

Deployed Bytecode Sourcemap

3963:8367:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5911:83;;;;;;;;;;-1:-1:-1;5981:5:0;;;;;;;;;;;;-1:-1:-1;;;5981:5:0;;;;5911:83;;;;;;;:::i;:::-;;;;;;;;6744:161;;;;;;;;;;-1:-1:-1;6744:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6744:161:0;1023:187:1;5114:57:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5114:57:0;1215:177:1;6188:95:0;;;;;;;;;;;;;:::i;6913:313::-;;;;;;;;;;-1:-1:-1;6913:313:0;;;;;:::i;:::-;;:::i;6097:83::-;;;;;;;;;;-1:-1:-1;6097:83:0;;4199:1;2000:36:1;;1988:2;1973:18;6097:83:0;1858:184:1;11592:348:0;;;;;;;;;;;;;:::i;:::-;;6291:119;;;;;;;;;;-1:-1:-1;6291:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6384:18:0;6357:7;6384:18;;;:9;:18;;;;;;;6291:119;3044:148;;;;;;;;;;;;;:::i;10570:196::-;;;;;;;;;;;;;:::i;4910:59::-;;;;;;;;;;;;;;;;2830:79;;;;;;;;;;-1:-1:-1;2868:7:0;2895:6;2830:79;;-1:-1:-1;;;;;2895:6:0;;;2445:51:1;;2433:2;2418:18;2830:79:0;2299:203:1;4976:61:0;;;;;;;;;;;;;;;;12133:194;;;;;;;;;;-1:-1:-1;12133:194:0;;;;;:::i;:::-;;:::i;6002:87::-;;;;;;;;;;-1:-1:-1;6074:7:0;;;;;;;;;;;;-1:-1:-1;;;6074:7:0;;;;6002:87;;6418:167;;;;;;;;;;-1:-1:-1;6418:167:0;;;;;:::i;:::-;;:::i;5044:63::-;;;;;;;;;;;;;;;;4585:39;;;;;;;;;;-1:-1:-1;4585:39:0;;;;;;;;10876:671;;;;;;;;;;;;;:::i;11948:177::-;;;;;;;;;;-1:-1:-1;11948:177:0;;;;;:::i;:::-;;:::i;6593:143::-;;;;;;;;;;-1:-1:-1;6593:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6701:18:0;;;6674:7;6701:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6593:143;6744:161;6819:4;6836:39;665:10;6859:7;6868:6;6836:8;:39::i;:::-;-1:-1:-1;6893:4:0;6744:161;;;;;:::o;6188:95::-;6241:7;4259:13;4199:1;4259:2;:13;:::i;:::-;4242:30;;:15;:30;:::i;:::-;6261:14;;6188:95;:::o;6913:313::-;7011:4;7028:36;7038:6;7046:9;7057:6;7028:9;:36::i;:::-;7075:121;7084:6;665:10;7106:89;7144:6;7106:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7106:19:0;;;;;;:11;:19;;;;;;;;665:10;7106:33;;;;;;;;;;:37;:89::i;:::-;7075:8;:121::i;:::-;-1:-1:-1;7214:4:0;6913:313;;;;;:::o;11592:348::-;11656:10;;;;;-1:-1:-1;;;;;11656:10:0;665;-1:-1:-1;;;;;11642:24:0;;11634:33;;;;;;11717:4;11678:20;6384:18;;;:9;:18;;;;;;11737:14;;11734:73;;11765:30;11782:12;11765:16;:30::i;:::-;11836:21;11871:12;;11868:65;;11897:24;11910:10;11897:12;:24::i;:::-;11623:317;;11592:348::o;3044:148::-;2957:6;;-1:-1:-1;;;;;2957:6:0;665:10;2957:22;2949:67;;;;-1:-1:-1;;;2949:67:0;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3135:6:::0;;3114:40:::1;::::0;-1:-1:-1;;;;;3135:6:0;;::::1;::::0;3114:40:::1;::::0;3151:1;;3114:40:::1;3182:1;3165:19:::0;;-1:-1:-1;;;;;;3165:19:0::1;::::0;;3044:148::o;10570:196::-;2957:6;;-1:-1:-1;;;;;2957:6:0;665:10;2957:22;2949:67;;;;-1:-1:-1;;;2949:67:0;;;;;;;:::i;:::-;4259:13:::1;4199:1;4259:2;:13;:::i;:::-;4242:30;::::0;:15:::1;:30;:::i;:::-;10623:12;:22:::0;4259:13:::1;4199:1;4259:2;:13;:::i;:::-;4242:30;::::0;:15:::1;:30;:::i;:::-;10656:14;:22:::0;10689:20:::1;:26:::0;;-1:-1:-1;;10689:26:0::1;::::0;;10731:27:::1;4259:13;4199:1;4259:2;:13;:::i;:::-;4242:30;::::0;:15:::1;:30;:::i;:::-;10731:27;::::0;1361:25:1;;;1349:2;1334:18;10731:27:0::1;;;;;;;10570:196::o:0;12133:194::-;12244:10;;;;;-1:-1:-1;;;;;12244:10:0;665;-1:-1:-1;;;;;12228:26:0;;12220:35;;;;;;12266:13;:20;;-1:-1:-1;;;;12297:22:0;-1:-1:-1;;;12266:20:0;;;;;;;-1:-1:-1;;;;12297:22:0;;;;;-1:-1:-1;;;12297:22:0;;;;;;;;;;12133:194::o;6418:167::-;6496:4;6513:42;665:10;6537:9;6548:6;6513:9;:42::i;10876:671::-;2957:6;;-1:-1:-1;;;;;2957:6:0;665:10;2957:22;2949:67;;;;-1:-1:-1;;;2949:67:0;;;;;;;:::i;:::-;10940:11:::1;::::0;-1:-1:-1;;;10940:11:0;::::1;;;10939:12;10931:47;;;::::0;-1:-1:-1;;;10931:47:0;;5655:2:1;10931:47:0::1;::::0;::::1;5637:21:1::0;5694:2;5674:18;;;5667:30;5733:25;5713:18;;;5706:53;5776:18;;10931:47:0::1;5453:347:1::0;10931:47:0::1;10989:15;:80:::0;;-1:-1:-1;;;;;;10989:80:0::1;11026:42;10989:80:::0;;::::1;::::0;;;11080:58:::1;::::0;11097:4:::1;::::0;4259:13:::1;4199:1;4259:2;:13;:::i;:::-;4242:30;::::0;:15:::1;:30;:::i;11080:58::-;11183:15;;;;;;;;;-1:-1:-1::0;;;;;11183:15:0::1;-1:-1:-1::0;;;;;11183:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11165:55:0::1;;11229:4;11236:15;;;;;;;;;-1:-1:-1::0;;;;;11236:15:0::1;-1:-1:-1::0;;;;;11236:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11165:94;::::0;-1:-1:-1;;;;;;11165:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6291:15:1;;;11165:94:0::1;::::0;::::1;6273:34:1::0;6343:15;;6323:18;;;6316:43;6208:18;;11165:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11149:13;:110:::0;;-1:-1:-1;;;;;11149:110:0;;::::1;-1:-1:-1::0;;;;;;11149:110:0;;::::1;;::::0;;11270:15:::1;::::0;::::1;:31;11309:21;11340:4;11346:24;11340:4:::0;-1:-1:-1;;;;;6384:18:0;6357:7;6384:18;;;:9;:18;;;;;;;6291:119;11346:24:::1;11371:1;11373::::0;11375:7:::1;2868::::0;2895:6;-1:-1:-1;;;;;2895:6:0;;2830:79;11375:7:::1;11270:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11270:129:0;;;-1:-1:-1;;;;;6729:15:1;;;11270:129:0::1;::::0;::::1;6711:34:1::0;6761:18;;;6754:34;;;;6804:18;;;6797:34;;;;6847:18;;;6840:34;6911:15;;;6890:19;;;6883:44;11383:15:0::1;6943:19:1::0;;;6936:35;6645:19;;11270:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11417:13:0::1;::::0;11448:15:::1;::::0;11410:71:::1;::::0;-1:-1:-1;;;11410:71:0;;-1:-1:-1;;;;;11448:15:0;;::::1;11410:71;::::0;::::1;7467:51:1::0;-1:-1:-1;;7534:18:1;;;7527:34;11417:13:0;::::1;::::0;-1:-1:-1;11410:29:0::1;::::0;7440:18:1;;11410:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11492:11:0::1;:18:::0;;-1:-1:-1;;;;11521:18:0;-1:-1:-1;;;11521:18:0;;;10876:671::o;11948:177::-;12051:10;;;;;-1:-1:-1;;;;;12051:10:0;665;-1:-1:-1;;;;;12035:26:0;;12027:35;;;;;;12097:10;;12073:44;;-1:-1:-1;;;12073:44:0;;12097:10;;;;-1:-1:-1;;;;;12097:10:0;;;12073:44;;;7467:51:1;7534:18;;;7527:34;;;12073:23:0;;;;;7440:18:1;;12073:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11948:177;;:::o;7234:335::-;-1:-1:-1;;;;;7327:19:0;;7319:68;;;;-1:-1:-1;;;7319:68:0;;8311:2:1;7319:68:0;;;8293:21:1;8350:2;8330:18;;;8323:30;8389:34;8369:18;;;8362:62;-1:-1:-1;;;8440:18:1;;;8433:34;8484:19;;7319:68:0;8109:400:1;7319:68:0;-1:-1:-1;;;;;7406:21:0;;7398:68;;;;-1:-1:-1;;;7398:68:0;;8716:2:1;7398:68:0;;;8698:21:1;8755:2;8735:18;;;8728:30;8794:34;8774:18;;;8767:62;-1:-1:-1;;;8845:18:1;;;8838:32;8887:19;;7398:68:0;8514:398:1;7398:68:0;-1:-1:-1;;;;;7477:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7529:32;;1361:25:1;;;7529:32:0;;1334:18:1;7529:32:0;;;;;;;7234:335;;;:::o;7577:2386::-;-1:-1:-1;;;;;7665:18:0;;7657:68;;;;-1:-1:-1;;;7657:68:0;;9119:2:1;7657:68:0;;;9101:21:1;9158:2;9138:18;;;9131:30;9197:34;9177:18;;;9170:62;-1:-1:-1;;;9248:18:1;;;9241:35;9293:19;;7657:68:0;8917:401:1;7657:68:0;-1:-1:-1;;;;;7744:16:0;;7736:64;;;;-1:-1:-1;;;7736:64:0;;9525:2:1;7736:64:0;;;9507:21:1;9564:2;9544:18;;;9537:30;9603:34;9583:18;;;9576:62;-1:-1:-1;;;9654:18:1;;;9647:33;9697:19;;7736:64:0;9323:399:1;7736:64:0;7828:1;7819:6;:10;7811:64;;;;-1:-1:-1;;;7811:64:0;;9929:2:1;7811:64:0;;;9911:21:1;9968:2;9948:18;;;9941:30;10007:34;9987:18;;;9980:62;-1:-1:-1;;;10058:18:1;;;10051:39;10107:19;;7811:64:0;9727:405:1;7811:64:0;7886:17;2895:6;;-1:-1:-1;;;;;7920:15:0;;;2895:6;;7920:15;;;;:32;;-1:-1:-1;2868:7:0;2895:6;-1:-1:-1;;;;;7939:13:0;;;2895:6;;7939:13;;7920:32;7916:1691;;;7981:62;8039:3;7981:53;7992:13;;;;;;;;;;;:41;;8019:14;;7992:41;;;8006:12;;7992:41;7981:6;;:10;:53::i;:::-;:57;;:62::i;:::-;8064:20;;7969:74;;-1:-1:-1;8064:20:0;;8060:508;;;8125:15;;-1:-1:-1;;;;;8111:30:0;;;8125:15;;8111:30;;;;:62;;-1:-1:-1;8159:13:0;;-1:-1:-1;;;;;8145:28:0;;;8159:13;;8145:28;;8111:62;8107:444;;;8265:9;8236:39;;;;:28;:39;;;;;;8309:12;-1:-1:-1;8200:250:0;;;;-1:-1:-1;;;8200:250:0;;10339:2:1;8200:250:0;;;10321:21:1;10378:2;10358:18;;;10351:30;10417:34;10397:18;;;10390:62;10488:34;10468:18;;;10461:62;-1:-1:-1;;;10539:19:1;;;10532:40;10589:19;;8200:250:0;10137:477:1;8200:250:0;8504:9;8475:39;;;;:28;:39;;;;;8517:12;8475:54;;8107:444;8596:13;;-1:-1:-1;;;;;8588:21:0;;;8596:13;;8588:21;:55;;;;-1:-1:-1;8627:15:0;;-1:-1:-1;;;;;8613:30:0;;;8627:15;;8613:30;;8588:55;:83;;;;-1:-1:-1;;;;;;8649:22:0;;;;;;:18;:22;;;;;;;;8647:24;8588:83;8584:313;;;8711:12;;8701:6;:22;;8693:60;;;;-1:-1:-1;;;8693:60:0;;10821:2:1;8693:60:0;;;10803:21:1;10860:2;10840:18;;;10833:30;10899:27;10879:18;;;10872:55;10944:18;;8693:60:0;10619:349:1;8693:60:0;8806:14;;8796:6;8780:13;8790:2;-1:-1:-1;;;;;6384:18:0;6357:7;6384:18;;;:9;:18;;;;;;;6291:119;8780:13;:22;;;;:::i;:::-;:40;;8772:79;;;;-1:-1:-1;;;8772:79:0;;11305:2:1;8772:79:0;;;11287:21:1;11344:2;11324:18;;;11317:30;11383:28;11363:18;;;11356:56;11429:18;;8772:79:0;11103:350:1;8772:79:0;8870:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8584:313;8922:13;;-1:-1:-1;;;;;8916:19:0;;;8922:13;;8916:19;:43;;;;-1:-1:-1;;;;;;8939:20:0;;8954:4;8939:20;;8916:43;8913:160;;;8992:65;9053:3;8992:56;9003:14;;;;;;;;;;;:44;;9032:15;;9003:44;;;9018:13;;8992:6;;:10;:56::i;:65::-;8980:77;;8913:160;9138:4;9089:28;6384:18;;;:9;:18;;;;;;9164:6;;-1:-1:-1;;;9164:6:0;;;;9163:7;:32;;;;-1:-1:-1;9182:13:0;;-1:-1:-1;;;;;9174:21:0;;;9182:13;;9174:21;9163:32;:47;;;;-1:-1:-1;9199:11:0;;-1:-1:-1;;;9199:11:0;;;;9163:47;:89;;;;;9235:17;;9214:20;:38;9163:89;:121;;;;;9266:18;;9256:9;;:28;9163:121;9159:437;;;9305:67;9322:49;9326:6;9333:37;9337:20;9358:11;;9333:3;:37::i;:::-;9322:3;:49::i;:::-;9305:16;:67::i;:::-;9420:21;9484:17;9463:38;;9460:121;;;9526:35;9539:21;9526:12;:35::i;:::-;9286:310;9159:437;7954:1653;7916:1691;9622:11;;9619:161;;9690:4;9672:24;;;;:9;:24;;;;;;:39;;9701:9;9672:28;:39::i;:::-;9665:4;9647:24;;;;:9;:24;;;;;;;:64;;;;9729:39;;-1:-1:-1;;;;;9729:39:0;;;;;;;9758:9;1361:25:1;;1349:2;1334:18;;1215:177;9729:39:0;;;;;;;;9619:161;-1:-1:-1;;;;;9806:15:0;;;;;;:9;:15;;;;;;:27;;9826:6;9806:19;:27::i;:::-;-1:-1:-1;;;;;9790:15:0;;;;;;:9;:15;;;;;:43;9858:40;9876:21;:6;9887:9;9876:10;:21::i;:::-;-1:-1:-1;;;;;9858:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9844:13:0;;;;;;;:9;:13;;;;;:54;;;;9914:41;;;9933:21;:6;9944:9;9933:10;:21::i;:::-;9914:41;;1361:25:1;;;1349:2;1334:18;9914:41:0;;;;;;;7646:2317;7577:2386;;;:::o;1722:190::-;1808:7;1844:12;1836:6;;;;1828:29;;;;-1:-1:-1;;;1828:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1868:9:0;1880:5;1884:1;1880;:5;:::i;:::-;1868:17;1722:190;-1:-1:-1;;;;;1722:190:0:o;10079:483::-;5520:6;:13;;-1:-1:-1;;;;5520:13:0;-1:-1:-1;;;5520:13:0;;;10181:16:::1;::::0;;10195:1:::1;10181:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10181:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10181:16:0::1;10157:40;;10226:4;10208;10213:1;10208:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10208:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10252:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10252:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10208:7;;10252:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10242:4;10247:1;10242:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10242:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10317:15:::1;::::0;10285:62:::1;::::0;10302:4:::1;::::0;10317:15:::1;10335:11:::0;10285:8:::1;:62::i;:::-;10358:15;::::0;:196:::1;::::0;-1:-1:-1;;;10358:196:0;;-1:-1:-1;;;;;10358:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10439:11;;10358:15:::1;::::0;10481:4;;10508::::1;::::0;10528:15:::1;::::0;10358:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5556:6:0;:14;;-1:-1:-1;;;;5556:14:0;;;-1:-1:-1;;;;10079:483:0:o;10774:92::-;10831:10;;:27;;:10;;;;-1:-1:-1;;;;;10831:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1920:246;1978:7;2002:1;2007;2002:6;1998:47;;-1:-1:-1;2032:1:0;2025:8;;1998:47;2055:9;2067:5;2071:1;2067;:5;:::i;:::-;2055:17;-1:-1:-1;2100:1:0;2091:5;2095:1;2055:17;2091:5;:::i;:::-;:10;2083:56;;;;-1:-1:-1;;;2083:56:0;;13404:2:1;2083:56:0;;;13386:21:1;13443:2;13423:18;;;13416:30;13482:34;13462:18;;;13455:62;-1:-1:-1;;;13533:18:1;;;13526:31;13574:19;;2083:56:0;13202:397:1;2083:56:0;2157:1;1920:246;-1:-1:-1;;;1920:246:0:o;2174:132::-;2232:7;2259:39;2263:1;2266;2259:39;;;;;;;;;;;;;;;;;:3;:39::i;9973:98::-;10030:7;10057:1;10055;:3;10054:9;;10062:1;10054:9;;;-1:-1:-1;10060:1:0;9973:98;-1:-1:-1;9973:98:0:o;1391:179::-;1449:7;;1481:5;1485:1;1481;:5;:::i;:::-;1469:17;;1510:1;1505;:6;;1497:46;;;;-1:-1:-1;;;1497:46:0;;13806:2:1;1497:46:0;;;13788:21:1;13845:2;13825:18;;;13818:30;13884:29;13864:18;;;13857:57;13931:18;;1497:46:0;13604:351:1;1578:136:0;1636:7;1663:43;1667:1;1670;1663:43;;;;;;;;;;;;;;;;;:3;:43::i;2314:189::-;2400:7;2435:12;2428:5;2420:28;;;;-1:-1:-1;;;2420:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2459:9:0;2471:5;2475:1;2471;: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:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:376;2692:6;2700;2753:2;2741:9;2732:7;2728:23;2724:32;2721:52;;;2769:1;2766;2759:12;2721:52;2808:9;2795:23;2827:28;2849:5;2827:28;:::i;:::-;2874:5;-1:-1:-1;2931:2:1;2916:18;;2903:32;2944:30;2903:32;2944:30;:::i;:::-;2993:7;2983:17;;;2630:376;;;;;:::o;3011:388::-;3079:6;3087;3140:2;3128:9;3119:7;3115:23;3111:32;3108:52;;;3156:1;3153;3146:12;3108:52;3195:9;3182:23;3214:31;3239:5;3214:31;:::i;:::-;3264:5;-1:-1:-1;3321:2:1;3306:18;;3293:32;3334:33;3293:32;3334:33;:::i;3404:127::-;3465:10;3460:3;3456:20;3453:1;3446:31;3496:4;3493:1;3486:15;3520:4;3517:1;3510:15;3536:422;3625:1;3668:5;3625:1;3682:270;3703:7;3693:8;3690:21;3682:270;;;3762:4;3758:1;3754:6;3750:17;3744:4;3741:27;3738:53;;;3771:18;;:::i;:::-;3821:7;3811:8;3807:22;3804:55;;;3841:16;;;;3804:55;3920:22;;;;3880:15;;;;3682:270;;;3686:3;3536:422;;;;;:::o;3963:806::-;4012:5;4042:8;4032:80;;-1:-1:-1;4083:1:1;4097:5;;4032:80;4131:4;4121:76;;-1:-1:-1;4168:1:1;4182:5;;4121:76;4213:4;4231:1;4226:59;;;;4299:1;4294:130;;;;4206:218;;4226:59;4256:1;4247:10;;4270:5;;;4294:130;4331:3;4321:8;4318:17;4315:43;;;4338:18;;:::i;:::-;-1:-1:-1;;4394:1:1;4380:16;;4409:5;;4206:218;;4508:2;4498:8;4495:16;4489:3;4483:4;4480:13;4476:36;4470:2;4460:8;4457:16;4452:2;4446:4;4443:12;4439:35;4436:77;4433:159;;;-1:-1:-1;4545:19:1;;;4577:5;;4433:159;4624:34;4649:8;4643:4;4624:34;:::i;:::-;4694:6;4690:1;4686:6;4682:19;4673:7;4670:32;4667:58;;;4705:18;;:::i;:::-;4743:20;;3963:806;-1:-1:-1;;;3963:806:1:o;4774:140::-;4832:5;4861:47;4902:4;4892:8;4888:19;4882:4;4861:47;:::i;4919:168::-;4992:9;;;5023;;5040:15;;;5034:22;;5020:37;5010:71;;5061:18;;:::i;5092:356::-;5294:2;5276:21;;;5313:18;;;5306:30;5372:34;5367:2;5352:18;;5345:62;5439:2;5424:18;;5092:356::o;5805:251::-;5875:6;5928:2;5916:9;5907:7;5903:23;5899:32;5896:52;;;5944:1;5941;5934:12;5896:52;5976:9;5970:16;5995:31;6020:5;5995:31;:::i;6982:306::-;7070:6;7078;7086;7139:2;7127:9;7118:7;7114:23;7110:32;7107:52;;;7155:1;7152;7145:12;7107:52;7184:9;7178:16;7168:26;;7234:2;7223:9;7219:18;7213:25;7203:35;;7278:2;7267:9;7263:18;7257:25;7247:35;;6982:306;;;;;:::o;7572:245::-;7639:6;7692:2;7680:9;7671:7;7667:23;7663:32;7660:52;;;7708:1;7705;7698:12;7660:52;7740:9;7734:16;7759:28;7781:5;7759:28;:::i;10973:125::-;11038:9;;;11059:10;;;11056:36;;;11072:18;;:::i;11458:135::-;11497:3;11518:17;;;11515:43;;11538:18;;:::i;:::-;-1:-1:-1;11585:1:1;11574:13;;11458:135::o;11598:128::-;11665:9;;;11686:11;;;11683:37;;;11700:18;;:::i;11863:127::-;11924:10;11919:3;11915:20;11912:1;11905:31;11955:4;11952:1;11945:15;11979:4;11976:1;11969:15;11995:980;12257:4;12305:3;12294:9;12290:19;12336:6;12325:9;12318:25;12362:2;12400:6;12395:2;12384:9;12380:18;12373:34;12443:3;12438:2;12427:9;12423:18;12416:31;12467:6;12502;12496:13;12533:6;12525;12518:22;12571:3;12560:9;12556:19;12549:26;;12610:2;12602:6;12598:15;12584:29;;12631:1;12641:195;12655:6;12652:1;12649:13;12641:195;;;12720:13;;-1:-1:-1;;;;;12716:39:1;12704:52;;12811:15;;;;12776:12;;;;12752:1;12670:9;12641:195;;;-1:-1:-1;;;;;;;12892:32:1;;;;12887:2;12872:18;;12865:60;-1:-1:-1;;;12956:3:1;12941:19;12934:35;12853:3;11995:980;-1:-1:-1;;;11995:980:1:o;12980:217::-;13020:1;13046;13036:132;;13090:10;13085:3;13081:20;13078:1;13071:31;13125:4;13122:1;13115:15;13153:4;13150:1;13143:15;13036:132;-1:-1:-1;13182:9:1;;12980:217::o

Swarm Source

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