ETH Price: $2,440.83 (+3.66%)

Token

TDG2.0 (TDG2.0)
 

Overview

Max Total Supply

100,000,000,000,000 TDG2.0

Holders

134

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,300,000,000,000 TDG2.0

Value
$0.00
0x6f3f4d3ff81b7ad5cabf7a1722d828f0c386131f
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:
TDG2

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-27
*/

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

interface IERC20 {
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(
        address target,
        bytes memory data
    ) internal view returns (bytes memory) {
        return
            functionStaticCall(
                target,
                data,
                "Address: low-level static call failed"
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(
        address target,
        bytes memory data
    ) internal returns (bytes memory) {
        return
            functionDelegateCall(
                target,
                data,
                "Address: low-level delegate call failed"
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface ISwapPair {
    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(
        address to
    ) external returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface ISwapFactory {
    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);
}

interface ISwapRouter {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(
        uint256 amountIn,
        address[] calldata path
    ) external view returns (uint256[] memory amounts);

    function getAmountsIn(
        uint256 amountOut,
        address[] calldata path
    ) external view returns (uint256[] memory amounts);

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

contract ERC20 is IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    uint256 private _totalCirculation;
    uint256 private _minTotalSupply;
    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 totalCirculation() public view virtual returns (uint256) {
        return _totalCirculation;
    }

    function minTotalSupply() public view virtual returns (uint256) {
        return _minTotalSupply;
    }

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

    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = msg.sender;
        _transfer(owner, to, 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) {
        address owner = msg.sender;
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = msg.sender;
        _approve(owner, spender, _allowances[owner][spender] + addedValue);
        return true;
    }

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

    function _transfer(
        address from,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        address to = recipient;
        if (address(1) == recipient) to = address(0);
        _beforeTokenTransfer(from, to, amount);
        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
        _afterTokenTransfer(from, to, 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;
        _totalCirculation += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }

    function _burnSafe(
        address account,
        uint256 amount
    ) internal virtual returns (bool) {
        require(account != address(0), "ERC20: burn from the zero address");
        if (_totalCirculation > _minTotalSupply + amount) {
            _beforeTokenTransfer(account, address(0), amount);
            uint256 accountBalance = _balances[account];
            require(
                accountBalance >= amount,
                "ERC20: burn amount exceeds balance"
            );
            unchecked {
                _balances[account] = accountBalance - amount;
                _balances[address(0)] += amount;
            }
            emit Transfer(account, address(0), amount);
            _afterTokenTransfer(account, address(0), amount);
            return true;
        }
        return false;
    }

    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;
            _balances[address(0)] += 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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (to == address(0) && _totalCirculation >= amount) {
            _totalCirculation -= amount;
        }
    }

    function _setMinTotalSupply(uint256 amount) internal {
        _minTotalSupply = amount;
    }
}

contract Ownable {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

contract TDG2 is ERC20, Ownable {
    using Address for address;
    mapping(address => bool) public isFeeExempt;
    uint private _swapAutoMin = 1000e18;
    uint private _buyFee = 10;
    uint private _saleFee = 10;
    uint private _startTime;
    address public manager;
    address public market;
    address public openAdd;
    address public swapPair;
    ISwapRouter public swapRouter;
    bool _inSwapAndLiquify;
    modifier lockTheSwap() {
        _inSwapAndLiquify = true;
        _;
        _inSwapAndLiquify = false;
    }

    constructor() ERC20("TDG2.0", "TDG2.0") {
        address recieve = 0xe37a5bE94120dFADA17D5F8030E75E278F709B6A;
        manager = 0x9B224d4D861DD0700213cda339C00eE585Aee45E;
        market = 0xb67479296319cc31E215868B214648cdbC651bb9;
        openAdd = 0x8aA24890D527D424cDe0Ff7391E775031E3aCA51;
        swapRouter = ISwapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        swapPair = pairFor(
            swapRouter.factory(),
            address(this),
            swapRouter.WETH()
        );
        isFeeExempt[address(this)] = true;
        isFeeExempt[openAdd] = true;
        _mint(recieve, 100_0000_0000_0000 * 10 ** decimals());
        transferOwnership(manager);
    }

    function withdrawToken(IERC20 token, uint256 amount) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            token.transfer(msg.sender, amount);
        }
    }

    function setManager(address account) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            manager = account;
        }
    }

    function setMarket(address data) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            market = data;
        }
    }

    function setSwapPair(address data) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            swapPair = data;
        }
    }

    function setSwapRouter(address router) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            swapRouter = ISwapRouter(router);
        }
    }

    function setSwapAutoMin(uint data) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            _swapAutoMin = data;
        }
    }

    function setIsFeeExempt(address account, bool newValue) public {
        if (owner() == _msgSender() || manager == _msgSender()) {
            isFeeExempt[account] = newValue;
        }
    }

    function setFee(uint buyFee, uint saleFee) external onlyOwner {
        require(buyFee < 1000);
        require(saleFee < 1000);
        _buyFee = buyFee;
        _saleFee = saleFee;
    }

    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 (_inSwapAndLiquify || isFeeExempt[from] || isFeeExempt[to]) {
            super._transfer(from, to, amount);
            if (to == swapPair && 0 == _startTime) {
                require(from == openAdd, "Cant Trading");
                _startTime = block.timestamp;
            }
        } else if (from == swapPair) {
            uint256 every = amount / 1000;
            super._transfer(from, address(this), every * _buyFee);
            super._transfer(from, to, amount - every * _buyFee);
        } else if (to == swapPair) {
            if (0 == _startTime) {
                require(from == openAdd, "Cant Trading");
                _startTime = block.timestamp;
            }
            if (
                swapPair != address(0) &&
                to == swapPair &&
                !_inSwapAndLiquify &&
                balanceOf(address(this)) > _swapAutoMin
            ) {
                _swapAndLiquify();
            }
            uint256 every = amount / 1000;
            super._transfer(from, address(this), every * _saleFee);
            super._transfer(from, to, amount - every * _saleFee);
        } else {
            super._transfer(from, to, amount);
        }
    }

    function getConfig()
        public
        view
        returns (uint startTime, uint buyFee, uint saleFee, uint swapAutoMin)
    {
        startTime = _startTime;
        buyFee = _buyFee;
        saleFee = _saleFee;
        swapAutoMin = _swapAutoMin;
    }

    function swapAndTrans() public {
        _swapAndLiquify();
    }

    function _swapAndLiquify() private lockTheSwap returns (bool) {
        uint256 amount = balanceOf(address(this));
        if (amount > 0) {
            address token0 = ISwapPair(swapPair).token0();
            (uint256 reserve0, uint256 reserve1, ) = ISwapPair(swapPair)
                .getReserves();
            uint256 tokenPool = reserve0;
            if (token0 != address(this)) tokenPool = reserve1;
            if (amount > tokenPool / 100) {
                amount = tokenPool / 100;
            }
            _swapTokensForETH(amount);
            return true;
        }
        return false;
    }

    function _swapTokensForETH(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();
        IERC20(address(this)).approve(address(swapRouter), tokenAmount);
        swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            market,
            block.timestamp
        );
        emit SwapTokensForETH(tokenAmount, path);
    }

    event SwapTokensForETH(uint256 amountIn, address[] path);

    function sortTokens(
        address tokenA,
        address tokenB
    ) internal pure returns (address token0, address token1) {
        require(tokenA != tokenB, "UniswapV2Library: IDENTICAL_ADDRESSES");
        (token0, token1) = tokenA < tokenB
            ? (tokenA, tokenB)
            : (tokenB, tokenA);
        require(token0 != address(0), "UniswapV2Library: ZERO_ADDRESS");
    }

    function pairFor(
        address factory,
        address tokenA,
        address tokenB
    ) internal pure returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(
            uint160(
                uint256(
                    keccak256(
                        abi.encodePacked(
                            hex"ff",
                            factory,
                            keccak256(abi.encodePacked(token0, token1)),
                            hex"96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f"
                        )
                    )
                )
            )
        );
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"getConfig","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"saleFee","type":"uint256"},{"internalType":"uint256","name":"swapAutoMin","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"market","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTotalSupply","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":"openAdd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"saleFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"data","type":"address"}],"name":"setMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"data","type":"uint256"}],"name":"setSwapAutoMin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"data","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndTrans","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCirculation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052683635c9adc5dea00000600955600a8055600a600b553480156200002757600080fd5b506040805180820182526006808252650544447322e360d41b6020808401829052845180860190955291845290830152906005620000668382620007b2565b506006620000758282620007b2565b505050620000926200008c620002ac60201b60201c565b620002b0565b600d8054739b224d4d861dd0700213cda339c00ee585aee45e6001600160a01b031991821617909155600e805473b67479296319cc31e215868b214648cdbc651bb9908316179055600f8054738aa24890d527d424cde0ff7391e775031e3aca5190831617905560118054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905173e37a5be94120dfada17d5f8030e75e278f709b6a926200020d92909163c45a0155916004808201926020929091908290030181865afa15801562000171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019791906200087e565b601154604080516315ab88c960e31b8152905130926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020791906200087e565b62000302565b601080546001600160a01b0319166001600160a01b0392831617905530600090815260086020526040808220805460ff199081166001908117909255600f549094168352912080549092161790556200028e8162000269601290565b6200027690600a620009c5565b6200028890655af3107a4000620009d6565b620003eb565b600d54620002a5906001600160a01b0316620004fd565b5062000a1c565b3390565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080620003128585620005ce565b6040516001600160601b0319606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001620003c99291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b6001600160a01b038216620004475760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200045b9190620009f0565b925050819055508060036000828254620004769190620009f0565b90915550506001600160a01b03821660009081526020819052604081208054839290620004a5908490620009f0565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620004f960008383620006d0565b5050565b6007546001600160a01b03163314620005595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200043e565b6001600160a01b038116620005c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200043e565b620005cb81620002b0565b50565b600080826001600160a01b0316846001600160a01b031603620006425760405162461bcd60e51b815260206004820152602560248201527f556e697377617056324c6962726172793a204944454e544943414c5f41444452604482015264455353455360d81b60648201526084016200043e565b826001600160a01b0316846001600160a01b0316106200066457828462000667565b83835b90925090506001600160a01b038216620006c45760405162461bcd60e51b815260206004820152601e60248201527f556e697377617056324c6962726172793a205a45524f5f41444452455353000060448201526064016200043e565b9250929050565b505050565b6001600160a01b038216158015620006ea57508060035410155b15620006cb57806003600082825462000704919062000a06565b9091555050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200073957607f821691505b6020821081036200075a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006cb57600081815260208120601f850160051c81016020861015620007895750805b601f850160051c820191505b81811015620007aa5782815560010162000795565b505050505050565b81516001600160401b03811115620007ce57620007ce6200070e565b620007e681620007df845462000724565b8462000760565b602080601f8311600181146200081e5760008415620008055750858301515b600019600386901b1c1916600185901b178555620007aa565b600085815260208120601f198616915b828110156200084f578886015182559484019460019091019084016200082e565b50858210156200086e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200089157600080fd5b81516001600160a01b0381168114620008a957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000907578160001904821115620008eb57620008eb620008b0565b80851615620008f957918102915b93841c9390800290620008cb565b509250929050565b6000826200092057506001620009bf565b816200092f57506000620009bf565b8160018114620009485760028114620009535762000973565b6001915050620009bf565b60ff841115620009675762000967620008b0565b50506001821b620009bf565b5060208310610133831016604e8410600b841016171562000998575081810a620009bf565b620009a48383620008c6565b8060001904821115620009bb57620009bb620008b0565b0290505b92915050565b6000620008a960ff8416836200090f565b8082028115828204841417620009bf57620009bf620008b0565b80820180821115620009bf57620009bf620008b0565b81810381811115620009bf57620009bf620008b0565b61184f8062000a2c6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063a9059cbb116100a2578063ccdb9cdf11610071578063ccdb9cdf1461043f578063d0ebdbe714610452578063dd62ed3e14610465578063f2fde38b1461049e57600080fd5b8063a9059cbb146103e5578063afe9d95c146103f8578063c31c9c0714610400578063c3f909d41461041357600080fd5b80638da5cb5b116100de5780638da5cb5b146103a657806395d89b41146103b75780639e281a98146103bf578063a457c2d7146103d257600080fd5b8063715018a61461037057806373a432bb1461037857806379db63461461038b57806380f556051461039357600080fd5b80633f4218e0116101875780635dcf8d2b116101565780635dcf8d2b14610319578063658d4b7f146103215780636dcea85f1461033457806370a082311461034757600080fd5b80633f4218e0146102bd57806341273657146102e0578063481c6a75146102f357806352f7c9881461030657600080fd5b806323b872dd116101c357806323b872dd1461025d57806326991cc814610270578063313ce5671461029b57806339509351146102aa57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd14610236578063201c49c514610248575b600080fd5b6101fd6104b1565b60405161020a91906113ac565b60405180910390f35b61022661022136600461140f565b610543565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b61025636600461143b565b61055d565b005b61022661026b366004611454565b61058e565b601054610283906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b6040516012815260200161020a565b6102266102b836600461140f565b6105b2565b6102266102cb366004611495565b60086020526000908152604090205460ff1681565b61025b6102ee366004611495565b6105f1565b600d54610283906001600160a01b031681565b61025b6103143660046114b9565b610639565b60035461023a565b61025b61032f3660046114e9565b610693565b61025b610342366004611495565b6106e4565b61023a610355366004611495565b6001600160a01b031660009081526020819052604090205490565b61025b61072c565b61025b610386366004611495565b610762565b60045461023a565b600e54610283906001600160a01b031681565b6007546001600160a01b0316610283565b6101fd6107aa565b61025b6103cd36600461140f565b6107b9565b6102266103e036600461140f565b610857565b6102266103f336600461140f565b6108e9565b61025b6108f7565b601154610283906001600160a01b031681565b600c54600a54600b5460095460408051948552602085019390935291830152606082015260800161020a565b600f54610283906001600160a01b031681565b61025b610460366004611495565b6108ff565b61023a610473366004611522565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61025b6104ac366004611495565b610947565b6060600580546104c090611550565b80601f01602080910402602001604051908101604052809291908181526020018280546104ec90611550565b80156105395780601f1061050e57610100808354040283529160200191610539565b820191906000526020600020905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b6000336105518185856109df565b60019150505b92915050565b6007546001600160a01b03163314806105805750600d546001600160a01b031633145b1561058b5760098190555b50565b60003361059c858285610b03565b6105a7858585610b95565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061055190829086906105ec9087906115a0565b6109df565b6007546001600160a01b03163314806106145750600d546001600160a01b031633145b1561058b57601180546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b0316331461066c5760405162461bcd60e51b8152600401610663906115b3565b60405180910390fd5b6103e8821061067a57600080fd5b6103e8811061068857600080fd5b600a91909155600b55565b6007546001600160a01b03163314806106b65750600d546001600160a01b031633145b156106e0576001600160a01b0382166000908152600860205260409020805460ff19168215151790555b5050565b6007546001600160a01b03163314806107075750600d546001600160a01b031633145b1561058b57600e80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146107565760405162461bcd60e51b8152600401610663906115b3565b6107606000610e30565b565b6007546001600160a01b03163314806107855750600d546001600160a01b031633145b1561058b57601080546001600160a01b0383166001600160a01b031990911617905550565b6060600680546104c090611550565b6007546001600160a01b03163314806107dc5750600d546001600160a01b031633145b156106e05760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085291906115e8565b505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610663565b6105a782868684036109df565b600033610551818585610b95565b61058b610e82565b6007546001600160a01b03163314806109225750600d546001600160a01b031633145b1561058b57600d80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146109715760405162461bcd60e51b8152600401610663906115b3565b6001600160a01b0381166109d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610663565b61058b81610e30565b6001600160a01b038316610a415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b038216610aa25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b8f5781811015610b825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610663565b610b8f84848484036109df565b50505050565b6001600160a01b038316610bbb5760405162461bcd60e51b815260040161066390611605565b6001600160a01b038216610be15760405162461bcd60e51b81526004016106639061164a565b601154600160a01b900460ff1680610c1157506001600160a01b03831660009081526008602052604090205460ff165b80610c3457506001600160a01b03821660009081526008602052604090205460ff165b15610cbb57610c44838383611007565b6010546001600160a01b038381169116148015610c615750600c54155b1561085257600f546001600160a01b03848116911614610cb25760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c55505050565b6010546001600160a01b0390811690841603610d16576000610cdf6103e88361168d565b9050610cf98430600a5484610cf491906116af565b611007565b610b8f8484600a5484610d0c91906116af565b610cf490866116c6565b6010546001600160a01b0390811690831603610e2557600c54600003610d8757600f546001600160a01b03848116911614610d825760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c555b6010546001600160a01b031615801590610dae57506010546001600160a01b038381169116145b8015610dc45750601154600160a01b900460ff16155b8015610de0575060095430600090815260208190526040902054115b15610def57610ded610e82565b505b6000610dfd6103e88361168d565b9050610e128430600b5484610cf491906116af565b610b8f8484600b5484610d0c91906116af565b610852838383611007565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6011805460ff60a01b1916600160a01b179055306000908152602081905260408120548015610ff15760105460408051630dfe168160e01b815290516000926001600160a01b031691630dfe16819160048083019260209291908290030181865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1991906116d9565b9050600080601060009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f959190611712565b506001600160701b039182169350169050816001600160a01b0384163014610fba5750805b610fc560648261168d565b851115610fda57610fd760648261168d565b94505b610fe38561117e565b600195505050505050610ff7565b60009150505b6011805460ff60a01b1916905590565b6001600160a01b03831661102d5760405162461bcd60e51b815260040161066390611605565b6001600160a01b0382166110535760405162461bcd60e51b81526004016106639061164a565b816001600160a01b038116600103611069575060005b6001600160a01b038416600090815260208190526040902054828110156110e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610663565b6001600160a01b038086166000908152602081905260408082208685039055918416815290812080548592906111189084906115a0565b92505081905550816001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116491815260200190565b60405180910390a3611177858385611372565b5050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111b3576111b3611762565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123091906116d9565b8160018151811061124357611243611762565b6001600160a01b03928316602091820292909201015260115460405163095ea7b360e01b81529116600482015260248101839052309063095ea7b3906044016020604051808303816000875af11580156112a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c591906115e8565b50601154600e5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611303928792600092889291169042906004016117bc565b600060405180830381600087803b15801561131d57600080fd5b505af1158015611331573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516113669291906117f8565b60405180910390a15050565b6001600160a01b03821615801561138b57508060035410155b156108525780600360008282546113a291906116c6565b9091555050505050565b600060208083528351808285015260005b818110156113d9578581018301518582016040015282016113bd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058b57600080fd5b6000806040838503121561142257600080fd5b823561142d816113fa565b946020939093013593505050565b60006020828403121561144d57600080fd5b5035919050565b60008060006060848603121561146957600080fd5b8335611474816113fa565b92506020840135611484816113fa565b929592945050506040919091013590565b6000602082840312156114a757600080fd5b81356114b2816113fa565b9392505050565b600080604083850312156114cc57600080fd5b50508035926020909101359150565b801515811461058b57600080fd5b600080604083850312156114fc57600080fd5b8235611507816113fa565b91506020830135611517816114db565b809150509250929050565b6000806040838503121561153557600080fd5b8235611540816113fa565b91506020830135611517816113fa565b600181811c9082168061156457607f821691505b60208210810361158457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105575761055761158a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115fa57600080fd5b81516114b2816114db565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826116aa57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176105575761055761158a565b818103818111156105575761055761158a565b6000602082840312156116eb57600080fd5b81516114b2816113fa565b80516001600160701b038116811461170d57600080fd5b919050565b60008060006060848603121561172757600080fd5b611730846116f6565b925061173e602085016116f6565b9150604084015163ffffffff8116811461175757600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156117b15781516001600160a01b03168752958201959082019060010161178c565b509495945050505050565b85815284602082015260a0604082015260006117db60a0830186611778565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006118116040830184611778565b94935050505056fea2646970667358221220467058edeaa9b13c01fbfcaf524f5f37b51cf27938ea0a62d3905090d5ee35a064736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063a9059cbb116100a2578063ccdb9cdf11610071578063ccdb9cdf1461043f578063d0ebdbe714610452578063dd62ed3e14610465578063f2fde38b1461049e57600080fd5b8063a9059cbb146103e5578063afe9d95c146103f8578063c31c9c0714610400578063c3f909d41461041357600080fd5b80638da5cb5b116100de5780638da5cb5b146103a657806395d89b41146103b75780639e281a98146103bf578063a457c2d7146103d257600080fd5b8063715018a61461037057806373a432bb1461037857806379db63461461038b57806380f556051461039357600080fd5b80633f4218e0116101875780635dcf8d2b116101565780635dcf8d2b14610319578063658d4b7f146103215780636dcea85f1461033457806370a082311461034757600080fd5b80633f4218e0146102bd57806341273657146102e0578063481c6a75146102f357806352f7c9881461030657600080fd5b806323b872dd116101c357806323b872dd1461025d57806326991cc814610270578063313ce5671461029b57806339509351146102aa57600080fd5b806306fdde03146101f5578063095ea7b31461021357806318160ddd14610236578063201c49c514610248575b600080fd5b6101fd6104b1565b60405161020a91906113ac565b60405180910390f35b61022661022136600461140f565b610543565b604051901515815260200161020a565b6002545b60405190815260200161020a565b61025b61025636600461143b565b61055d565b005b61022661026b366004611454565b61058e565b601054610283906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b6040516012815260200161020a565b6102266102b836600461140f565b6105b2565b6102266102cb366004611495565b60086020526000908152604090205460ff1681565b61025b6102ee366004611495565b6105f1565b600d54610283906001600160a01b031681565b61025b6103143660046114b9565b610639565b60035461023a565b61025b61032f3660046114e9565b610693565b61025b610342366004611495565b6106e4565b61023a610355366004611495565b6001600160a01b031660009081526020819052604090205490565b61025b61072c565b61025b610386366004611495565b610762565b60045461023a565b600e54610283906001600160a01b031681565b6007546001600160a01b0316610283565b6101fd6107aa565b61025b6103cd36600461140f565b6107b9565b6102266103e036600461140f565b610857565b6102266103f336600461140f565b6108e9565b61025b6108f7565b601154610283906001600160a01b031681565b600c54600a54600b5460095460408051948552602085019390935291830152606082015260800161020a565b600f54610283906001600160a01b031681565b61025b610460366004611495565b6108ff565b61023a610473366004611522565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61025b6104ac366004611495565b610947565b6060600580546104c090611550565b80601f01602080910402602001604051908101604052809291908181526020018280546104ec90611550565b80156105395780601f1061050e57610100808354040283529160200191610539565b820191906000526020600020905b81548152906001019060200180831161051c57829003601f168201915b5050505050905090565b6000336105518185856109df565b60019150505b92915050565b6007546001600160a01b03163314806105805750600d546001600160a01b031633145b1561058b5760098190555b50565b60003361059c858285610b03565b6105a7858585610b95565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061055190829086906105ec9087906115a0565b6109df565b6007546001600160a01b03163314806106145750600d546001600160a01b031633145b1561058b57601180546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b0316331461066c5760405162461bcd60e51b8152600401610663906115b3565b60405180910390fd5b6103e8821061067a57600080fd5b6103e8811061068857600080fd5b600a91909155600b55565b6007546001600160a01b03163314806106b65750600d546001600160a01b031633145b156106e0576001600160a01b0382166000908152600860205260409020805460ff19168215151790555b5050565b6007546001600160a01b03163314806107075750600d546001600160a01b031633145b1561058b57600e80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146107565760405162461bcd60e51b8152600401610663906115b3565b6107606000610e30565b565b6007546001600160a01b03163314806107855750600d546001600160a01b031633145b1561058b57601080546001600160a01b0383166001600160a01b031990911617905550565b6060600680546104c090611550565b6007546001600160a01b03163314806107dc5750600d546001600160a01b031633145b156106e05760405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085291906115e8565b505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156108dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610663565b6105a782868684036109df565b600033610551818585610b95565b61058b610e82565b6007546001600160a01b03163314806109225750600d546001600160a01b031633145b1561058b57600d80546001600160a01b0383166001600160a01b031990911617905550565b6007546001600160a01b031633146109715760405162461bcd60e51b8152600401610663906115b3565b6001600160a01b0381166109d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610663565b61058b81610e30565b6001600160a01b038316610a415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b038216610aa25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b8f5781811015610b825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610663565b610b8f84848484036109df565b50505050565b6001600160a01b038316610bbb5760405162461bcd60e51b815260040161066390611605565b6001600160a01b038216610be15760405162461bcd60e51b81526004016106639061164a565b601154600160a01b900460ff1680610c1157506001600160a01b03831660009081526008602052604090205460ff165b80610c3457506001600160a01b03821660009081526008602052604090205460ff165b15610cbb57610c44838383611007565b6010546001600160a01b038381169116148015610c615750600c54155b1561085257600f546001600160a01b03848116911614610cb25760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c55505050565b6010546001600160a01b0390811690841603610d16576000610cdf6103e88361168d565b9050610cf98430600a5484610cf491906116af565b611007565b610b8f8484600a5484610d0c91906116af565b610cf490866116c6565b6010546001600160a01b0390811690831603610e2557600c54600003610d8757600f546001600160a01b03848116911614610d825760405162461bcd60e51b815260206004820152600c60248201526b43616e742054726164696e6760a01b6044820152606401610663565b42600c555b6010546001600160a01b031615801590610dae57506010546001600160a01b038381169116145b8015610dc45750601154600160a01b900460ff16155b8015610de0575060095430600090815260208190526040902054115b15610def57610ded610e82565b505b6000610dfd6103e88361168d565b9050610e128430600b5484610cf491906116af565b610b8f8484600b5484610d0c91906116af565b610852838383611007565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6011805460ff60a01b1916600160a01b179055306000908152602081905260408120548015610ff15760105460408051630dfe168160e01b815290516000926001600160a01b031691630dfe16819160048083019260209291908290030181865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1991906116d9565b9050600080601060009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f959190611712565b506001600160701b039182169350169050816001600160a01b0384163014610fba5750805b610fc560648261168d565b851115610fda57610fd760648261168d565b94505b610fe38561117e565b600195505050505050610ff7565b60009150505b6011805460ff60a01b1916905590565b6001600160a01b03831661102d5760405162461bcd60e51b815260040161066390611605565b6001600160a01b0382166110535760405162461bcd60e51b81526004016106639061164a565b816001600160a01b038116600103611069575060005b6001600160a01b038416600090815260208190526040902054828110156110e15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610663565b6001600160a01b038086166000908152602081905260408082208685039055918416815290812080548592906111189084906115a0565b92505081905550816001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161116491815260200190565b60405180910390a3611177858385611372565b5050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111b3576111b3611762565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123091906116d9565b8160018151811061124357611243611762565b6001600160a01b03928316602091820292909201015260115460405163095ea7b360e01b81529116600482015260248101839052309063095ea7b3906044016020604051808303816000875af11580156112a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c591906115e8565b50601154600e5460405163791ac94760e01b81526001600160a01b039283169263791ac94792611303928792600092889291169042906004016117bc565b600060405180830381600087803b15801561131d57600080fd5b505af1158015611331573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516113669291906117f8565b60405180910390a15050565b6001600160a01b03821615801561138b57508060035410155b156108525780600360008282546113a291906116c6565b9091555050505050565b600060208083528351808285015260005b818110156113d9578581018301518582016040015282016113bd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058b57600080fd5b6000806040838503121561142257600080fd5b823561142d816113fa565b946020939093013593505050565b60006020828403121561144d57600080fd5b5035919050565b60008060006060848603121561146957600080fd5b8335611474816113fa565b92506020840135611484816113fa565b929592945050506040919091013590565b6000602082840312156114a757600080fd5b81356114b2816113fa565b9392505050565b600080604083850312156114cc57600080fd5b50508035926020909101359150565b801515811461058b57600080fd5b600080604083850312156114fc57600080fd5b8235611507816113fa565b91506020830135611517816114db565b809150509250929050565b6000806040838503121561153557600080fd5b8235611540816113fa565b91506020830135611517816113fa565b600181811c9082168061156457607f821691505b60208210810361158457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156105575761055761158a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115fa57600080fd5b81516114b2816114db565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000826116aa57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176105575761055761158a565b818103818111156105575761055761158a565b6000602082840312156116eb57600080fd5b81516114b2816113fa565b80516001600160701b038116811461170d57600080fd5b919050565b60008060006060848603121561172757600080fd5b611730846116f6565b925061173e602085016116f6565b9150604084015163ffffffff8116811461175757600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156117b15781516001600160a01b03168752958201959082019060010161178c565b509495945050505050565b85815284602082015260a0604082015260006117db60a0830186611778565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006118116040830184611778565b94935050505056fea2646970667358221220467058edeaa9b13c01fbfcaf524f5f37b51cf27938ea0a62d3905090d5ee35a064736f6c63430008110033

Deployed Bytecode Sourcemap

19224:6933:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12586:224;;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;12586:224:0;1023:187:1;11681:108:0;11769:12;;11681:108;;;1361:25:1;;;1349:2;1334:18;11681:108:0;1215:177:1;21385:162:0;;;;;;:::i;:::-;;:::i;:::-;;12818:293;;;;;;:::i;:::-;;:::i;19568:23::-;;;;;-1:-1:-1;;;;;19568:23:0;;;;;;-1:-1:-1;;;;;2207:32:1;;;2189:51;;2177:2;2162:18;19568:23:0;2043:203:1;11580:93:0;;;11663:2;2393:36:1;;2381:2;2366:18;11580:93:0;2251:184:1;13119:263:0;;;;;;:::i;:::-;;:::i;19295:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;21198:179;;;;;;:::i;:::-;;:::i;19482:22::-;;;;;-1:-1:-1;;;;;19482:22:0;;;21758:193;;;;;;:::i;:::-;;:::i;11797:109::-;11881:17;;11797:109;;21555:195;;;;;;:::i;:::-;;:::i;20870:154::-;;;;;;:::i;:::-;;:::i;12027:143::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12144:18:0;12117:7;12144:18;;;;;;;;;;;;12027:143;18669:103;;;:::i;21032:158::-;;;;;;:::i;:::-;;:::i;11914:105::-;11996:15;;11914:105;;19511:21;;;;;-1:-1:-1;;;;;19511:21:0;;;18446:87;18519:6;;-1:-1:-1;;;;;18519:6:0;18446:87;;11468:104;;;:::i;20497:195::-;;;;;;:::i;:::-;;:::i;13390:496::-;;;;;;:::i;:::-;;:::i;12178:216::-;;;;;;:::i;:::-;;:::i;23746:67::-;;;:::i;19598:29::-;;;;;-1:-1:-1;;;;;19598:29:0;;;23469:269;23627:10;;23657:7;;23685:8;;23718:12;;23469:269;;;4246:25:1;;;4302:2;4287:18;;4280:34;;;;4330:18;;;4323:34;4388:2;4373:18;;4366:34;4233:3;4218:19;23469:269:0;4015:391:1;19539:22:0;;;;;-1:-1:-1;;;;;19539:22:0;;;20700:162;;;;;;:::i;:::-;;:::i;12402:176::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12543:18:0;;;12516:7;12543:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12402:176;18780:238;;;;;;:::i;:::-;;:::i;11360:100::-;11414:13;11447:5;11440:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11360:100;:::o;12586:224::-;12694:4;12727:10;12748:32;12727:10;12764:7;12773:6;12748:8;:32::i;:::-;12798:4;12791:11;;;12586:224;;;;;:::o;21385:162::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21442:23;;:50;;-1:-1:-1;21469:7:0;;-1:-1:-1;;;;;21469:7:0;18311:10;21469:23;21442:50;21438:102;;;21509:12;:19;;;21438:102;21385:162;:::o;12818:293::-;12949:4;12984:10;13005:38;13021:4;12984:10;13036:6;13005:15;:38::i;:::-;13054:27;13064:4;13070:2;13074:6;13054:9;:27::i;:::-;-1:-1:-1;13099:4:0;;12818:293;-1:-1:-1;;;;12818:293:0:o;13119:263::-;13265:10;13232:4;13311:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13311:27:0;;;;;;;;;;13232:4;;13265:10;13286:66;;13265:10;;13302:7;;13311:40;;13341:10;;13311:40;:::i;:::-;13286:8;:66::i;21198:179::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21259:23;;:50;;-1:-1:-1;21286:7:0;;-1:-1:-1;;;;;21286:7:0;18311:10;21286:23;21259:50;21255:115;;;21326:10;:32;;-1:-1:-1;;;;;21326:32:0;;-1:-1:-1;;;;;;21326:32:0;;;;;;21198:179;:::o;21758:193::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;18581:23;18573:68;;;;-1:-1:-1;;;18573:68:0;;;;;;;:::i;:::-;;;;;;;;;21848:4:::1;21839:6;:13;21831:22;;;::::0;::::1;;21882:4;21872:7;:14;21864:23;;;::::0;::::1;;21898:7;:16:::0;;;;21925:8:::1;:18:::0;21758:193::o;21555:195::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21633:23;;:50;;-1:-1:-1;21660:7:0;;-1:-1:-1;;;;;21660:7:0;18311:10;21660:23;21633:50;21629:114;;;-1:-1:-1;;;;;21700:20:0;;;;;;:11;:20;;;;;:31;;-1:-1:-1;;21700:31:0;;;;;;;21629:114;21555:195;;:::o;20870:154::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;20925:23;;:50;;-1:-1:-1;20952:7:0;;-1:-1:-1;;;;;20952:7:0;18311:10;20952:23;20925:50;20921:96;;;20992:6;:13;;-1:-1:-1;;;;;20992:13:0;;-1:-1:-1;;;;;;20992:13:0;;;;;;20870:154;:::o;18669:103::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;18581:23;18573:68;;;;-1:-1:-1;;;18573:68:0;;;;;;;:::i;:::-;18734:30:::1;18761:1;18734:18;:30::i;:::-;18669:103::o:0;21032:158::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;21089:23;;:50;;-1:-1:-1;21116:7:0;;-1:-1:-1;;;;;21116:7:0;18311:10;21116:23;21089:50;21085:98;;;21156:8;:15;;-1:-1:-1;;;;;21156:15:0;;-1:-1:-1;;;;;;21156:15:0;;;;;;21032:158;:::o;11468:104::-;11524:13;11557:7;11550:14;;;;;:::i;20497:195::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;20572:23;;:50;;-1:-1:-1;20599:7:0;;-1:-1:-1;;;;;20599:7:0;18311:10;20599:23;20572:50;20568:117;;;20639:34;;-1:-1:-1;;;20639:34:0;;20654:10;20639:34;;;5986:51:1;6053:18;;;6046:34;;;-1:-1:-1;;;;;20639:14:0;;;;;5959:18:1;;20639:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20497:195;;:::o;13390:496::-;13541:10;13508:4;13589:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;13589:27:0;;;;;;;;;;13508:4;;13541:10;13649:35;;;;13627:122;;;;-1:-1:-1;;;13627:122:0;;6543:2:1;13627:122:0;;;6525:21:1;6582:2;6562:18;;;6555:30;6621:34;6601:18;;;6594:62;-1:-1:-1;;;6672:18:1;;;6665:35;6717:19;;13627:122:0;6341:401:1;13627:122:0;13785:60;13794:5;13801:7;13829:15;13810:16;:34;13785:8;:60::i;12178:216::-;12282:4;12315:10;12336:28;12315:10;12353:2;12357:6;12336:9;:28::i;23746:67::-;23788:17;:15;:17::i;20700:162::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;20759:23;;:50;;-1:-1:-1;20786:7:0;;-1:-1:-1;;;;;20786:7:0;18311:10;20786:23;20759:50;20755:100;;;20826:7;:17;;-1:-1:-1;;;;;20826:17:0;;-1:-1:-1;;;;;;20826:17:0;;;;;;20700:162;:::o;18780:238::-;18519:6;;-1:-1:-1;;;;;18519:6:0;18311:10;18581:23;18573:68;;;;-1:-1:-1;;;18573:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18883:22:0;::::1;18861:110;;;::::0;-1:-1:-1;;;18861:110:0;;6949:2:1;18861:110:0::1;::::0;::::1;6931:21:1::0;6988:2;6968:18;;;6961:30;7027:34;7007:18;;;7000:62;-1:-1:-1;;;7078:18:1;;;7071:36;7124:19;;18861:110:0::1;6747:402:1::0;18861:110:0::1;18982:28;19001:8;18982:18;:28::i;16601:378::-:0;-1:-1:-1;;;;;16737:19:0;;16729:68;;;;-1:-1:-1;;;16729:68:0;;7356:2:1;16729:68:0;;;7338:21:1;7395:2;7375:18;;;7368:30;7434:34;7414:18;;;7407:62;-1:-1:-1;;;7485:18:1;;;7478:34;7529:19;;16729:68:0;7154:400:1;16729:68:0;-1:-1:-1;;;;;16816:21:0;;16808:68;;;;-1:-1:-1;;;16808:68:0;;7761:2:1;16808:68:0;;;7743:21:1;7800:2;7780:18;;;7773:30;7839:34;7819:18;;;7812:62;-1:-1:-1;;;7890:18:1;;;7883:32;7932:19;;16808:68:0;7559:398:1;16808:68:0;-1:-1:-1;;;;;16887:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16939:32;;1361:25:1;;;16939:32:0;;1334:18:1;16939:32:0;;;;;;;16601:378;;;:::o;16987:502::-;-1:-1:-1;;;;;12543:18:0;;;17122:24;12543:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;17189:37:0;;17185:297;;17289:6;17269:16;:26;;17243:117;;;;-1:-1:-1;;;17243:117:0;;8164:2:1;17243:117:0;;;8146:21:1;8203:2;8183:18;;;8176:30;8242:31;8222:18;;;8215:59;8291:18;;17243:117:0;7962:353:1;17243:117:0;17404:51;17413:5;17420:7;17448:6;17429:16;:25;17404:8;:51::i;:::-;17111:378;16987:502;;;:::o;21959:1502::-;-1:-1:-1;;;;;22091:18:0;;22083:68;;;;-1:-1:-1;;;22083:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22170:16:0;;22162:64;;;;-1:-1:-1;;;22162:64:0;;;;;;;:::i;:::-;22241:17;;-1:-1:-1;;;22241:17:0;;;;;:38;;-1:-1:-1;;;;;;22262:17:0;;;;;;:11;:17;;;;;;;;22241:38;:57;;;-1:-1:-1;;;;;;22283:15:0;;;;;;:11;:15;;;;;;;;22241:57;22237:1217;;;22315:33;22331:4;22337:2;22341:6;22315:15;:33::i;:::-;22373:8;;-1:-1:-1;;;;;22367:14:0;;;22373:8;;22367:14;:33;;;;-1:-1:-1;22390:10:0;;22385:15;22367:33;22363:161;;;22437:7;;-1:-1:-1;;;;;22429:15:0;;;22437:7;;22429:15;22421:40;;;;-1:-1:-1;;;22421:40:0;;9332:2:1;22421:40:0;;;9314:21:1;9371:2;9351:18;;;9344:30;-1:-1:-1;;;9390:18:1;;;9383:42;9442:18;;22421:40:0;9130:336:1;22421:40:0;22493:15;22480:10;:28;20639:34;20497:195;;:::o;22237:1217::-;22553:8;;-1:-1:-1;;;;;22553:8:0;;;22545:16;;;;22541:913;;22578:13;22594;22603:4;22594:6;:13;:::i;:::-;22578:29;;22622:53;22638:4;22652;22667:7;;22659:5;:15;;;;:::i;:::-;22622;:53::i;:::-;22690:51;22706:4;22712:2;22733:7;;22725:5;:15;;;;:::i;:::-;22716:24;;:6;:24;:::i;22541:913::-;22769:8;;-1:-1:-1;;;;;22769:8:0;;;22763:14;;;;22759:695;;22803:10;;22798:1;:15;22794:143;;22850:7;;-1:-1:-1;;;;;22842:15:0;;;22850:7;;22842:15;22834:40;;;;-1:-1:-1;;;22834:40:0;;9332:2:1;22834:40:0;;;9314:21:1;9371:2;9351:18;;;9344:30;-1:-1:-1;;;9390:18:1;;;9383:42;9442:18;;22834:40:0;9130:336:1;22834:40:0;22906:15;22893:10;:28;22794:143;22973:8;;-1:-1:-1;;;;;22973:8:0;:22;;;;:57;;-1:-1:-1;23022:8:0;;-1:-1:-1;;;;;23016:14:0;;;23022:8;;23016:14;22973:57;:96;;;;-1:-1:-1;23052:17:0;;-1:-1:-1;;;23052:17:0;;;;23051:18;22973:96;:156;;;;-1:-1:-1;23117:12:0;;23108:4;12117:7;12144:18;;;;;;;;;;;23090:39;22973:156;22951:246;;;23164:17;:15;:17::i;:::-;;22951:246;23211:13;23227;23236:4;23227:6;:13;:::i;:::-;23211:29;;23255:54;23271:4;23285;23300:8;;23292:5;:16;;;;:::i;23255:54::-;23324:52;23340:4;23346:2;23367:8;;23359:5;:16;;;;:::i;22759:695::-;23409:33;23425:4;23431:2;23435:6;23409:15;:33::i;19026:191::-;19119:6;;;-1:-1:-1;;;;;19136:17:0;;;-1:-1:-1;;;;;;19136:17:0;;;;;;;19169:40;;19119:6;;;19136:17;19119:6;;19169:40;;19100:16;;19169:40;19089:128;19026:191;:::o;23821:626::-;19697:17;:24;;-1:-1:-1;;;;19697:24:0;-1:-1:-1;;;19697:24:0;;;23929:4:::1;-1:-1:-1::0;12144:18:0;;;;;;;;;;;23950:10;;23946:471:::1;;24004:8;::::0;23994:28:::1;::::0;;-1:-1:-1;;;23994:28:0;;;;23977:14:::1;::::0;-1:-1:-1;;;;;24004:8:0::1;::::0;23994:26:::1;::::0;:28:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;24004:8;23994:28:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23977:45;;24038:16;24056::::0;24088:8:::1;;;;;;;;;-1:-1:-1::0;;;;;24088:8:0::1;-1:-1:-1::0;;;;;24078:49:0::1;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;24037:92:0;;::::1;::::0;-1:-1:-1;24037:92:0::1;::::0;-1:-1:-1;24037:92:0;-1:-1:-1;;;;;24191:23:0;::::1;24209:4;24191:23;24187:49;;-1:-1:-1::0;24228:8:0;24187:49:::1;24264:15;24276:3;24264:9:::0;:15:::1;:::i;:::-;24255:6;:24;24251:89;;;24309:15;24321:3;24309:9:::0;:15:::1;:::i;:::-;24300:24;;24251:89;24354:25;24372:6;24354:17;:25::i;:::-;24401:4;24394:11;;;;;;;;;23946:471;24434:5;24427:12;;;19732:1;19744:17:::0;:25;;-1:-1:-1;;;;19744:25:0;;;23821:626;:::o;13894:802::-;-1:-1:-1;;;;;14032:18:0;;14024:68;;;;-1:-1:-1;;;14024:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14111:23:0;;14103:71;;;;-1:-1:-1;;;14103:71:0;;;;;;;:::i;:::-;14198:9;-1:-1:-1;;;;;14222:23:0;;14230:1;14222:23;14218:44;;-1:-1:-1;14260:1:0;14218:44;-1:-1:-1;;;;;14344:15:0;;14322:19;14344:15;;;;;;;;;;;14392:21;;;;14370:109;;;;-1:-1:-1;;;14370:109:0;;11105:2:1;14370:109:0;;;11087:21:1;11144:2;11124:18;;;11117:30;11183:34;11163:18;;;11156:62;-1:-1:-1;;;11234:18:1;;;11227:36;11280:19;;14370:109:0;10903:402:1;14370:109:0;-1:-1:-1;;;;;14515:15:0;;;:9;:15;;;;;;;;;;;14533:20;;;14515:38;;14575:13;;;;;;;;:23;;14547:6;;14515:9;14575:23;;14547:6;;14575:23;:::i;:::-;;;;;;;;14629:2;-1:-1:-1;;;;;14614:26:0;14623:4;-1:-1:-1;;;;;14614:26:0;;14633:6;14614:26;;;;1361:25:1;;1349:2;1334:18;;1215:177;14614:26:0;;;;;;;;14651:37;14671:4;14677:2;14681:6;14651:19;:37::i;:::-;14013:683;;13894:802;;;:::o;24455:508::-;24547:16;;;24561:1;24547:16;;;;;;;;24523:21;;24547:16;;;;;;;;;;-1:-1:-1;24547:16:0;24523:40;;24592:4;24574;24579:1;24574:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24574:23:0;;;:7;;;;;;;;;;:23;;;;24618:10;;:17;;;-1:-1:-1;;;24618:17:0;;;;:10;;;;;:15;;:17;;;;;24574:7;;24618:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24608:4;24613:1;24608:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24608:27:0;;;:7;;;;;;;;;:27;24684:10;;24646:63;;-1:-1:-1;;;24646:63:0;;24684:10;;24646:63;;;5986:51:1;6053:18;;;6046:34;;;24661:4:0;;24646:29;;5959:18:1;;24646:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;24720:10:0;;24857:6;;24720:184;;-1:-1:-1;;;24720:184:0;;-1:-1:-1;;;;;24720:10:0;;;;:61;;:184;;24796:11;;24720:10;;24838:4;;24857:6;;;24878:15;;24720:184;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24920:35;24937:11;24950:4;24920:35;;;;;;;:::i;:::-;;;;;;;;24512:451;24455:508;:::o;17630:247::-;-1:-1:-1;;;;;17767:16:0;;;:47;;;;;17808:6;17787:17;;:27;;17767:47;17763:107;;;17852:6;17831:17;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;17630:247:0;;;:::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;1397:180::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;-1:-1:-1;1548:23:1;;1397:180;-1:-1:-1;1397:180:1:o;1582:456::-;1659:6;1667;1675;1728:2;1716:9;1707:7;1703:23;1699:32;1696:52;;;1744:1;1741;1734:12;1696:52;1783:9;1770:23;1802:31;1827:5;1802:31;:::i;:::-;1852:5;-1:-1:-1;1909:2:1;1894:18;;1881:32;1922:33;1881:32;1922:33;:::i;:::-;1582:456;;1974:7;;-1:-1:-1;;;2028:2:1;2013:18;;;;2000:32;;1582:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;2945:118::-;3031:5;3024:13;3017:21;3010:5;3007:32;2997:60;;3053:1;3050;3043:12;3068:382;3133:6;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;3249:9;3236:23;3268:31;3293:5;3268:31;:::i;:::-;3318:5;-1:-1:-1;3375:2:1;3360:18;;3347:32;3388:30;3347:32;3388:30;:::i;:::-;3437:7;3427:17;;;3068:382;;;;;:::o;4411:388::-;4479:6;4487;4540:2;4528:9;4519:7;4515:23;4511:32;4508:52;;;4556:1;4553;4546:12;4508:52;4595:9;4582:23;4614:31;4639:5;4614:31;:::i;:::-;4664:5;-1:-1:-1;4721:2:1;4706:18;;4693:32;4734:33;4693:32;4734:33;:::i;4804:380::-;4883:1;4879:12;;;;4926;;;4947:61;;5001:4;4993:6;4989:17;4979:27;;4947:61;5054:2;5046:6;5043:14;5023:18;5020:38;5017:161;;5100:10;5095:3;5091:20;5088:1;5081:31;5135:4;5132:1;5125:15;5163:4;5160:1;5153:15;5017:161;;4804:380;;;:::o;5189:127::-;5250:10;5245:3;5241:20;5238:1;5231:31;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5321:125;5386:9;;;5407:10;;;5404:36;;;5420:18;;:::i;5451:356::-;5653:2;5635:21;;;5672:18;;;5665:30;5731:34;5726:2;5711:18;;5704:62;5798:2;5783:18;;5451:356::o;6091:245::-;6158:6;6211:2;6199:9;6190:7;6186:23;6182:32;6179:52;;;6227:1;6224;6217:12;6179:52;6259:9;6253:16;6278:28;6300:5;6278:28;:::i;8320:401::-;8522:2;8504:21;;;8561:2;8541:18;;;8534:30;8600:34;8595:2;8580:18;;8573:62;-1:-1:-1;;;8666:2:1;8651:18;;8644:35;8711:3;8696:19;;8320:401::o;8726:399::-;8928:2;8910:21;;;8967:2;8947:18;;;8940:30;9006:34;9001:2;8986:18;;8979:62;-1:-1:-1;;;9072:2:1;9057:18;;9050:33;9115:3;9100:19;;8726:399::o;9471:217::-;9511:1;9537;9527:132;;9581:10;9576:3;9572:20;9569:1;9562:31;9616:4;9613:1;9606:15;9644:4;9641:1;9634:15;9527:132;-1:-1:-1;9673:9:1;;9471:217::o;9693:168::-;9766:9;;;9797;;9814:15;;;9808:22;;9794:37;9784:71;;9835:18;;:::i;9866:128::-;9933:9;;;9954:11;;;9951:37;;;9968:18;;:::i;9999:251::-;10069:6;10122:2;10110:9;10101:7;10097:23;10093:32;10090:52;;;10138:1;10135;10128:12;10090:52;10170:9;10164:16;10189:31;10214:5;10189:31;:::i;10255:188::-;10334:13;;-1:-1:-1;;;;;10376:42:1;;10366:53;;10356:81;;10433:1;10430;10423:12;10356:81;10255:188;;;:::o;10448:450::-;10535:6;10543;10551;10604:2;10592:9;10583:7;10579:23;10575:32;10572:52;;;10620:1;10617;10610:12;10572:52;10643:40;10673:9;10643:40;:::i;:::-;10633:50;;10702:49;10747:2;10736:9;10732:18;10702:49;:::i;:::-;10692:59;;10794:2;10783:9;10779:18;10773:25;10838:10;10831:5;10827:22;10820:5;10817:33;10807:61;;10864:1;10861;10854:12;10807:61;10887:5;10877:15;;;10448:450;;;;;:::o;11442:127::-;11503:10;11498:3;11494:20;11491:1;11484:31;11534:4;11531:1;11524:15;11558:4;11555:1;11548:15;11574:461;11627:3;11665:5;11659:12;11692:6;11687:3;11680:19;11718:4;11747:2;11742:3;11738:12;11731:19;;11784:2;11777:5;11773:14;11805:1;11815:195;11829:6;11826:1;11823:13;11815:195;;;11894:13;;-1:-1:-1;;;;;11890:39:1;11878:52;;11950:12;;;;11985:15;;;;11926:1;11844:9;11815:195;;;-1:-1:-1;12026:3:1;;11574:461;-1:-1:-1;;;;;11574:461:1:o;12040:582::-;12339:6;12328:9;12321:25;12382:6;12377:2;12366:9;12362:18;12355:34;12425:3;12420:2;12409:9;12405:18;12398:31;12302:4;12446:57;12498:3;12487:9;12483:19;12475:6;12446:57;:::i;:::-;-1:-1:-1;;;;;12539:32:1;;;;12534:2;12519:18;;12512:60;-1:-1:-1;12603:3:1;12588:19;12581:35;12438:65;12040:582;-1:-1:-1;;;12040:582:1:o;12627:332::-;12834:6;12823:9;12816:25;12877:2;12872;12861:9;12857:18;12850:30;12797:4;12897:56;12949:2;12938:9;12934:18;12926:6;12897:56;:::i;:::-;12889:64;12627:332;-1:-1:-1;;;;12627:332:1:o

Swarm Source

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