ETH Price: $2,465.75 (-1.72%)

Token

SAB Coin (SAB)
 

Overview

Max Total Supply

3,220,000,000,000 SAB

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
bilibiligame.eth
Balance
1,014,604,075.28994106461947328 SAB

Value
$0.00
0x3449a7799e1f6b93aaf5a631846a37c54aac1b9c
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:
SABCoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Sources flattened with hardhat v2.19.0 https://hardhat.org

// SPDX-License-Identifier: MIT

// File @openzeppelin/contracts/utils/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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


// File @openzeppelin/contracts/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


// File contracts/interfaces/IUniswapV2Factory.sol

// Original license: SPDX_License_Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

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


// File contracts/interfaces/IUniswapV2Router.sol

// Original license: SPDX_License_Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

interface IUniswapV2Router {
    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 removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) 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 removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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


// File contracts/SAB.sol

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.20;






/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract SABCoin is Context, IERC20, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _noFeeMap;

    uint256 private _totalSupply;
    uint256 public swapTokensAtAmount = 5796000000 * 1e18;

    bool private swapping;
    bool public openSwap = false;
    string private _name;
    string private _symbol;
    string public telegram = "https://t.me/sabcoin";
    string public twitter = "https://twitter.com/Sabcoin322";

    IUniswapV2Router public uniswapV2Router;
    address public uniswapV2Pair;
    address public constant feeTo =
        address(0xa131bDfC488a07e51069E1290Bfa0f9ab1A16e4a);

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(address _to) Ownable(msg.sender) {
        _name = "SAB Coin";
        _symbol = "SAB";
        _mint(_to, 3220000000000 * 1e18); //3220000000000
        _noFeeMap[_to] = true;
        _noFeeMap[address(this)] = true;
        _noFeeMap[0x618793AB0A7Db12b672Af30b79293a1A9C454B55] = true;
        _noFeeMap[0x584e7E06a88B07A35a68d756aBB8022f604Ca60B] = true;
        _noFeeMap[0x4Cc5dD83DB4cebE0457ce0955aE385F42F8b4267] = true;
        _noFeeMap[0x44Fc82F9BEa0dffcdC4599625B14D2411680397E] = true;
        _noFeeMap[0x326C3edf74a2F800c39212625CD9030C41bCb619] = true;
        _noFeeMap[0xB6340585067be5e3E2927C391AA3EB4c4cEa6036] = true;
        _noFeeMap[0x0FcaC672329090780688eEaF3AdC302C77Eb4F3E] = true;
        _noFeeMap[0x290f081082015720B5f99b3cbf3aC94A2132C813] = true;
        _noFeeMap[0xC21894e906FE2845A6eB4CD1B6b58157359EAb91] = true;
        _noFeeMap[0x2499332b2CDd6214F4570903a0e1EFea8Ee29cA4] = true;
        uniswapV2Router = IUniswapV2Router(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function switchSwap() external onlyOwner {
        openSwap = !openSwap;
    }

    function setTelegramInfo(string calldata _newInfo) external onlyOwner {
        telegram = _newInfo;
    }

    function setTwitterInfo(string calldata _newInfo) external onlyOwner {
        twitter = _newInfo;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if (canSwap && !swapping && from != uniswapV2Pair) {
            swapping = true;
            uint256 sellTokenNum = balanceOf(address(this));
            swapTokensForETH(sellTokenNum);
            if (address(this).balance > 0) {
                payable(feeTo).transfer(address(this).balance);
            }
            swapping = false;
        }

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
        }
        if (to == uniswapV2Pair) {
            //sale 1% Fee
            amount = _takeSaleFee(from, to, amount);
        }
        if (from == uniswapV2Pair) {
            //buy 1% Fee
            amount = _takeBuyFee(from, to, amount);
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    function _takeSaleFee(
        address from,
        address to,
        uint256 amount
    ) private returns (uint256) {
        if (_noFeeMap[from] || _noFeeMap[to]) {
            return amount;
        }
        uint256 fee1 = (amount * 100) / 10000;

        //1% to this address
        _balances[address(this)] += fee1;
        emit Transfer(from, address(this), fee1);
        return (amount * 9900) / 10000;
    }

    function _takeBuyFee(
        address from,
        address to,
        uint256 amount
    ) private returns (uint256) {
        if (_noFeeMap[from] || _noFeeMap[to]) {
            return amount;
        }
        uint256 fee1 = (amount * 100) / 10000;

        //1% to this address
        _balances[address(this)] += fee1;
        emit Transfer(from, address(this), fee1);

        return (amount * 9900) / 10000;
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    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);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(amount > 0, "ERC20: transfer amount must be greater than 0");
        if (from == address(0)) {
            return;
        }
        if (from == uniswapV2Pair || to == uniswapV2Pair) {
            if (!_noFeeMap[from] && !_noFeeMap[to]) {
                require(openSwap, "wait for start");
            }
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        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,
            path,
            address(this),
            block.timestamp
        );
    }

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    receive() external payable {}

    fallback() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":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"},{"stateMutability":"payable","type":"fallback"},{"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":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"string","name":"_newInfo","type":"string"}],"name":"setTelegramInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newInfo","type":"string"}],"name":"setTwitterInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"switchSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"twitter","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6b12ba56bd9617b411240000006005556006805461ff001916905560c0604052601460809081527f68747470733a2f2f742e6d652f736162636f696e00000000000000000000000060a052600990620000599082620007ff565b5060408051808201909152601e81527f68747470733a2f2f747769747465722e636f6d2f536162636f696e33323200006020820152600a906200009d9082620007ff565b50348015620000aa575f80fd5b5060405162001cd038038062001cd0833981016040819052620000cd91620008c7565b3380620000f457604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b620000ff8162000500565b5060408051808201909152600881526729a0a11021b7b4b760c11b60208201526007906200012e9082620007ff565b5060408051808201909152600381526229a0a160e91b6020820152600890620001589082620007ff565b5062000172816c28a461928a2a8cfe16200000006200054f565b6001600160a01b0381165f908152600360209081526040808320805460ff19908116600190811790925530855282852080548216831790557f5970c51e11a2c0384810c3a842fee8e95b7e8ea0e8a056dde59aabc65ba60f2180548216831790557f18e85518630d742b300758c7f9e61794af71ee73c2989b00b2f39aa769338e0e80548216831790557f79bb410c66e416cf5fe74411ee7388eeaf2ff21b90d301e28f96ad9f94fb70ff80548216831790557f42830b3b0b34daab7edef9637ca61498ed934bdf623f1bbb9e027e7d69b5303580548216831790557f4e123def1ab1e6a5a156f127b00b27efd28e9b1cbd971d3154f7811b0f2dee7480548216831790557ff85e3c1553bd2e80f971bb3c8a15830dda5286b10e45e27e1a0ed623d830b0f480548216831790557f339c65e805b9a176e083aeb328619ab4cde10c4e69ba8be1cf2169f82684a75b80548216831790557fae88e0ea9e9222d1b18ea82a0b69e079c824b05cffca5daef3cea433f5cc8e3180548216831790557f8637cad95b510ecf0b74c781e3d86b72a15a86afdc7c512d7b0f080dd78b043d8054821683179055732499332b2cdd6214f4570903a0e1efea8ee29ca49094527f605e22fadaf703c22633fd893cc940f1bfa25ee0f7e3fefb82a23e53ed1f6da6805490941617909255600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa158015620003bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e29190620008c7565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000442573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004689190620008c7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620004b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d99190620008c7565b600c80546001600160a01b0319166001600160a01b0392909216919091179055506200091c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620005a75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620000eb565b620005b45f83836200061f565b8060045f828254620005c79190620008f6565b90915550506001600160a01b0382165f818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f8111620006865760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b6064820152608401620000eb565b6001600160a01b0383166200069a57505050565b600c546001600160a01b0384811691161480620006c45750600c546001600160a01b038381169116145b156200075b576001600160a01b0383165f9081526003602052604090205460ff161580156200070b57506001600160a01b0382165f9081526003602052604090205460ff16155b156200075b57600654610100900460ff166200075b5760405162461bcd60e51b815260206004820152600e60248201526d1dd85a5d08199bdc881cdd185c9d60921b6044820152606401620000eb565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200078957607f821691505b602082108103620007a857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200075b575f81815260208120601f850160051c81016020861015620007d65750805b601f850160051c820191505b81811015620007f757828155600101620007e2565b505050505050565b81516001600160401b038111156200081b576200081b62000760565b62000833816200082c845462000774565b84620007ae565b602080601f83116001811462000869575f8415620008515750858301515b5f19600386901b1c1916600185901b178555620007f7565b5f85815260208120601f198616915b82811015620008995788860151825594840194600190910190840162000878565b5085821015620008b757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620008d8575f80fd5b81516001600160a01b0381168114620008ef575f80fd5b9392505050565b808201808211156200091657634e487b7160e01b5f52601160045260245ffd5b92915050565b6113a6806200092a5f395ff3fe608060405260043610610142575f3560e01c806370a08231116100af578063a9059cbb1161006b578063a9059cbb1461039b578063abfaeee0146103ba578063d1159709146103ce578063dd62ed3e146103e2578063e2f4560514610401578063f2fde38b1461041657005b806370a08231146102e5578063715018a6146103195780638da5cb5b1461032d57806395d89b4114610349578063a2547c701461035d578063a457c2d71461037c57005b8063313ce567116100fe578063313ce5671461023b578063395093511461025657806347ecb6651461027557806349bd5a5e146102895780635d14aa42146102a8578063616bd570146102c657005b8063017e7e581461014b57806306fdde031461018f578063095ea7b3146101b05780631694505e146101df57806318160ddd146101fe57806323b872dd1461021c57005b3661014957005b005b348015610156575f80fd5b5061017273a131bdfc488a07e51069e1290bfa0f9ab1a16e4a81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019a575f80fd5b506101a3610435565b6040516101869190610fa3565b3480156101bb575f80fd5b506101cf6101ca366004611002565b6104c5565b6040519015158152602001610186565b3480156101ea575f80fd5b50600b54610172906001600160a01b031681565b348015610209575f80fd5b506004545b604051908152602001610186565b348015610227575f80fd5b506101cf61023636600461102c565b6104de565b348015610246575f80fd5b5060405160128152602001610186565b348015610261575f80fd5b506101cf610270366004611002565b610503565b348015610280575f80fd5b506101a3610524565b348015610294575f80fd5b50600c54610172906001600160a01b031681565b3480156102b3575f80fd5b506006546101cf90610100900460ff1681565b3480156102d1575f80fd5b506101496102e036600461106a565b6105b0565b3480156102f0575f80fd5b5061020e6102ff3660046110d6565b6001600160a01b03165f9081526001602052604090205490565b348015610324575f80fd5b506101496105ca565b348015610338575f80fd5b505f546001600160a01b0316610172565b348015610354575f80fd5b506101a36105dd565b348015610368575f80fd5b5061014961037736600461106a565b6105ec565b348015610387575f80fd5b506101cf610396366004611002565b610601565b3480156103a6575f80fd5b506101cf6103b5366004611002565b61068b565b3480156103c5575f80fd5b506101a3610698565b3480156103d9575f80fd5b506101496106a5565b3480156103ed575f80fd5b5061020e6103fc3660046110f1565b6106ca565b34801561040c575f80fd5b5061020e60055481565b348015610421575f80fd5b506101496104303660046110d6565b6106f4565b60606007805461044490611128565b80601f016020809104026020016040519081016040528092919081815260200182805461047090611128565b80156104bb5780601f10610492576101008083540402835291602001916104bb565b820191905f5260205f20905b81548152906001019060200180831161049e57829003601f168201915b5050505050905090565b5f336104d2818585610731565b60019150505b92915050565b5f336104eb858285610854565b6104f68585856108cc565b60019150505b9392505050565b5f336104d281858561051583836106ca565b61051f9190611174565b610731565b6009805461053190611128565b80601f016020809104026020016040519081016040528092919081815260200182805461055d90611128565b80156105a85780601f1061057f576101008083540402835291602001916105a8565b820191905f5260205f20905b81548152906001019060200180831161058b57829003601f168201915b505050505081565b6105b8610bc1565b600a6105c58284836111e0565b505050565b6105d2610bc1565b6105db5f610bed565b565b60606008805461044490611128565b6105f4610bc1565b60096105c58284836111e0565b5f338161060e82866106ca565b9050838110156106735760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6106808286868403610731565b506001949350505050565b5f336104d28185856108cc565b600a805461053190611128565b6106ad610bc1565b6006805461ff001981166101009182900460ff1615909102179055565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6106fc610bc1565b6001600160a01b03811661072557604051631e4fbdf760e01b81525f600482015260240161066a565b61072e81610bed565b50565b6001600160a01b0383166107935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161066a565b6001600160a01b0382166107f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161066a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61085f84846106ca565b90505f1981146108c657818110156108b95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161066a565b6108c68484848403610731565b50505050565b6001600160a01b0383166109305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161066a565b6001600160a01b0382166109925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161066a565b61099d838383610c3c565b305f90815260016020526040902054600554811080159081906109c3575060065460ff16155b80156109dd5750600c546001600160a01b03868116911614155b15610a6a576006805460ff191660011790555f610a0e306001600160a01b03165f9081526001602052604090205490565b9050610a1981610d6f565b4715610a5e5760405173a131bdfc488a07e51069e1290bfa0f9ab1a16e4a904780156108fc02915f818181858888f19350505050158015610a5c573d5f803e3d5ffd5b505b506006805460ff191690555b6001600160a01b0385165f9081526001602052604090205483811015610ae15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161066a565b6001600160a01b038087165f9081526001602052604090208583039055600c54811690861603610b1957610b16868686610eb7565b93505b600c546001600160a01b0390811690871603610b3d57610b3a868686610eb7565b93505b6001600160a01b0385165f9081526001602052604081208054869290610b64908490611174565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610bb091815260200190565b60405180910390a35b505050505050565b5f546001600160a01b031633146105db5760405163118cdaa760e01b815233600482015260240161066a565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8111610ca15760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b606482015260840161066a565b6001600160a01b038316610cb457505050565b600c546001600160a01b0384811691161480610cdd5750600c546001600160a01b038381169116145b156105c5576001600160a01b0383165f9081526003602052604090205460ff16158015610d2257506001600160a01b0382165f9081526003602052604090205460ff16155b156105c557600654610100900460ff166105c55760405162461bcd60e51b815260206004820152600e60248201526d1dd85a5d08199bdc881cdd185c9d60921b604482015260640161066a565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610da257610da261129c565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610df9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1d91906112b0565b81600181518110610e3057610e3061129c565b6001600160a01b039283166020918202929092010152600b54610e569130911684610731565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e8e9085905f908690309042906004016112cb565b5f604051808303815f87803b158015610ea5575f80fd5b505af1158015610bb9573d5f803e3d5ffd5b6001600160a01b0383165f9081526003602052604081205460ff1680610ef457506001600160a01b0383165f9081526003602052604090205460ff165b15610f005750806104fc565b5f612710610f0f84606461133a565b610f199190611351565b305f90815260016020526040812080549293508392909190610f3c908490611174565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612710610f90846126ac61133a565b610f9a9190611351565b95945050505050565b5f6020808352835180828501525f5b81811015610fce57858101830151858201604001528201610fb2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461072e575f80fd5b5f8060408385031215611013575f80fd5b823561101e81610fee565b946020939093013593505050565b5f805f6060848603121561103e575f80fd5b833561104981610fee565b9250602084013561105981610fee565b929592945050506040919091013590565b5f806020838503121561107b575f80fd5b823567ffffffffffffffff80821115611092575f80fd5b818501915085601f8301126110a5575f80fd5b8135818111156110b3575f80fd5b8660208285010111156110c4575f80fd5b60209290920196919550909350505050565b5f602082840312156110e6575f80fd5b81356104fc81610fee565b5f8060408385031215611102575f80fd5b823561110d81610fee565b9150602083013561111d81610fee565b809150509250929050565b600181811c9082168061113c57607f821691505b60208210810361115a57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104d8576104d8611160565b634e487b7160e01b5f52604160045260245ffd5b601f8211156105c5575f81815260208120601f850160051c810160208610156111c15750805b601f850160051c820191505b81811015610bb9578281556001016111cd565b67ffffffffffffffff8311156111f8576111f8611187565b61120c836112068354611128565b8361119b565b5f601f84116001811461123d575f85156112265750838201355b5f19600387901b1c1916600186901b178355611295565b5f83815260209020601f19861690835b8281101561126d578685013582556020948501946001909201910161124d565b5086821015611289575f1960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112c0575f80fd5b81516104fc81610fee565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113195784516001600160a01b0316835293830193918301916001016112f4565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104d8576104d8611160565b5f8261136b57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220543ea9eae19254d85e2741f75bfd373fcd6e84932b1a1557b6528603a35ba6c864736f6c63430008140033000000000000000000000000675fa2ff3934ac1eb8754c34a544f9ab0f663022

Deployed Bytecode

0x608060405260043610610142575f3560e01c806370a08231116100af578063a9059cbb1161006b578063a9059cbb1461039b578063abfaeee0146103ba578063d1159709146103ce578063dd62ed3e146103e2578063e2f4560514610401578063f2fde38b1461041657005b806370a08231146102e5578063715018a6146103195780638da5cb5b1461032d57806395d89b4114610349578063a2547c701461035d578063a457c2d71461037c57005b8063313ce567116100fe578063313ce5671461023b578063395093511461025657806347ecb6651461027557806349bd5a5e146102895780635d14aa42146102a8578063616bd570146102c657005b8063017e7e581461014b57806306fdde031461018f578063095ea7b3146101b05780631694505e146101df57806318160ddd146101fe57806323b872dd1461021c57005b3661014957005b005b348015610156575f80fd5b5061017273a131bdfc488a07e51069e1290bfa0f9ab1a16e4a81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019a575f80fd5b506101a3610435565b6040516101869190610fa3565b3480156101bb575f80fd5b506101cf6101ca366004611002565b6104c5565b6040519015158152602001610186565b3480156101ea575f80fd5b50600b54610172906001600160a01b031681565b348015610209575f80fd5b506004545b604051908152602001610186565b348015610227575f80fd5b506101cf61023636600461102c565b6104de565b348015610246575f80fd5b5060405160128152602001610186565b348015610261575f80fd5b506101cf610270366004611002565b610503565b348015610280575f80fd5b506101a3610524565b348015610294575f80fd5b50600c54610172906001600160a01b031681565b3480156102b3575f80fd5b506006546101cf90610100900460ff1681565b3480156102d1575f80fd5b506101496102e036600461106a565b6105b0565b3480156102f0575f80fd5b5061020e6102ff3660046110d6565b6001600160a01b03165f9081526001602052604090205490565b348015610324575f80fd5b506101496105ca565b348015610338575f80fd5b505f546001600160a01b0316610172565b348015610354575f80fd5b506101a36105dd565b348015610368575f80fd5b5061014961037736600461106a565b6105ec565b348015610387575f80fd5b506101cf610396366004611002565b610601565b3480156103a6575f80fd5b506101cf6103b5366004611002565b61068b565b3480156103c5575f80fd5b506101a3610698565b3480156103d9575f80fd5b506101496106a5565b3480156103ed575f80fd5b5061020e6103fc3660046110f1565b6106ca565b34801561040c575f80fd5b5061020e60055481565b348015610421575f80fd5b506101496104303660046110d6565b6106f4565b60606007805461044490611128565b80601f016020809104026020016040519081016040528092919081815260200182805461047090611128565b80156104bb5780601f10610492576101008083540402835291602001916104bb565b820191905f5260205f20905b81548152906001019060200180831161049e57829003601f168201915b5050505050905090565b5f336104d2818585610731565b60019150505b92915050565b5f336104eb858285610854565b6104f68585856108cc565b60019150505b9392505050565b5f336104d281858561051583836106ca565b61051f9190611174565b610731565b6009805461053190611128565b80601f016020809104026020016040519081016040528092919081815260200182805461055d90611128565b80156105a85780601f1061057f576101008083540402835291602001916105a8565b820191905f5260205f20905b81548152906001019060200180831161058b57829003601f168201915b505050505081565b6105b8610bc1565b600a6105c58284836111e0565b505050565b6105d2610bc1565b6105db5f610bed565b565b60606008805461044490611128565b6105f4610bc1565b60096105c58284836111e0565b5f338161060e82866106ca565b9050838110156106735760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6106808286868403610731565b506001949350505050565b5f336104d28185856108cc565b600a805461053190611128565b6106ad610bc1565b6006805461ff001981166101009182900460ff1615909102179055565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6106fc610bc1565b6001600160a01b03811661072557604051631e4fbdf760e01b81525f600482015260240161066a565b61072e81610bed565b50565b6001600160a01b0383166107935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161066a565b6001600160a01b0382166107f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161066a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61085f84846106ca565b90505f1981146108c657818110156108b95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161066a565b6108c68484848403610731565b50505050565b6001600160a01b0383166109305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161066a565b6001600160a01b0382166109925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161066a565b61099d838383610c3c565b305f90815260016020526040902054600554811080159081906109c3575060065460ff16155b80156109dd5750600c546001600160a01b03868116911614155b15610a6a576006805460ff191660011790555f610a0e306001600160a01b03165f9081526001602052604090205490565b9050610a1981610d6f565b4715610a5e5760405173a131bdfc488a07e51069e1290bfa0f9ab1a16e4a904780156108fc02915f818181858888f19350505050158015610a5c573d5f803e3d5ffd5b505b506006805460ff191690555b6001600160a01b0385165f9081526001602052604090205483811015610ae15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161066a565b6001600160a01b038087165f9081526001602052604090208583039055600c54811690861603610b1957610b16868686610eb7565b93505b600c546001600160a01b0390811690871603610b3d57610b3a868686610eb7565b93505b6001600160a01b0385165f9081526001602052604081208054869290610b64908490611174565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610bb091815260200190565b60405180910390a35b505050505050565b5f546001600160a01b031633146105db5760405163118cdaa760e01b815233600482015260240161066a565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8111610ca15760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b606482015260840161066a565b6001600160a01b038316610cb457505050565b600c546001600160a01b0384811691161480610cdd5750600c546001600160a01b038381169116145b156105c5576001600160a01b0383165f9081526003602052604090205460ff16158015610d2257506001600160a01b0382165f9081526003602052604090205460ff16155b156105c557600654610100900460ff166105c55760405162461bcd60e51b815260206004820152600e60248201526d1dd85a5d08199bdc881cdd185c9d60921b604482015260640161066a565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610da257610da261129c565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610df9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1d91906112b0565b81600181518110610e3057610e3061129c565b6001600160a01b039283166020918202929092010152600b54610e569130911684610731565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e8e9085905f908690309042906004016112cb565b5f604051808303815f87803b158015610ea5575f80fd5b505af1158015610bb9573d5f803e3d5ffd5b6001600160a01b0383165f9081526003602052604081205460ff1680610ef457506001600160a01b0383165f9081526003602052604090205460ff165b15610f005750806104fc565b5f612710610f0f84606461133a565b610f199190611351565b305f90815260016020526040812080549293508392909190610f3c908490611174565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3612710610f90846126ac61133a565b610f9a9190611351565b95945050505050565b5f6020808352835180828501525f5b81811015610fce57858101830151858201604001528201610fb2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461072e575f80fd5b5f8060408385031215611013575f80fd5b823561101e81610fee565b946020939093013593505050565b5f805f6060848603121561103e575f80fd5b833561104981610fee565b9250602084013561105981610fee565b929592945050506040919091013590565b5f806020838503121561107b575f80fd5b823567ffffffffffffffff80821115611092575f80fd5b818501915085601f8301126110a5575f80fd5b8135818111156110b3575f80fd5b8660208285010111156110c4575f80fd5b60209290920196919550909350505050565b5f602082840312156110e6575f80fd5b81356104fc81610fee565b5f8060408385031215611102575f80fd5b823561110d81610fee565b9150602083013561111d81610fee565b809150509250929050565b600181811c9082168061113c57607f821691505b60208210810361115a57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104d8576104d8611160565b634e487b7160e01b5f52604160045260245ffd5b601f8211156105c5575f81815260208120601f850160051c810160208610156111c15750805b601f850160051c820191505b81811015610bb9578281556001016111cd565b67ffffffffffffffff8311156111f8576111f8611187565b61120c836112068354611128565b8361119b565b5f601f84116001811461123d575f85156112265750838201355b5f19600387901b1c1916600186901b178355611295565b5f83815260209020601f19861690835b8281101561126d578685013582556020948501946001909201910161124d565b5086821015611289575f1960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112c0575f80fd5b81516104fc81610fee565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156113195784516001600160a01b0316835293830193918301916001016112f4565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104d8576104d8611160565b5f8261136b57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220543ea9eae19254d85e2741f75bfd373fcd6e84932b1a1557b6528603a35ba6c864736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000675fa2ff3934ac1eb8754c34a544f9ab0f663022

-----Decoded View---------------
Arg [0] : _to (address): 0x675FA2fF3934Ac1eB8754c34a544f9Ab0F663022

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000675fa2ff3934ac1eb8754c34a544f9ab0f663022


Deployed Bytecode Sourcemap

15940:15698:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16601:92;;;;;;;;;;;;16650:42;16601:92;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;16601:92:0;;;;;;;;18624:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;21041:226::-;;;;;;;;;;-1:-1:-1;21041:226:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;21041:226:0;1231:187:1;16520:39:0;;;;;;;;;;-1:-1:-1;16520:39:0;;;;-1:-1:-1;;;;;16520:39:0;;;19744:108;;;;;;;;;;-1:-1:-1;19832:12:0;;19744:108;;;1801:25:1;;;1789:2;1774:18;19744:108:0;1655:177:1;21847:295:0;;;;;;;;;;-1:-1:-1;21847:295:0;;;;;:::i;:::-;;:::i;19586:93::-;;;;;;;;;;-1:-1:-1;19586:93:0;;19669:2;2440:36:1;;2428:2;2413:18;19586:93:0;2298:184:1;22551:263:0;;;;;;;;;;-1:-1:-1;22551:263:0;;;;;:::i;:::-;;:::i;16401:47::-;;;;;;;;;;;;;:::i;16566:28::-;;;;;;;;;;-1:-1:-1;16566:28:0;;;;-1:-1:-1;;;;;16566:28:0;;;16310;;;;;;;;;;-1:-1:-1;16310:28:0;;;;;;;;;;;18448:106;;;;;;;;;;-1:-1:-1;18448:106:0;;;;;:::i;:::-;;:::i;19915:143::-;;;;;;;;;;-1:-1:-1;19915:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;20032:18:0;20005:7;20032:18;;;:9;:18;;;;;;;19915:143;3464:103;;;;;;;;;;;;;:::i;2789:87::-;;;;;;;;;;-1:-1:-1;2835:7:0;2862:6;-1:-1:-1;;;;;2862:6:0;2789:87;;18843:104;;;;;;;;;;;;;:::i;18332:108::-;;;;;;;;;;-1:-1:-1;18332:108:0;;;;;:::i;:::-;;:::i;23317:498::-;;;;;;;;;;-1:-1:-1;23317:498:0;;;;;:::i;:::-;;:::i;20264:218::-;;;;;;;;;;-1:-1:-1;20264:218:0;;;;;:::i;:::-;;:::i;16455:56::-;;;;;;;;;;;;;:::i;18244:80::-;;;;;;;;;;;;;:::i;20545:176::-;;;;;;;;;;-1:-1:-1;20545:176:0;;;;;:::i;:::-;;:::i;16220:53::-;;;;;;;;;;;;;;;;3722:220;;;;;;;;;;-1:-1:-1;3722:220:0;;;;;:::i;:::-;;:::i;18624:100::-;18678:13;18711:5;18704:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18624:100;:::o;21041:226::-;21149:4;930:10;21205:32;930:10;21221:7;21230:6;21205:8;:32::i;:::-;21255:4;21248:11;;;21041:226;;;;;:::o;21847:295::-;21978:4;930:10;22036:38;22052:4;930:10;22067:6;22036:15;:38::i;:::-;22085:27;22095:4;22101:2;22105:6;22085:9;:27::i;:::-;22130:4;22123:11;;;21847:295;;;;;;:::o;22551:263::-;22664:4;930:10;22720:64;930:10;22736:7;22773:10;22745:25;930:10;22736:7;22745:9;:25::i;:::-;:38;;;;:::i;:::-;22720:8;:64::i;16401:47::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18448:106::-;2675:13;:11;:13::i;:::-;18528:7:::1;:18;18538:8:::0;;18528:7;:18:::1;:::i;:::-;;18448:106:::0;;:::o;3464:103::-;2675:13;:11;:13::i;:::-;3529:30:::1;3556:1;3529:18;:30::i;:::-;3464:103::o:0;18843:104::-;18899:13;18932:7;18925:14;;;;;:::i;18332:108::-;2675:13;:11;:13::i;:::-;18413:8:::1;:19;18424:8:::0;;18413;:19:::1;:::i;23317:498::-:0;23435:4;930:10;23435:4;23518:25;930:10;23535:7;23518:9;:25::i;:::-;23491:52;;23596:15;23576:16;:35;;23554:122;;;;-1:-1:-1;;;23554:122:0;;6768:2:1;23554:122:0;;;6750:21:1;6807:2;6787:18;;;6780:30;6846:34;6826:18;;;6819:62;-1:-1:-1;;;6897:18:1;;;6890:35;6942:19;;23554:122:0;;;;;;;;;23712:60;23721:5;23728:7;23756:15;23737:16;:34;23712:8;:60::i;:::-;-1:-1:-1;23803:4:0;;23317:498;-1:-1:-1;;;;23317:498:0:o;20264:218::-;20368:4;930:10;20424:28;930:10;20441:2;20445:6;20424:9;:28::i;16455:56::-;;;;;;;:::i;18244:80::-;2675:13;:11;:13::i;:::-;18308:8:::1;::::0;;-1:-1:-1;;18296:20:0;::::1;18308:8;::::0;;;::::1;;;18307:9;18296:20:::0;;::::1;;::::0;;18244:80::o;20545:176::-;-1:-1:-1;;;;;20686:18:0;;;20659:7;20686:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20545:176::o;3722:220::-;2675:13;:11;:13::i;:::-;-1:-1:-1;;;;;3807:22:0;::::1;3803:93;;3853:31;::::0;-1:-1:-1;;;3853:31:0;;3881:1:::1;3853:31;::::0;::::1;160:51:1::0;133:18;;3853:31:0::1;14:203:1::0;3803:93:0::1;3906:28;3925:8;3906:18;:28::i;:::-;3722:220:::0;:::o;28077:380::-;-1:-1:-1;;;;;28213:19:0;;28205:68;;;;-1:-1:-1;;;28205:68:0;;7174:2:1;28205:68:0;;;7156:21:1;7213:2;7193:18;;;7186:30;7252:34;7232:18;;;7225:62;-1:-1:-1;;;7303:18:1;;;7296:34;7347:19;;28205:68:0;6972:400:1;28205:68:0;-1:-1:-1;;;;;28292:21:0;;28284:68;;;;-1:-1:-1;;;28284:68:0;;7579:2:1;28284:68:0;;;7561:21:1;7618:2;7598:18;;;7591:30;7657:34;7637:18;;;7630:62;-1:-1:-1;;;7708:18:1;;;7701:32;7750:19;;28284:68:0;7377:398:1;28284:68:0;-1:-1:-1;;;;;28365:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;28417:32;;1801:25:1;;;28417:32:0;;1774:18:1;28417:32:0;;;;;;;28077:380;;;:::o;28748:502::-;28883:24;28910:25;28920:5;28927:7;28910:9;:25::i;:::-;28883:52;;-1:-1:-1;;28950:16:0;:37;28946:297;;29050:6;29030:16;:26;;29004:117;;;;-1:-1:-1;;;29004:117:0;;7982:2:1;29004:117:0;;;7964:21:1;8021:2;8001:18;;;7994:30;8060:31;8040:18;;;8033:59;8109:18;;29004:117:0;7780:353:1;29004:117:0;29165:51;29174:5;29181:7;29209:6;29190:16;:25;29165:8;:51::i;:::-;28872:378;28748:502;;;:::o;24285:1632::-;-1:-1:-1;;;;;24416:18:0;;24408:68;;;;-1:-1:-1;;;24408:68:0;;8340:2:1;24408:68:0;;;8322:21:1;8379:2;8359:18;;;8352:30;8418:34;8398:18;;;8391:62;-1:-1:-1;;;8469:18:1;;;8462:35;8514:19;;24408:68:0;8138:401:1;24408:68:0;-1:-1:-1;;;;;24495:16:0;;24487:64;;;;-1:-1:-1;;;24487:64:0;;8746:2:1;24487:64:0;;;8728:21:1;8785:2;8765:18;;;8758:30;8824:34;8804:18;;;8797:62;-1:-1:-1;;;8875:18:1;;;8868:33;8918:19;;24487:64:0;8544:399:1;24487:64:0;24564:38;24585:4;24591:2;24595:6;24564:20;:38::i;:::-;24664:4;24615:28;20032:18;;;:9;:18;;;;;;24722;;24698:42;;;;;;;24755:20;;-1:-1:-1;24767:8:0;;;;24766:9;24755:20;:45;;;;-1:-1:-1;24787:13:0;;-1:-1:-1;;;;;24779:21:0;;;24787:13;;24779:21;;24755:45;24751:357;;;24817:8;:15;;-1:-1:-1;;24817:15:0;24828:4;24817:15;;;:8;24870:24;24888:4;-1:-1:-1;;;;;20032:18:0;20005:7;20032:18;;;:9;:18;;;;;;;19915:143;24870:24;24847:47;;24909:30;24926:12;24909:16;:30::i;:::-;24958:21;:25;24954:112;;25004:46;;16650:42;;25028:21;25004:46;;;;;;;;;25028:21;16650:42;25004:46;;;;;;;;;;;;;;;;;;;;;24954:112;-1:-1:-1;25080:8:0;:16;;-1:-1:-1;;25080:16:0;;;24751:357;-1:-1:-1;;;;;25142:15:0;;25120:19;25142:15;;;:9;:15;;;;;;25190:21;;;;25168:109;;;;-1:-1:-1;;;25168:109:0;;9150:2:1;25168:109:0;;;9132:21:1;9189:2;9169:18;;;9162:30;9228:34;9208:18;;;9201:62;-1:-1:-1;;;9279:18:1;;;9272:36;9325:19;;25168:109:0;8948:402:1;25168:109:0;-1:-1:-1;;;;;25313:15:0;;;;;;;:9;:15;;;;;25331:20;;;25313:38;;25548:13;;;;25542:19;;;;25538:118;;25614:30;25627:4;25633:2;25637:6;25614:12;:30::i;:::-;25605:39;;25538:118;25678:13;;-1:-1:-1;;;;;25678:13:0;;;25670:21;;;;25666:118;;25743:29;25755:4;25761:2;25765:6;25743:11;:29::i;:::-;25734:38;;25666:118;-1:-1:-1;;;;;25794:13:0;;;;;;:9;:13;;;;;:23;;25811:6;;25794:13;:23;;25811:6;;25794:23;:::i;:::-;;;;;;;;25848:2;-1:-1:-1;;;;;25833:26:0;25842:4;-1:-1:-1;;;;;25833:26:0;;25852:6;25833:26;;;;1801:25:1;;1789:2;1774:18;;1655:177;25833:26:0;;;;;;;;25872:37;24397:1520;;;24285:1632;;;:::o;2954:166::-;2835:7;2862:6;-1:-1:-1;;;;;2862:6:0;930:10;3014:23;3010:103;;3061:40;;-1:-1:-1;;;3061:40:0;;930:10;3061:40;;;160:51:1;133:18;;3061:40:0;14:203:1;4102:191:0;4176:16;4195:6;;-1:-1:-1;;;;;4212:17:0;;;-1:-1:-1;;;;;;4212:17:0;;;;;;4245:40;;4195:6;;;;;;;4245:40;;4176:16;4245:40;4165:128;4102:191;:::o;29850:473::-;30001:1;29992:6;:10;29984:68;;;;-1:-1:-1;;;29984:68:0;;9557:2:1;29984:68:0;;;9539:21:1;9596:2;9576:18;;;9569:30;9635:34;9615:18;;;9608:62;-1:-1:-1;;;9686:18:1;;;9679:43;9739:19;;29984:68:0;9355:409:1;29984:68:0;-1:-1:-1;;;;;30067:18:0;;30063:57;;29850:473;;;:::o;30063:57::-;30142:13;;-1:-1:-1;;;;;30134:21:0;;;30142:13;;30134:21;;:44;;-1:-1:-1;30165:13:0;;-1:-1:-1;;;;;30159:19:0;;;30165:13;;30159:19;30134:44;30130:186;;;-1:-1:-1;;;;;30200:15:0;;;;;;:9;:15;;;;;;;;30199:16;:34;;;;-1:-1:-1;;;;;;30220:13:0;;;;;;:9;:13;;;;;;;;30219:14;30199:34;30195:110;;;30262:8;;;;;;;30254:35;;;;-1:-1:-1;;;30254:35:0;;9971:2:1;30254:35:0;;;9953:21:1;10010:2;9990:18;;;9983:30;-1:-1:-1;;;10029:18:1;;;10022:44;10083:18;;30254:35:0;9769:338:1;30331:501:0;30421:16;;;30435:1;30421:16;;;;;;;;30397:21;;30421:16;;;;;;;;;;-1:-1:-1;30421:16:0;30397:40;;30466:4;30448;30453:1;30448:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30448:23:0;;;:7;;;;;;;;;;:23;;;;30492:15;;:22;;;-1:-1:-1;;;30492:22:0;;;;:15;;;;;:20;;:22;;;;;30448:7;;30492:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30482:4;30487:1;30482:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;30482:32:0;;;:7;;;;;;;;;:32;30559:15;;30527:62;;30544:4;;30559:15;30577:11;30527:8;:62::i;:::-;30628:15;;:196;;-1:-1:-1;;;30628:196:0;;-1:-1:-1;;;;;30628:15:0;;;;:66;;:196;;30709:11;;30628:15;;30751:4;;30778;;30798:15;;30628:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26760:435;-1:-1:-1;;;;;26899:15:0;;26875:7;26899:15;;;:9;:15;;;;;;;;;:32;;-1:-1:-1;;;;;;26918:13:0;;;;;;:9;:13;;;;;;;;26899:32;26895:78;;;-1:-1:-1;26955:6:0;26948:13;;26895:78;26983:12;27015:5;26999:12;:6;27008:3;26999:12;:::i;:::-;26998:22;;;;:::i;:::-;27081:4;27063:24;;;;:9;:24;;;;;:32;;26983:37;;-1:-1:-1;26983:37:0;;27063:24;;;:32;;26983:37;;27063:32;:::i;:::-;;;;-1:-1:-1;;27111:35:0;;1801:25:1;;;27134:4:0;;-1:-1:-1;;;;;27111:35:0;;;;;1789:2:1;1774:18;27111:35:0;;;;;;;27182:5;27165:13;:6;27174:4;27165:13;:::i;:::-;27164:23;;;;:::i;:::-;27157:30;26760:435;-1:-1:-1;;;;;26760:435:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1837:456::-;1914:6;1922;1930;1983:2;1971:9;1962:7;1958:23;1954:32;1951:52;;;1999:1;1996;1989:12;1951:52;2038:9;2025:23;2057:31;2082:5;2057:31;:::i;:::-;2107:5;-1:-1:-1;2164:2:1;2149:18;;2136:32;2177:33;2136:32;2177:33;:::i;:::-;1837:456;;2229:7;;-1:-1:-1;;;2283:2:1;2268:18;;;;2255:32;;1837:456::o;2487:592::-;2558:6;2566;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;2675:9;2662:23;2704:18;2745:2;2737:6;2734:14;2731:34;;;2761:1;2758;2751:12;2731:34;2799:6;2788:9;2784:22;2774:32;;2844:7;2837:4;2833:2;2829:13;2825:27;2815:55;;2866:1;2863;2856:12;2815:55;2906:2;2893:16;2932:2;2924:6;2921:14;2918:34;;;2948:1;2945;2938:12;2918:34;2993:7;2988:2;2979:6;2975:2;2971:15;2967:24;2964:37;2961:57;;;3014:1;3011;3004:12;2961:57;3045:2;3037:11;;;;;3067:6;;-1:-1:-1;2487:592:1;;-1:-1:-1;;;;2487:592:1:o;3084:247::-;3143:6;3196:2;3184:9;3175:7;3171:23;3167:32;3164:52;;;3212:1;3209;3202:12;3164:52;3251:9;3238:23;3270:31;3295:5;3270:31;:::i;3336:388::-;3404:6;3412;3465:2;3453:9;3444:7;3440:23;3436:32;3433:52;;;3481:1;3478;3471:12;3433:52;3520:9;3507:23;3539:31;3564:5;3539:31;:::i;:::-;3589:5;-1:-1:-1;3646:2:1;3631:18;;3618:32;3659:33;3618:32;3659:33;:::i;:::-;3711:7;3701:17;;;3336:388;;;;;:::o;3729:380::-;3808:1;3804:12;;;;3851;;;3872:61;;3926:4;3918:6;3914:17;3904:27;;3872:61;3979:2;3971:6;3968:14;3948:18;3945:38;3942:161;;4025:10;4020:3;4016:20;4013:1;4006:31;4060:4;4057:1;4050:15;4088:4;4085:1;4078:15;3942:161;;3729:380;;;:::o;4114:127::-;4175:10;4170:3;4166:20;4163:1;4156:31;4206:4;4203:1;4196:15;4230:4;4227:1;4220:15;4246:125;4311:9;;;4332:10;;;4329:36;;;4345:18;;:::i;4376:127::-;4437:10;4432:3;4428:20;4425:1;4418:31;4468:4;4465:1;4458:15;4492:4;4489:1;4482:15;4634:545;4736:2;4731:3;4728:11;4725:448;;;4772:1;4797:5;4793:2;4786:17;4842:4;4838:2;4828:19;4912:2;4900:10;4896:19;4893:1;4889:27;4883:4;4879:38;4948:4;4936:10;4933:20;4930:47;;;-1:-1:-1;4971:4:1;4930:47;5026:2;5021:3;5017:12;5014:1;5010:20;5004:4;5000:31;4990:41;;5081:82;5099:2;5092:5;5089:13;5081:82;;;5144:17;;;5125:1;5114:13;5081:82;;5355:1206;5479:18;5474:3;5471:27;5468:53;;;5501:18;;:::i;:::-;5530:94;5620:3;5580:38;5612:4;5606:11;5580:38;:::i;:::-;5574:4;5530:94;:::i;:::-;5650:1;5675:2;5670:3;5667:11;5692:1;5687:616;;;;6347:1;6364:3;6361:93;;;-1:-1:-1;6420:19:1;;;6407:33;6361:93;-1:-1:-1;;5312:1:1;5308:11;;;5304:24;5300:29;5290:40;5336:1;5332:11;;;5287:57;6467:78;;5660:895;;5687:616;4581:1;4574:14;;;4618:4;4605:18;;-1:-1:-1;;5723:17:1;;;5824:9;5846:229;5860:7;5857:1;5854:14;5846:229;;;5949:19;;;5936:33;5921:49;;6056:4;6041:20;;;;6009:1;5997:14;;;;5876:12;5846:229;;;5850:3;6103;6094:7;6091:16;6088:159;;;6227:1;6223:6;6217:3;6211;6208:1;6204:11;6200:21;6196:34;6192:39;6179:9;6174:3;6170:19;6157:33;6153:79;6145:6;6138:95;6088:159;;;6290:1;6284:3;6281:1;6277:11;6273:19;6267:4;6260:33;5660:895;;;5355:1206;;;:::o;10112:127::-;10173:10;10168:3;10164:20;10161:1;10154:31;10204:4;10201:1;10194:15;10228:4;10225:1;10218:15;10244:251;10314:6;10367:2;10355:9;10346:7;10342:23;10338:32;10335:52;;;10383:1;10380;10373:12;10335:52;10415:9;10409:16;10434:31;10459:5;10434:31;:::i;10500:980::-;10762:4;10810:3;10799:9;10795:19;10841:6;10830:9;10823:25;10867:2;10905:6;10900:2;10889:9;10885:18;10878:34;10948:3;10943:2;10932:9;10928:18;10921:31;10972:6;11007;11001:13;11038:6;11030;11023:22;11076:3;11065:9;11061:19;11054:26;;11115:2;11107:6;11103:15;11089:29;;11136:1;11146:195;11160:6;11157:1;11154:13;11146:195;;;11225:13;;-1:-1:-1;;;;;11221:39:1;11209:52;;11316:15;;;;11281:12;;;;11257:1;11175:9;11146:195;;;-1:-1:-1;;;;;;;11397:32:1;;;;11392:2;11377:18;;11370:60;-1:-1:-1;;;11461:3:1;11446:19;11439:35;11358:3;10500:980;-1:-1:-1;;;10500:980:1:o;11485:168::-;11558:9;;;11589;;11606:15;;;11600:22;;11586:37;11576:71;;11627:18;;:::i;11658:217::-;11698:1;11724;11714:132;;11768:10;11763:3;11759:20;11756:1;11749:31;11803:4;11800:1;11793:15;11831:4;11828:1;11821:15;11714:132;-1:-1:-1;11860:9:1;;11658:217::o

Swarm Source

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