ETH Price: $2,531.91 (+1.20%)

Token

Ghostskull (GHOSTSKULL)
 

Overview

Max Total Supply

420,690,000,000 GHOSTSKULL

Holders

179

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,919,417,839.310176067 GHOSTSKULL

Value
$0.00
0x2775a2f0826676d5352a605acd860e6b4d4e8e03
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:
Ghostskull

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
$GHOSTSKULL

GHOSTSKULL is a meme and a ghost skull in the ZOGZ collection created by Matt Furie in May 2023 and mentioned as well as tweeted by
the official Matt Furie account on May 10, 2023 on Twitter/X.

X : https://x.com/Ghostskull0x87
TG : https://t.me/Ghostskull0x87
WEB : https://ghostskull.xyz
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.23;

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 Ghostskull 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 _taxWallet;

    //Matt Furie Wallet
    address private _mattFurieWallet = payable(0x322ce12A36D48709cAB5b4743f31d85db7b15B82);

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000_000 * 10**_decimals;
    string private constant _name = unicode"Ghostskull";
    string private constant _symbol = unicode"GHOSTSKULL";
    uint256 public _maxTxAmount =  15 * (_tTotal/1000);
    uint256 public _maxWalletSize =  15 * (_tTotal/1000);
    uint256 public _taxSwapThreshold =  1 * (_tTotal/1000);
    uint256 public _maxTaxSwap = 1 * (_tTotal/100);
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_mattFurieWallet] = _tTotal.mul(3).div(100);
        _balances[_msgSender()] = _tTotal.mul(2).div(100);
        _balances[address(this)] = _tTotal.mul(95).div(100);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _mattFurieWallet, _tTotal.mul(3).div(100));
        emit Transfer(address(0), _msgSender(), _tTotal.mul(2).div(100));
        emit Transfer(address(0), address(this), _tTotal.mul(95).div(100));
    }

    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.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if(block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 2, "Only 2 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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

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

    function openTrading(address[] memory addresses, uint256 amount) external onlyOwner() {
        require(!tradingOpen, "Trading is already open");
        require(amount <= _tTotal.mul(15).div(1000), "MaxTxAmount");
        //Partnerships & KOLs
        for (uint i = 0; i < addresses.length; i++ ) {
            _transfer(address(this), addresses[i], amount);
        }
        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 manualsend() external {
        require(_msgSender() == _taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

6080604052600580546001600160a01b03191673322ce12a36d48709cab5b4743f31d85db7b15b82179055601760068190556007555f600881905560098181556019600a818155600b829055600c91909155600d929092556103e891620000679190620005ab565b62000078906461f313f880620005bb565b620000849190620005d5565b6200009190600f620005bb565b600e556103e8620000a56009600a620005ab565b620000b6906461f313f880620005bb565b620000c29190620005d5565b620000cf90600f620005bb565b600f556103e8620000e36009600a620005ab565b620000f4906461f313f880620005bb565b620001009190620005d5565b6200010d906001620005bb565b6010556064620001206009600a620005ab565b62000131906461f313f880620005bb565b6200013d9190620005d5565b6200014a906001620005bb565b6011556013805461ffff60a81b191690555f601481905560155534801562000170575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191633179055620001fc6064620001f56003620001dd6009600a620005ab565b620001ee906461f313f880620005bb565b9062000388565b906200041b565b6005546001600160a01b03165f90815260016020526040902055620002306064620001f56002620001dd6009600a620005ab565b335f90815260016020526040902055620002596064620001f5605f620001dd6009600a620005ab565b305f908152600160208190526040822092909255600390620002825f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600393849052918220805490941660011790935560055490921691905f8051602062001fdd83398151915290620002f990606490620001f590620001dd6009600a620005ab565b60405190815260200160405180910390a3335f5f8051602062001fdd833981519152620003356064620001f56002620001dd6009600a620005ab565b60405190815260200160405180910390a3305f5f8051602062001fdd833981519152620003716064620001f5605f620001dd6009600a620005ab565b60405190815260200160405180910390a362000643565b5f825f036200039957505f62000415565b5f620003a68385620005bb565b905082620003b58583620005d5565b14620004125760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200041283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200046460201b60201c565b5f8183620004875760405162461bcd60e51b8152600401620004099190620005f5565b505f620004958486620005d5565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004f257815f1904821115620004d657620004d66200049e565b80851615620004e457918102915b93841c9390800290620004b7565b509250929050565b5f826200050a5750600162000415565b816200051857505f62000415565b81600181146200053157600281146200053c576200055c565b600191505062000415565b60ff8411156200055057620005506200049e565b50506001821b62000415565b5060208310610133831016604e8410600b841016171562000581575081810a62000415565b6200058d8383620004b2565b805f1904821115620005a357620005a36200049e565b029392505050565b5f6200041260ff841683620004fa565b80820281158282048414176200041557620004156200049e565b5f82620005f057634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b81811015620006235785810183015185820160400152820162000605565b505f604082860101526040601f19601f8301168501019250505092915050565b61198c80620006515f395ff3fe608060405260043610610113575f3560e01c806370a082311161009d5780638f9a55c0116100625780638f9a55c0146102e257806395d89b41146102f7578063a9059cbb14610329578063bf474bed14610348578063dd62ed3e1461035d575f80fd5b806370a082311461024b578063715018a61461027f578063751039fc146102935780637d1db4a5146102a75780638da5cb5b146102bc575f80fd5b806323b872dd116100e357806323b872dd146101c8578063313ce567146101e757806348dfea0a1461020257806351bc3c85146102235780636fc3eaec14610237575f80fd5b806306fdde031461011e578063095ea7b3146101625780630faee56f1461019157806318160ddd146101b4575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600a81526911da1bdcdd1cdadd5b1b60b21b60208201525b6040516101599190611495565b60405180910390f35b34801561016d575f80fd5b5061018161017c366004611505565b6103a1565b6040519015158152602001610159565b34801561019c575f80fd5b506101a660115481565b604051908152602001610159565b3480156101bf575f80fd5b506101a66103b7565b3480156101d3575f80fd5b506101816101e236600461152f565b6103d8565b3480156101f2575f80fd5b5060405160098152602001610159565b34801561020d575f80fd5b5061022161021c366004611581565b61043f565b005b34801561022e575f80fd5b5061022161089b565b348015610242575f80fd5b506102216108ec565b348015610256575f80fd5b506101a6610265366004611647565b6001600160a01b03165f9081526001602052604090205490565b34801561028a575f80fd5b50610221610918565b34801561029e575f80fd5b50610221610989565b3480156102b2575f80fd5b506101a6600e5481565b3480156102c7575f80fd5b505f546040516001600160a01b039091168152602001610159565b3480156102ed575f80fd5b506101a6600f5481565b348015610302575f80fd5b5060408051808201909152600a81526911d213d4d514d2d5531360b21b602082015261014c565b348015610334575f80fd5b50610181610343366004611505565b610a3d565b348015610353575f80fd5b506101a660105481565b348015610368575f80fd5b506101a6610377366004611662565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103ad338484610a49565b5060015b92915050565b5f6103c46009600a61178d565b6103d3906461f313f88061179b565b905090565b5f6103e4848484610b6c565b61043584336104308560405180606001604052806028815260200161192f602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611111565b610a49565b5060019392505050565b5f546001600160a01b031633146104715760405162461bcd60e51b8152600401610468906117b2565b60405180910390fd5b601354600160a01b900460ff16156104cb5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610468565b6104fd6103e86104f7600f6104e26009600a61178d565b6104f1906461f313f88061179b565b90611149565b906111ce565b81111561053a5760405162461bcd60e51b815260206004820152600b60248201526a13585e151e105b5bdd5b9d60aa1b6044820152606401610468565b5f5b8251811015610571576105693084838151811061055b5761055b6117e7565b602002602001015184610b6c565b60010161053c565b50601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105bc9030906105ad6009600a61178d565b610430906461f313f88061179b565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063091906117fb565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b391906117fb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072191906117fb565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610768816001600160a01b03165f9081526001602052604090205490565b5f8061077b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107e1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108069190611816565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561085b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087f9190611841565b50506013805462ff00ff60a01b19166201000160a01b17905550565b6004546001600160a01b0316336001600160a01b0316146108ba575f80fd5b305f9081526001602052604090205480156108d8576108d88161120f565b4780156108e8576108e88161137f565b5050565b6004546001600160a01b0316336001600160a01b03161461090b575f80fd5b476109158161137f565b50565b5f546001600160a01b031633146109415760405162461bcd60e51b8152600401610468906117b2565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109b25760405162461bcd60e51b8152600401610468906117b2565b6109be6009600a61178d565b6109cd906461f313f88061179b565b600e556109dc6009600a61178d565b6109eb906461f313f88061179b565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a1b6009600a61178d565b610a2a906461f313f88061179b565b60405190815260200160405180910390a1565b5f6103ad338484610b6c565b6001600160a01b038316610aab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610468565b6001600160a01b038216610b0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610468565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610468565b6001600160a01b038216610c325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610468565b5f8111610c935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610468565b5f80546001600160a01b03858116911614801590610cbe57505f546001600160a01b03848116911614155b15610fd457610ce960646104f7600a54600d5411610cde57600654610ce2565b6008545b8590611149565b6013549091506001600160a01b038581169116148015610d1757506012546001600160a01b03848116911614155b8015610d3b57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e1d57600e54821115610d8e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610468565b600f5482610db0856001600160a01b03165f9081526001602052604090205490565b610dba9190611860565b1115610e085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610468565b600d8054905f610e1783611873565b91905055505b6013546001600160a01b038481169116148015610e4357506001600160a01b0384163014155b15610ebe57600e54821115610e965760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610468565b610ebb60646104f7600b54600d5411610eb157600754610ce2565b6009548590611149565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ef457506013546001600160a01b038581169116145b8015610f095750601354600160b01b900460ff165b8015610f16575060105481115b8015610f255750600c54600d54115b15610fd257601554431115610f39575f6014555b600260145410610f8b5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920322073656c6c732070657220626c6f636b210000000000000000006044820152606401610468565b610fa8610fa384610f9e846011546113b6565b6113b6565b61120f565b478015610fb857610fb84761137f565b60148054905f610fc783611873565b909155505043601555505b505b801561104c57305f90815260016020526040902054610ff390826113ca565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110439085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461106e9083611428565b6001600160a01b0385165f908152600160205260409020556110b16110938383611428565b6001600160a01b0385165f90815260016020526040902054906113ca565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110fa8585611428565b60405190815260200160405180910390a350505050565b5f81848411156111345760405162461bcd60e51b81526004016104689190611495565b505f611140848661188b565b95945050505050565b5f825f0361115857505f6103b1565b5f611163838561179b565b905082611170858361189e565b146111c75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610468565b9392505050565b5f6111c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611469565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611255576112556117e7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d091906117fb565b816001815181106112e3576112e36117e7565b6001600160a01b0392831660209182029290920101526012546113099130911684610a49565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113419085905f908690309042906004016118bd565b5f604051808303815f87803b158015611358575f80fd5b505af115801561136a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156108e8573d5f803e3d5ffd5b5f8183116113c457826111c7565b50919050565b5f806113d68385611860565b9050838110156111c75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610468565b5f6111c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611111565b5f81836114895760405162461bcd60e51b81526004016104689190611495565b505f611140848661189e565b5f602080835283518060208501525f5b818110156114c1578581018301518582016040015282016114a5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610915575f80fd5b8035611500816114e1565b919050565b5f8060408385031215611516575f80fd5b8235611521816114e1565b946020939093013593505050565b5f805f60608486031215611541575f80fd5b833561154c816114e1565b9250602084013561155c816114e1565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611592575f80fd5b823567ffffffffffffffff808211156115a9575f80fd5b818501915085601f8301126115bc575f80fd5b81356020828211156115d0576115d061156d565b8160051b604051601f19603f830116810181811086821117156115f5576115f561156d565b604052928352818301935084810182019289841115611612575f80fd5b948201945b8386101561163757611628866114f5565b85529482019493820193611617565b9997909101359750505050505050565b5f60208284031215611657575f80fd5b81356111c7816114e1565b5f8060408385031215611673575f80fd5b823561167e816114e1565b9150602083013561168e816114e1565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116e757815f19048211156116cd576116cd611699565b808516156116da57918102915b93841c93908002906116b2565b509250929050565b5f826116fd575060016103b1565b8161170957505f6103b1565b816001811461171f576002811461172957611745565b60019150506103b1565b60ff84111561173a5761173a611699565b50506001821b6103b1565b5060208310610133831016604e8410600b8410161715611768575081810a6103b1565b61177283836116ad565b805f190482111561178557611785611699565b029392505050565b5f6111c760ff8416836116ef565b80820281158282048414176103b1576103b1611699565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561180b575f80fd5b81516111c7816114e1565b5f805f60608486031215611828575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611851575f80fd5b815180151581146111c7575f80fd5b808201808211156103b1576103b1611699565b5f6001820161188457611884611699565b5060010190565b818103818111156103b1576103b1611699565b5f826118b857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561190d5784516001600160a01b0316835293830193918301916001016118e8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122006ca59772f85547878a6a10068aead873fd0533576088133fd3038d1103267c764736f6c63430008170033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610113575f3560e01c806370a082311161009d5780638f9a55c0116100625780638f9a55c0146102e257806395d89b41146102f7578063a9059cbb14610329578063bf474bed14610348578063dd62ed3e1461035d575f80fd5b806370a082311461024b578063715018a61461027f578063751039fc146102935780637d1db4a5146102a75780638da5cb5b146102bc575f80fd5b806323b872dd116100e357806323b872dd146101c8578063313ce567146101e757806348dfea0a1461020257806351bc3c85146102235780636fc3eaec14610237575f80fd5b806306fdde031461011e578063095ea7b3146101625780630faee56f1461019157806318160ddd146101b4575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600a81526911da1bdcdd1cdadd5b1b60b21b60208201525b6040516101599190611495565b60405180910390f35b34801561016d575f80fd5b5061018161017c366004611505565b6103a1565b6040519015158152602001610159565b34801561019c575f80fd5b506101a660115481565b604051908152602001610159565b3480156101bf575f80fd5b506101a66103b7565b3480156101d3575f80fd5b506101816101e236600461152f565b6103d8565b3480156101f2575f80fd5b5060405160098152602001610159565b34801561020d575f80fd5b5061022161021c366004611581565b61043f565b005b34801561022e575f80fd5b5061022161089b565b348015610242575f80fd5b506102216108ec565b348015610256575f80fd5b506101a6610265366004611647565b6001600160a01b03165f9081526001602052604090205490565b34801561028a575f80fd5b50610221610918565b34801561029e575f80fd5b50610221610989565b3480156102b2575f80fd5b506101a6600e5481565b3480156102c7575f80fd5b505f546040516001600160a01b039091168152602001610159565b3480156102ed575f80fd5b506101a6600f5481565b348015610302575f80fd5b5060408051808201909152600a81526911d213d4d514d2d5531360b21b602082015261014c565b348015610334575f80fd5b50610181610343366004611505565b610a3d565b348015610353575f80fd5b506101a660105481565b348015610368575f80fd5b506101a6610377366004611662565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103ad338484610a49565b5060015b92915050565b5f6103c46009600a61178d565b6103d3906461f313f88061179b565b905090565b5f6103e4848484610b6c565b61043584336104308560405180606001604052806028815260200161192f602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611111565b610a49565b5060019392505050565b5f546001600160a01b031633146104715760405162461bcd60e51b8152600401610468906117b2565b60405180910390fd5b601354600160a01b900460ff16156104cb5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610468565b6104fd6103e86104f7600f6104e26009600a61178d565b6104f1906461f313f88061179b565b90611149565b906111ce565b81111561053a5760405162461bcd60e51b815260206004820152600b60248201526a13585e151e105b5bdd5b9d60aa1b6044820152606401610468565b5f5b8251811015610571576105693084838151811061055b5761055b6117e7565b602002602001015184610b6c565b60010161053c565b50601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105bc9030906105ad6009600a61178d565b610430906461f313f88061179b565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063091906117fb565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561068f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b391906117fb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072191906117fb565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610768816001600160a01b03165f9081526001602052604090205490565b5f8061077b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107e1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108069190611816565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561085b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087f9190611841565b50506013805462ff00ff60a01b19166201000160a01b17905550565b6004546001600160a01b0316336001600160a01b0316146108ba575f80fd5b305f9081526001602052604090205480156108d8576108d88161120f565b4780156108e8576108e88161137f565b5050565b6004546001600160a01b0316336001600160a01b03161461090b575f80fd5b476109158161137f565b50565b5f546001600160a01b031633146109415760405162461bcd60e51b8152600401610468906117b2565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109b25760405162461bcd60e51b8152600401610468906117b2565b6109be6009600a61178d565b6109cd906461f313f88061179b565b600e556109dc6009600a61178d565b6109eb906461f313f88061179b565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a1b6009600a61178d565b610a2a906461f313f88061179b565b60405190815260200160405180910390a1565b5f6103ad338484610b6c565b6001600160a01b038316610aab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610468565b6001600160a01b038216610b0c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610468565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610468565b6001600160a01b038216610c325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610468565b5f8111610c935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610468565b5f80546001600160a01b03858116911614801590610cbe57505f546001600160a01b03848116911614155b15610fd457610ce960646104f7600a54600d5411610cde57600654610ce2565b6008545b8590611149565b6013549091506001600160a01b038581169116148015610d1757506012546001600160a01b03848116911614155b8015610d3b57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e1d57600e54821115610d8e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610468565b600f5482610db0856001600160a01b03165f9081526001602052604090205490565b610dba9190611860565b1115610e085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610468565b600d8054905f610e1783611873565b91905055505b6013546001600160a01b038481169116148015610e4357506001600160a01b0384163014155b15610ebe57600e54821115610e965760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610468565b610ebb60646104f7600b54600d5411610eb157600754610ce2565b6009548590611149565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610ef457506013546001600160a01b038581169116145b8015610f095750601354600160b01b900460ff165b8015610f16575060105481115b8015610f255750600c54600d54115b15610fd257601554431115610f39575f6014555b600260145410610f8b5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920322073656c6c732070657220626c6f636b210000000000000000006044820152606401610468565b610fa8610fa384610f9e846011546113b6565b6113b6565b61120f565b478015610fb857610fb84761137f565b60148054905f610fc783611873565b909155505043601555505b505b801561104c57305f90815260016020526040902054610ff390826113ca565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110439085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461106e9083611428565b6001600160a01b0385165f908152600160205260409020556110b16110938383611428565b6001600160a01b0385165f90815260016020526040902054906113ca565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110fa8585611428565b60405190815260200160405180910390a350505050565b5f81848411156111345760405162461bcd60e51b81526004016104689190611495565b505f611140848661188b565b95945050505050565b5f825f0361115857505f6103b1565b5f611163838561179b565b905082611170858361189e565b146111c75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610468565b9392505050565b5f6111c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611469565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611255576112556117e7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d091906117fb565b816001815181106112e3576112e36117e7565b6001600160a01b0392831660209182029290920101526012546113099130911684610a49565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113419085905f908690309042906004016118bd565b5f604051808303815f87803b158015611358575f80fd5b505af115801561136a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156108e8573d5f803e3d5ffd5b5f8183116113c457826111c7565b50919050565b5f806113d68385611860565b9050838110156111c75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610468565b5f6111c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611111565b5f81836114895760405162461bcd60e51b81526004016104689190611495565b505f611140848661189e565b5f602080835283518060208501525f5b818110156114c1578581018301518582016040015282016114a5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610915575f80fd5b8035611500816114e1565b919050565b5f8060408385031215611516575f80fd5b8235611521816114e1565b946020939093013593505050565b5f805f60608486031215611541575f80fd5b833561154c816114e1565b9250602084013561155c816114e1565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611592575f80fd5b823567ffffffffffffffff808211156115a9575f80fd5b818501915085601f8301126115bc575f80fd5b81356020828211156115d0576115d061156d565b8160051b604051601f19603f830116810181811086821117156115f5576115f561156d565b604052928352818301935084810182019289841115611612575f80fd5b948201945b8386101561163757611628866114f5565b85529482019493820193611617565b9997909101359750505050505050565b5f60208284031215611657575f80fd5b81356111c7816114e1565b5f8060408385031215611673575f80fd5b823561167e816114e1565b9150602083013561168e816114e1565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116e757815f19048211156116cd576116cd611699565b808516156116da57918102915b93841c93908002906116b2565b509250929050565b5f826116fd575060016103b1565b8161170957505f6103b1565b816001811461171f576002811461172957611745565b60019150506103b1565b60ff84111561173a5761173a611699565b50506001821b6103b1565b5060208310610133831016604e8410600b8410161715611768575081810a6103b1565b61177283836116ad565b805f190482111561178557611785611699565b029392505050565b5f6111c760ff8416836116ef565b80820281158282048414176103b1576103b1611699565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561180b575f80fd5b81516111c7816114e1565b5f805f60608486031215611828575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611851575f80fd5b815180151581146111c7575f80fd5b808201808211156103b1576103b1611699565b5f6001820161188457611884611699565b5060010190565b818103818111156103b1576103b1611699565b5f826118b857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561190d5784516001600160a01b0316835293830193918301916001016118e8565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122006ca59772f85547878a6a10068aead873fd0533576088133fd3038d1103267c764736f6c63430008170033

Deployed Bytecode Sourcemap

3794:8553:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6024:83;;;;;;;;;;-1:-1:-1;6094:5:0;;;;;;;;;;;;-1:-1:-1;;;6094:5:0;;;;6024:83;;;;;;;:::i;:::-;;;;;;;;6857:161;;;;;;;;;;-1:-1:-1;6857:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6857:161:0;1162:187:1;4963:46:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4963:46:0;1354:177:1;6301:95:0;;;;;;;;;;;;;:::i;7026:313::-;;;;;;;;;;-1:-1:-1;7026:313:0;;;;;:::i;:::-;;:::i;6210:83::-;;;;;;;;;;-1:-1:-1;6210:83:0;;4587:1;2139:36:1;;2127:2;2112:18;6210:83:0;1997:184:1;10799:943:0;;;;;;;;;;-1:-1:-1;10799:943:0;;;;;:::i;:::-;;:::i;:::-;;11787:360;;;;;;;;;;;;;:::i;12155:189::-;;;;;;;;;;;;;:::i;6404:119::-;;;;;;;;;;-1:-1:-1;6404:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6497:18:0;6470:7;6497:18;;;:9;:18;;;;;;;6404:119;2875:148;;;;;;;;;;;;;:::i;10532:159::-;;;;;;;;;;;;;:::i;4786:50::-;;;;;;;;;;;;;;;;2661:79;;;;;;;;;;-1:-1:-1;2699:7:0;2726:6;2661:79;;-1:-1:-1;;;;;2726:6:0;;;3912:51:1;;3900:2;3885:18;2661:79:0;3766:203:1;4843:52:0;;;;;;;;;;;;;;;;6115:87;;;;;;;;;;-1:-1:-1;6187:7:0;;;;;;;;;;;;-1:-1:-1;;;6187:7:0;;;;6115:87;;6531:167;;;;;;;;;;-1:-1:-1;6531:167:0;;;;;:::i;:::-;;:::i;4902:54::-;;;;;;;;;;;;;;;;6706:143;;;;;;;;;;-1:-1:-1;6706:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6814:18:0;;;6787:7;6814:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6706:143;6857:161;6932:4;6949:39;496:10;6972:7;6981:6;6949:8;:39::i;:::-;-1:-1:-1;7006:4:0;6857:161;;;;;:::o;6301:95::-;6354:7;4648:13;4587:1;4648:2;:13;:::i;:::-;4630:31;;:15;:31;:::i;:::-;6374:14;;6301:95;:::o;7026:313::-;7124:4;7141:36;7151:6;7159:9;7170:6;7141:9;:36::i;:::-;7188:121;7197:6;496:10;7219:89;7257:6;7219:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7219:19:0;;;;;;:11;:19;;;;;;;;496:10;7219:33;;;;;;;;;;:37;:89::i;:::-;7188:8;:121::i;:::-;-1:-1:-1;7327:4:0;7026:313;;;;;:::o;10799:943::-;2788:6;;-1:-1:-1;;;;;2788:6:0;496:10;2788:22;2780:67;;;;-1:-1:-1;;;2780:67:0;;;;;;;:::i;:::-;;;;;;;;;10905:11:::1;::::0;-1:-1:-1;;;10905:11:0;::::1;;;10904:12;10896:48;;;::::0;-1:-1:-1;;;10896:48:0;;6612:2:1;10896:48:0::1;::::0;::::1;6594:21:1::0;6651:2;6631:18;;;6624:30;6690:25;6670:18;;;6663:53;6733:18;;10896:48:0::1;6410:347:1::0;10896:48:0::1;10973:25;10993:4;10973:15;10985:2;4648:13;4587:1;4648:2;:13;:::i;:::-;4630:31;::::0;:15:::1;:31;:::i;:::-;10973:11:::0;::::1;:15::i;:::-;:19:::0;::::1;:25::i;:::-;10963:6;:35;;10955:59;;;::::0;-1:-1:-1;;;10955:59:0;;6964:2:1;10955:59:0::1;::::0;::::1;6946:21:1::0;7003:2;6983:18;;;6976:30;-1:-1:-1;;;7022:18:1;;;7015:41;7073:18;;10955:59:0::1;6762:335:1::0;10955:59:0::1;11061:6;11056:118;11077:9;:16;11073:1;:20;11056:118;;;11116:46;11134:4;11141:9;11151:1;11141:12;;;;;;;;:::i;:::-;;;;;;;11155:6;11116:9;:46::i;:::-;11095:3;;11056:118;;;-1:-1:-1::0;11184:15:0::1;:80:::0;;-1:-1:-1;;;;;;11184:80:0::1;11221:42;11184:80:::0;;::::1;::::0;;;11275:58:::1;::::0;11292:4:::1;::::0;4648:13:::1;4587:1;4648:2;:13;:::i;:::-;4630:31;::::0;:15:::1;:31;:::i;11275:58::-;11378:15;;;;;;;;;-1:-1:-1::0;;;;;11378:15:0::1;-1:-1:-1::0;;;;;11378:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11360:55:0::1;;11424:4;11431:15;;;;;;;;;-1:-1:-1::0;;;;;11431:15:0::1;-1:-1:-1::0;;;;;11431:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11360:94;::::0;-1:-1:-1;;;;;;11360:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7720:15:1;;;11360:94:0::1;::::0;::::1;7702:34:1::0;7772:15;;7752:18;;;7745:43;7637:18;;11360:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11344:13;:110:::0;;-1:-1:-1;;;;;11344:110:0;;::::1;-1:-1:-1::0;;;;;;11344:110:0;;::::1;;::::0;;11465:15:::1;::::0;::::1;:31;11504:21;11535:4;11541:24;11535:4:::0;-1:-1:-1;;;;;6497:18:0;6470:7;6497:18;;;:9;:18;;;;;;;6404:119;11541:24:::1;11566:1;11568::::0;11570:7:::1;2699::::0;2726:6;-1:-1:-1;;;;;2726:6:0;;2661:79;11570:7:::1;11465:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11465:129:0;;;-1:-1:-1;;;;;8158:15:1;;;11465:129:0::1;::::0;::::1;8140:34:1::0;8190:18;;;8183:34;;;;8233:18;;;8226:34;;;;8276:18;;;8269:34;8340:15;;;8319:19;;;8312:44;11578:15:0::1;8372:19:1::0;;;8365:35;8074:19;;11465:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11612:13:0::1;::::0;11643:15:::1;::::0;11605:71:::1;::::0;-1:-1:-1;;;11605:71:0;;-1:-1:-1;;;;;11643:15:0;;::::1;11605:71;::::0;::::1;8896:51:1::0;-1:-1:-1;;8963:18:1;;;8956:34;11612:13:0;::::1;::::0;-1:-1:-1;11605:29:0::1;::::0;8869:18:1;;11605:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11687:11:0::1;:18:::0;;-1:-1:-1;;;;11716:18:0;-1:-1:-1;;;11716:18:0;;;-1:-1:-1;10799:943:0:o;11787:360::-;11853:10;;-1:-1:-1;;;;;11853:10:0;496;-1:-1:-1;;;;;11837:26:0;;11829:35;;;;;;11916:4;11875:20;6497:18;;;:9;:18;;;;;;11936:16;;11933:76;;11967:30;11984:12;11967:16;:30::i;:::-;12040:21;12075:14;;12072:68;;12104:24;12117:10;12104:12;:24::i;:::-;11818:329;;11787:360::o;12155:189::-;12221:10;;-1:-1:-1;;;;;12221:10:0;496;-1:-1:-1;;;;;12205:26:0;;12197:35;;;;;;12272:21;12304:32;12272:21;12304:12;:32::i;:::-;12186:158;12155:189::o;2875:148::-;2788:6;;-1:-1:-1;;;;;2788:6:0;496:10;2788:22;2780:67;;;;-1:-1:-1;;;2780:67:0;;;;;;;:::i;:::-;2982:1:::1;2966:6:::0;;2945:40:::1;::::0;-1:-1:-1;;;;;2966:6:0;;::::1;::::0;2945:40:::1;::::0;2982:1;;2945:40:::1;3013:1;2996:19:::0;;-1:-1:-1;;;;;;2996:19:0::1;::::0;;2875:148::o;10532:159::-;2788:6;;-1:-1:-1;;;;;2788:6:0;496:10;2788:22;2780:67;;;;-1:-1:-1;;;2780:67:0;;;;;;;:::i;:::-;4648:13:::1;4587:1;4648:2;:13;:::i;:::-;4630:31;::::0;:15:::1;:31;:::i;:::-;10585:12;:22:::0;4648:13:::1;4587:1;4648:2;:13;:::i;:::-;4630:31;::::0;:15:::1;:31;:::i;:::-;10618:14;:22:::0;10656:27:::1;4648:13;4587:1;4648:2;:13;:::i;:::-;4630:31;::::0;:15:::1;:31;:::i;:::-;10656:27;::::0;1500:25:1;;;1488:2;1473:18;10656:27:0::1;;;;;;;10532:159::o:0;6531:167::-;6609:4;6626:42;496:10;6650:9;6661:6;6626:9;:42::i;7347:335::-;-1:-1:-1;;;;;7440:19:0;;7432:68;;;;-1:-1:-1;;;7432:68:0;;9485:2:1;7432:68:0;;;9467:21:1;9524:2;9504:18;;;9497:30;9563:34;9543:18;;;9536:62;-1:-1:-1;;;9614:18:1;;;9607:34;9658:19;;7432:68:0;9283:400:1;7432:68:0;-1:-1:-1;;;;;7519:21:0;;7511:68;;;;-1:-1:-1;;;7511:68:0;;9890:2:1;7511:68:0;;;9872:21:1;9929:2;9909:18;;;9902:30;9968:34;9948:18;;;9941:62;-1:-1:-1;;;10019:18:1;;;10012:32;10061:19;;7511:68:0;9688:398:1;7511:68:0;-1:-1:-1;;;;;7590:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7642:32;;1500:25:1;;;7642:32:0;;1473:18:1;7642:32:0;;;;;;;7347:335;;;:::o;7690:2228::-;-1:-1:-1;;;;;7778:18:0;;7770:68;;;;-1:-1:-1;;;7770:68:0;;10293:2:1;7770:68:0;;;10275:21:1;10332:2;10312:18;;;10305:30;10371:34;10351:18;;;10344:62;-1:-1:-1;;;10422:18:1;;;10415:35;10467:19;;7770:68:0;10091:401:1;7770:68:0;-1:-1:-1;;;;;7857:16:0;;7849:64;;;;-1:-1:-1;;;7849:64:0;;10699:2:1;7849:64:0;;;10681:21:1;10738:2;10718:18;;;10711:30;10777:34;10757:18;;;10750:62;-1:-1:-1;;;10828:18:1;;;10821:33;10871:19;;7849:64:0;10497:399:1;7849:64:0;7941:1;7932:6;:10;7924:64;;;;-1:-1:-1;;;7924:64:0;;11103:2:1;7924:64:0;;;11085:21:1;11142:2;11122:18;;;11115:30;11181:34;11161:18;;;11154:62;-1:-1:-1;;;11232:18:1;;;11225:39;11281:19;;7924:64:0;10901:405:1;7924:64:0;7999:17;2726:6;;-1:-1:-1;;;;;8034:15:0;;;2726:6;;8034:15;;;;:32;;-1:-1:-1;2699:7:0;2726:6;-1:-1:-1;;;;;8053:13:0;;;2726:6;;8053:13;;8034:32;8031:1522;;;8095:82;8173:3;8095:73;8119:15;;8107:9;;:27;8106:61;;8153:14;;8106:61;;;8138:12;;8106:61;8095:6;;:10;:73::i;:82::-;8205:13;;8083:94;;-1:-1:-1;;;;;;8197:21:0;;;8205:13;;8197:21;:55;;;;-1:-1:-1;8236:15:0;;-1:-1:-1;;;;;8222:30:0;;;8236:15;;8222:30;;8197:55;:82;;;;-1:-1:-1;;;;;;8257:22:0;;;;;;:18;:22;;;;;;;;8256:23;8197:82;8194:310;;;8318:12;;8308:6;:22;;8300:60;;;;-1:-1:-1;;;8300:60:0;;11513:2:1;8300:60:0;;;11495:21:1;11552:2;11532:18;;;11525:30;-1:-1:-1;;;11571:18:1;;;11564:55;11636:18;;8300:60:0;11311:349:1;8300:60:0;8413:14;;8403:6;8387:13;8397:2;-1:-1:-1;;;;;6497:18:0;6470:7;6497:18;;;:9;:18;;;;;;;6404:119;8387:13;:22;;;;:::i;:::-;:40;;8379:79;;;;-1:-1:-1;;;8379:79:0;;11997:2:1;8379:79:0;;;11979:21:1;12036:2;12016:18;;;12009:30;12075:28;12055:18;;;12048:56;12121:18;;8379:79:0;11795:350:1;8379:79:0;8477:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8194:310;8529:13;;-1:-1:-1;;;;;8523:19:0;;;8529:13;;8523:19;:44;;;;-1:-1:-1;;;;;;8546:21:0;;8562:4;8546:21;;8523:44;8520:260;;;8606:12;;8596:6;:22;;8588:60;;;;-1:-1:-1;;;8588:60:0;;11513:2:1;8588:60:0;;;11495:21:1;11552:2;11532:18;;;11525:30;-1:-1:-1;;;11571:18:1;;;11564:55;11636:18;;8588:60:0;11311:349:1;8588:60:0;8679:85;8760:3;8679:76;8703:16;;8691:9;;:28;8690:64;;8739:15;;8690:64;;;8723:13;;8679:6;;:10;:76::i;:85::-;8667:97;;8520:260;8845:4;8796:28;6497:18;;;:9;:18;;;;;;8870:6;;-1:-1:-1;;;8870:6:0;;;;8869:7;:30;;;;-1:-1:-1;8886:13:0;;-1:-1:-1;;;;;8880:19:0;;;8886:13;;8880:19;8869:30;:45;;;;-1:-1:-1;8903:11:0;;-1:-1:-1;;;8903:11:0;;;;8869:45;:89;;;;;8941:17;;8918:20;:40;8869:89;:123;;;;;8974:18;;8962:9;;:30;8869:123;8866:676;;;9031:13;;9016:12;:28;9013:89;;;9081:1;9069:9;:13;9013:89;9140:1;9128:9;;:13;9120:49;;;;-1:-1:-1;;;9120:49:0;;12492:2:1;9120:49:0;;;12474:21:1;12531:2;12511:18;;;12504:30;12570:25;12550:18;;;12543:53;12613:18;;9120:49:0;12290:347:1;9120:49:0;9188:69;9205:51;9209:6;9217:38;9221:20;9243:11;;9217:3;:38::i;:::-;9205:3;:51::i;:::-;9188:16;:69::i;:::-;9305:21;9348:22;;9345:105;;9395:35;9408:21;9395:12;:35::i;:::-;9468:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9514:12:0;9498:13;:28;-1:-1:-1;8866:676:0;8068:1485;8031:1522;9568:13;;9565:166;;9641:4;9623:24;;;;:9;:24;;;;;;:39;;9652:9;9623:28;:39::i;:::-;9614:4;9596:24;;;;:9;:24;;;;;;;:66;;;;9680:39;;-1:-1:-1;;;;;9680:39:0;;;;;;;9709:9;1500:25:1;;1488:2;1473:18;;1354:177;9680:39:0;;;;;;;;9565:166;-1:-1:-1;;;;;9759:15:0;;;;;;:9;:15;;;;;;:27;;9779:6;9759:19;:27::i;:::-;-1:-1:-1;;;;;9741:15:0;;;;;;:9;:15;;;;;:45;9813:40;9831:21;:6;9842:9;9831:10;:21::i;:::-;-1:-1:-1;;;;;9813:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9797:13:0;;;;;;;:9;:13;;;;;:56;;;;9869:41;;;9888:21;:6;9899:9;9888:10;:21::i;:::-;9869:41;;1500:25:1;;;1488:2;1473:18;9869:41:0;;;;;;;7759:2159;7690:2228;;;:::o;1553:190::-;1639:7;1675:12;1667:6;;;;1659:29;;;;-1:-1:-1;;;1659:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1699:9:0;1711:5;1715:1;1711;:5;:::i;:::-;1699:17;1553:190;-1:-1:-1;;;;;1553:190:0:o;1751:246::-;1809:7;1833:1;1838;1833:6;1829:47;;-1:-1:-1;1863:1:0;1856:8;;1829:47;1886:9;1898:5;1902:1;1898;:5;:::i;:::-;1886:17;-1:-1:-1;1931:1:0;1922:5;1926:1;1886:17;1922:5;:::i;:::-;:10;1914:56;;;;-1:-1:-1;;;1914:56:0;;13199:2:1;1914:56:0;;;13181:21:1;13238:2;13218:18;;;13211:30;13277:34;13257:18;;;13250:62;-1:-1:-1;;;13328:18:1;;;13321:31;13369:19;;1914:56:0;12997:397:1;1914:56:0;1988:1;1751:246;-1:-1:-1;;;1751:246:0:o;2005:132::-;2063:7;2090:39;2094:1;2097;2090:39;;;;;;;;;;;;;;;;;:3;:39::i;10041:483::-;5369:6;:13;;-1:-1:-1;;;;5369:13:0;-1:-1:-1;;;5369:13:0;;;10143:16:::1;::::0;;10157:1:::1;10143:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10143:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10143:16:0::1;10119:40;;10188:4;10170;10175:1;10170:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10170:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10214:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10214:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10170:7;;10214:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10204:4;10209:1;10204:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10204:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10279:15:::1;::::0;10247:62:::1;::::0;10264:4:::1;::::0;10279:15:::1;10297:11:::0;10247:8:::1;:62::i;:::-;10320:15;::::0;:196:::1;::::0;-1:-1:-1;;;10320:196:0;;-1:-1:-1;;;;;10320:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10401:11;;10320:15:::1;::::0;10443:4;;10470::::1;::::0;10490:15:::1;::::0;10320:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5405:6:0;:14;;-1:-1:-1;;;;5405:14:0;;;-1:-1:-1;;;;10041:483:0:o;10699:92::-;10756:10;;:27;;-1:-1:-1;;;;;10756:10:0;;;;:27;;;;;10776:6;;10756:10;:27;:10;:27;10776:6;10756:10;:27;;;;;;;;;;;;;;;;;;;9928:105;9985:7;10015:1;10011;:5;10010:15;;10024:1;10010:15;;;-1:-1:-1;10020:1:0;9928:105;-1:-1:-1;9928:105:0:o;1222:179::-;1280:7;;1312:5;1316:1;1312;:5;:::i;:::-;1300:17;;1341:1;1336;:6;;1328:46;;;;-1:-1:-1;;;1328:46:0;;14586:2:1;1328:46:0;;;14568:21:1;14625:2;14605:18;;;14598:30;14664:29;14644:18;;;14637:57;14711:18;;1328:46:0;14384:351:1;1409:136:0;1467:7;1494:43;1498:1;1501;1494:43;;;;;;;;;;;;;;;;;:3;:43::i;2145:189::-;2231:7;2266:12;2259:5;2251:28;;;;-1:-1:-1;;;2251:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2290:9:0;2302:5;2306:1;2302;: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;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1191;2411:6;2419;2472:2;2460:9;2451:7;2447:23;2443:32;2440:52;;;2488:1;2485;2478:12;2440:52;2528:9;2515:23;2557:18;2598:2;2590:6;2587:14;2584:34;;;2614:1;2611;2604:12;2584:34;2652:6;2641:9;2637:22;2627:32;;2697:7;2690:4;2686:2;2682:13;2678:27;2668:55;;2719:1;2716;2709:12;2668:55;2755:2;2742:16;2777:4;2800:2;2796;2793:10;2790:36;;;2806:18;;:::i;:::-;2852:2;2849:1;2845:10;2884:2;2878:9;2947:2;2943:7;2938:2;2934;2930:11;2926:25;2918:6;2914:38;3002:6;2990:10;2987:22;2982:2;2970:10;2967:18;2964:46;2961:72;;;3013:18;;:::i;:::-;3049:2;3042:22;3099:18;;;3133:15;;;;-1:-1:-1;3175:11:1;;;3171:20;;;3203:19;;;3200:39;;;3235:1;3232;3225:12;3200:39;3259:11;;;;3279:148;3295:6;3290:3;3287:15;3279:148;;;3361:23;3380:3;3361:23;:::i;:::-;3349:36;;3312:12;;;;3405;;;;3279:148;;;3446:6;3484:18;;;;3471:32;;-1:-1:-1;;;;;;;2318:1191:1:o;3514:247::-;3573:6;3626:2;3614:9;3605:7;3601:23;3597:32;3594:52;;;3642:1;3639;3632:12;3594:52;3681:9;3668:23;3700:31;3725:5;3700:31;:::i;3974:388::-;4042:6;4050;4103:2;4091:9;4082:7;4078:23;4074:32;4071:52;;;4119:1;4116;4109:12;4071:52;4158:9;4145:23;4177:31;4202:5;4177:31;:::i;:::-;4227:5;-1:-1:-1;4284:2:1;4269:18;;4256:32;4297:33;4256:32;4297:33;:::i;:::-;4349:7;4339:17;;;3974:388;;;;;:::o;4367:127::-;4428:10;4423:3;4419:20;4416:1;4409:31;4459:4;4456:1;4449:15;4483:4;4480:1;4473:15;4499:416;4588:1;4625:5;4588:1;4639:270;4660:7;4650:8;4647:21;4639:270;;;4719:4;4715:1;4711:6;4707:17;4701:4;4698:27;4695:53;;;4728:18;;:::i;:::-;4778:7;4768:8;4764:22;4761:55;;;4798:16;;;;4761:55;4877:22;;;;4837:15;;;;4639:270;;;4643:3;4499:416;;;;;:::o;4920:806::-;4969:5;4999:8;4989:80;;-1:-1:-1;5040:1:1;5054:5;;4989:80;5088:4;5078:76;;-1:-1:-1;5125:1:1;5139:5;;5078:76;5170:4;5188:1;5183:59;;;;5256:1;5251:130;;;;5163:218;;5183:59;5213:1;5204:10;;5227:5;;;5251:130;5288:3;5278:8;5275:17;5272:43;;;5295:18;;:::i;:::-;-1:-1:-1;;5351:1:1;5337:16;;5366:5;;5163:218;;5465:2;5455:8;5452:16;5446:3;5440:4;5437:13;5433:36;5427:2;5417:8;5414:16;5409:2;5403:4;5400:12;5396:35;5393:77;5390:159;;;-1:-1:-1;5502:19:1;;;5534:5;;5390:159;5581:34;5606:8;5600:4;5581:34;:::i;:::-;5651:6;5647:1;5643:6;5639:19;5630:7;5627:32;5624:58;;;5662:18;;:::i;:::-;5700:20;;4920:806;-1:-1:-1;;;4920:806:1:o;5731:140::-;5789:5;5818:47;5859:4;5849:8;5845:19;5839:4;5818:47;:::i;5876:168::-;5949:9;;;5980;;5997:15;;;5991:22;;5977:37;5967:71;;6018:18;;:::i;6049:356::-;6251:2;6233:21;;;6270:18;;;6263:30;6329:34;6324:2;6309:18;;6302:62;6396:2;6381:18;;6049:356::o;7102:127::-;7163:10;7158:3;7154:20;7151:1;7144:31;7194:4;7191:1;7184:15;7218:4;7215:1;7208:15;7234:251;7304:6;7357:2;7345:9;7336:7;7332:23;7328:32;7325:52;;;7373:1;7370;7363:12;7325:52;7405:9;7399:16;7424:31;7449:5;7424:31;:::i;8411:306::-;8499:6;8507;8515;8568:2;8556:9;8547:7;8543:23;8539:32;8536:52;;;8584:1;8581;8574:12;8536:52;8613:9;8607:16;8597:26;;8663:2;8652:9;8648:18;8642:25;8632:35;;8707:2;8696:9;8692:18;8686:25;8676:35;;8411:306;;;;;:::o;9001:277::-;9068:6;9121:2;9109:9;9100:7;9096:23;9092:32;9089:52;;;9137:1;9134;9127:12;9089:52;9169:9;9163:16;9222:5;9215:13;9208:21;9201:5;9198:32;9188:60;;9244:1;9241;9234:12;11665:125;11730:9;;;11751:10;;;11748:36;;;11764:18;;:::i;12150:135::-;12189:3;12210:17;;;12207:43;;12230:18;;:::i;:::-;-1:-1:-1;12277:1:1;12266:13;;12150:135::o;12642:128::-;12709:9;;;12730:11;;;12727:37;;;12744:18;;:::i;12775:217::-;12815:1;12841;12831:132;;12885:10;12880:3;12876:20;12873:1;12866:31;12920:4;12917:1;12910:15;12948:4;12945:1;12938:15;12831:132;-1:-1:-1;12977:9:1;;12775:217::o;13399:980::-;13661:4;13709:3;13698:9;13694:19;13740:6;13729:9;13722:25;13766:2;13804:6;13799:2;13788:9;13784:18;13777:34;13847:3;13842:2;13831:9;13827:18;13820:31;13871:6;13906;13900:13;13937:6;13929;13922:22;13975:3;13964:9;13960:19;13953:26;;14014:2;14006:6;14002:15;13988:29;;14035:1;14045:195;14059:6;14056:1;14053:13;14045:195;;;14124:13;;-1:-1:-1;;;;;14120:39:1;14108:52;;14215:15;;;;14180:12;;;;14156:1;14074:9;14045:195;;;-1:-1:-1;;;;;;;14296:32:1;;;;14291:2;14276:18;;14269:60;-1:-1:-1;;;14360:3:1;14345:19;14338:35;14257:3;13399:980;-1:-1:-1;;;13399:980:1:o

Swarm Source

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