ETH Price: $2,381.42 (-1.17%)

Token

Proof Of Vitalik (ETH3.0)
 

Overview

Max Total Supply

1,000,000,000,000 ETH3.0

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,497,974,999.477736736 ETH3.0

Value
$0.00
0xfd9f7f32972701314452af696bb0fd8796b3f7ea
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:
Vitalik

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-30
*/

/**
https://t.me/ProofOfVitalikERC
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.15;

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

        function _msgData() internal view virtual returns (bytes memory) {
            this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
            return msg.data;
        }
    }

    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) {
            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) {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            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;
            // assert(a == b * c + a % b); // There is no case in which this doesn't hold

            return c;
        }
        function mod(uint256 a, uint256 b) internal pure returns (uint256) {
            return mod(a, b, "SafeMath: modulo by zero");
        }
        function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            require(b != 0, errorMessage);
            return a % b;
        }
    }

    library Address {

        function isContract(address account) internal view returns (bool) {
            // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
            // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
            // for accounts without code, i.e. `keccak256('')`
            bytes32 codehash;
            bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
            // solhint-disable-next-line no-inline-assembly
            assembly { codehash := extcodehash(account) }
            return (codehash != accountHash && codehash != 0x0);
        }

        function sendValue(address payable recipient, uint256 amount) internal {
            require(address(this).balance >= amount, "Address: insufficient balance");

            // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
            (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");
            return _functionCallWithValue(target, data, value, errorMessage);
        }

        function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
            require(isContract(target), "Address: call to non-contract");

            // solhint-disable-next-line avoid-low-level-calls
            (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
            if (success) {
                return returndata;
            } else {
                // Look for revert reason and bubble it up if present
                if (returndata.length > 0) {
                    // The easiest way to bubble the revert reason is using memory via assembly

                    // solhint-disable-next-line no-inline-assembly
                    assembly {
                        let returndata_size := mload(returndata)
                        revert(add(32, returndata), returndata_size)
                    }
                } else {
                    revert(errorMessage);
                }
            }
        }
    }

    contract Ownable is Context {
        address private _owner;
        address private _previousOwner;
        uint256 private _lockTime;

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

        function geUnlockTime() public view returns (uint256) {
            return _lockTime;
        }

        //Locks the contract for owner for the amount of time provided
        function lock(uint256 time) public virtual onlyOwner {
            _previousOwner = _owner;
            _owner = address(0);
            _lockTime = block.timestamp + time;
            emit OwnershipTransferred(_owner, address(0));
        }
        
        //Unlocks the contract for owner when _lockTime is exceeds
        function unlock() public virtual {
            require(_previousOwner == msg.sender, "You don't have permission to unlock");
            require(block.timestamp > _lockTime , "Contract is locked until 7 days");
            emit OwnershipTransferred(_owner, _previousOwner);
            _owner = _previousOwner;
        }
    }  

    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 Mint(address indexed sender, uint amount0, uint amount1);
        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 mint(address to) external returns (uint liquidity);
        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 implementation
    contract Vitalik is Context, IERC20, Ownable {
        using SafeMath for uint256;
        using Address for address; 

        mapping (address => uint256) private _rOwned;
        mapping (address => uint256) private _tOwned;
        mapping (address => mapping (address => uint256)) private _allowances;
        mapping (address => bool) private _isExcludedFromFee;

        mapping (address => bool) private _isExcluded;
        address[] private _excluded;
    
        uint256 private constant MAX = ~uint256(0);
        uint256 private _tTotal = 1_000_000_000_000* 10**9;
        uint256 private _rTotal = (MAX - (MAX % _tTotal));
        uint256 private _tFeeTotal;

        string private _name = 'Proof Of Vitalik';
        string private _symbol = 'ETH3.0';
        uint8 private _decimals = 9;
        
        uint256 public _liquidityFee = 0;
        uint256 private _taxFee = 0;
        uint256 private _previousTaxFee = _taxFee;
    
        address payable private _MarketingWalletAddress;
        
        IUniswapV2Router02 public immutable uniswapV2Router;
        address public immutable uniswapV2Pair;

        bool inSwap = false;
        bool public swapEnabled = true;

        uint256 private _maxTxAmount = _tTotal * 3 / 100;
        uint256 private _numOfTokensToExchangeForMarketing = 5 * 10**3 * 10**9;
        uint256 private _MevAntiBot = 16;
        uint256 private _previousMevAntiBot = _MevAntiBot; 

        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event SwapEnabledUpdated(bool enabled);

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

        constructor (address payable MarketingWalletAddress) public {
            _MarketingWalletAddress = MarketingWalletAddress;
            _rOwned[_msgSender()] = _rTotal;

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

            uniswapV2Router = _uniswapV2Router;

            _isExcludedFromFee[owner()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_MarketingWalletAddress] = true;
       

            emit Transfer(address(0), _msgSender(), _tTotal);
        }

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

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

        function decimals() public view returns (uint8) {
            return _decimals;
        }

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

        function balanceOf(address account) public view override returns (uint256) {
            if (_isExcluded[account]) return _tOwned[account];
            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 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;
        }

        function deliver(uint256 tAmount) public {
            address sender = _msgSender();
            require(!_isExcluded[sender], "Excluded addresses cannot call this function");
            (uint256 rAmount,,,,,) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rTotal = _rTotal.sub(rAmount);
            _tFeeTotal = _tFeeTotal.add(tAmount);
        }

        function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
            require(tAmount <= _tTotal, "Amount must be less than supply");
            if (!deductTransferFee) {
                (uint256 rAmount,,,,,) = _getValues(tAmount);
                return rAmount;
            } else {
                (,uint256 rTransferAmount,,,,) = _getValues(tAmount);
                return rTransferAmount;
            }
        }

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

        function excludeAccount(address account) external onlyOwner() {
            require(!_isExcluded[account], "Account is already excluded");
            if(_rOwned[account] > 0) {
                _tOwned[account] = tokenFromReflection(_rOwned[account]);
            }
            _isExcluded[account] = true;
            _excluded.push(account);
        }

        function includeAccount(address account) external onlyOwner() {
            require(_isExcluded[account], "Account is already excluded");
            for (uint256 i = 0; i < _excluded.length; i++) {
                if (_excluded[i] == account) {
                    _excluded[i] = _excluded[_excluded.length - 1];
                    _tOwned[account] = 0;
                    _isExcluded[account] = false;
                    _excluded.pop();
                    break;
                }
            }
        }

        function removeAllFee() private {
            if(_taxFee == 0 && _MevAntiBot == 0) return;
            
            _previousTaxFee = _taxFee;
            _previousMevAntiBot = _MevAntiBot;
            
            _taxFee = 0;
            _MevAntiBot = 0;
        }
    
        function restoreAllFee() private {
            _taxFee = _previousTaxFee;
            _MevAntiBot = _previousMevAntiBot;
        }
    
        function isExcludedFromFee(address account) public view returns(bool) {
            return _isExcludedFromFee[account];
        }

        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 sender, address recipient, uint256 amount) private {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");
            require(amount > 0, "Transfer amount must be greater than zero");
            
            if(sender != owner() && recipient != owner())
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

           
            uint256 contractTokenBalance = balanceOf(address(this));
            
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            bool overMinTokenBalance = contractTokenBalance >= _numOfTokensToExchangeForMarketing;
            if (!inSwap && swapEnabled && overMinTokenBalance && sender != uniswapV2Pair) {
               
                swapTokensForEth(contractTokenBalance);

            }
            
        
            bool takeFee = true;
            
      
            if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]){
                takeFee = false;
            }
            
      
            _tokenTransfer(sender,recipient,amount,takeFee);
        }

        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 sendETHToMarketing(uint256 amount) private {
            _MarketingWalletAddress.transfer(amount);
          
        }
        
        function manualSwap() external {
            uint256 contractBalance = balanceOf(address(this));
            swapTokensForEth(contractBalance);
        }
        
        function manualSend() external {
            uint256 contractETHBalance = address(this).balance;
            _MarketingWalletAddress.transfer(contractETHBalance);
        }
        
        function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
            if(!takeFee)
                removeAllFee();

            if (_isExcluded[sender] && !_isExcluded[recipient]) {
                _transferFromExcluded(sender, recipient, amount);
            } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
                _transferToExcluded(sender, recipient, amount);
            } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
                _transferStandard(sender, recipient, amount);
            } else if (_isExcluded[sender] && _isExcluded[recipient]) {
                _transferBothExcluded(sender, recipient, amount);
            } else {
                _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 tMarketing) = _getValues(tAmount);
            _rOwned[sender] = _rOwned[sender].sub(rAmount);
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
            _takeMarketing(tMarketing); 
            _reflectFee(rFee, tFee);
            emit Transfer(sender, recipient, tTransferAmount);
        }

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

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

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

        function _takeMarketing(uint256 tMarketing) private {
            uint256 currentRate =  _getRate();
            uint256 rMarketing = tMarketing.mul(currentRate);
            _rOwned[address(this)] = _rOwned[address(this)].add(rMarketing);
            if(_isExcluded[address(this)])
                _tOwned[address(this)] = _tOwned[address(this)].add(tMarketing);
        }

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

        receive() external payable {}

        function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
            (uint256 tTransferAmount, uint256 tFee, uint256 tMarketing) = _getTValues(tAmount, _taxFee, _MevAntiBot);
            uint256 currentRate =  _getRate();
            (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
            return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tMarketing);
        }

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

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

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

        function _getCurrentSupply() private view returns(uint256, uint256) {
            uint256 rSupply = _rTotal;
            uint256 tSupply = _tTotal;      
            for (uint256 i = 0; i < _excluded.length; i++) {
                if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
                rSupply = rSupply.sub(_rOwned[_excluded[i]]);
                tSupply = tSupply.sub(_tOwned[_excluded[i]]);
            }
            if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
            return (rSupply, tSupply);
        }

        function _getMaxTxAmount() public view returns(uint256) {
            return _maxTxAmount;
        }
        
        function _setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
            _maxTxAmount = maxTxAmount;
        }
   
    }

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"MarketingWalletAddress","type":"address"}],"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":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":"bool","name":"enabled","type":"bool"}],"name":"SwapEnabledUpdated","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":"_getMaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052683635c9adc5dea00000600981905562000021906000196200041c565b6200002f9060001962000449565b600a5560408051808201909152601081526f50726f6f66204f6620566974616c696b60801b6020820152600c906200006890826200050a565b506040805180820190915260068152650455448332e360d41b6020820152600d906200009590826200050a565b50600e805460ff191660099081179091556000600f81905560108190556011556012805461ffff60a01b1916600160a81b17905554606490620000da906003620005d6565b620000e69190620005f0565b60135565048c2739500060145560106015556015546016553480156200010b57600080fd5b50604051620029b6380380620029b68339810160408190526200012e9162000620565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601280546001600160a01b0319166001600160a01b038316179055600a5460036000620001993390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b919062000620565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af919062000620565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000323919062000620565b6001600160a01b0390811660a05281166080526001600660006200034f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526006909352818320805485166001908117909155601254909116835291208054909216179055620003ae3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620003f691815260200190565b60405180910390a3505062000647565b634e487b7160e01b600052601260045260246000fd5b6000826200042e576200042e62000406565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200045f576200045f62000433565b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200049057607f821691505b602082108103620004b157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200050557600081815260208120601f850160051c81016020861015620004e05750805b601f850160051c820191505b818110156200050157828155600101620004ec565b5050505b505050565b81516001600160401b0381111562000526576200052662000465565b6200053e816200053784546200047b565b84620004b7565b602080601f8311600181146200057657600084156200055d5750858301515b600019600386901b1c1916600185901b17855562000501565b600085815260208120601f198616915b82811015620005a75788860151825594840194600190910190840162000586565b5085821015620005c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200045f576200045f62000433565b60008262000602576200060262000406565b500490565b6001600160a01b03811681146200061d57600080fd5b50565b6000602082840312156200063357600080fd5b8151620006408162000607565b9392505050565b60805160a05161232d62000689600039600081816103a401526113ab015260008181610255015281816116530152818161170c0152611748015261232d6000f3fe6080604052600436106101dc5760003560e01c80636ddd171311610102578063b6c5232411610095578063f2fde38b11610064578063f2fde38b146105a3578063f4293890146105c3578063f7a91591146105d8578063f84354f1146105ed57600080fd5b8063b6c5232414610508578063dd4670641461051d578063dd62ed3e1461053d578063f2cc0c181461058357600080fd5b806395d89b41116100d157806395d89b411461049e578063a457c2d7146104b3578063a69df4b5146104d3578063a9059cbb146104e857600080fd5b80636ddd17131461042a57806370a082311461044b578063715018a61461046b5780638da5cb5b1461048057600080fd5b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461039257806351bc3c85146103c65780635342acb4146103db5780636bc87c3a1461041457600080fd5b8063313ce5671461031057806339509351146103325780633bd5d173146103525780634549b0391461037257600080fd5b806318160ddd116101b657806318160ddd1461028f5780631bbae6e0146102ae57806323b872dd146102d05780632d838119146102f057600080fd5b806306fdde03146101e8578063095ea7b3146102135780631694505e1461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61060d565b60405161020a9190611f6a565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611fcd565b61069f565b604051901515815260200161020a565b34801561024f57600080fd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b34801561029b57600080fd5b506009545b60405190815260200161020a565b3480156102ba57600080fd5b506102ce6102c9366004611ff9565b6106b6565b005b3480156102dc57600080fd5b506102336102eb366004612012565b6106ee565b3480156102fc57600080fd5b506102a061030b366004611ff9565b610757565b34801561031c57600080fd5b50600e5460405160ff909116815260200161020a565b34801561033e57600080fd5b5061023361034d366004611fcd565b6107db565b34801561035e57600080fd5b506102ce61036d366004611ff9565b610811565b34801561037e57600080fd5b506102a061038d366004612053565b6108fb565b34801561039e57600080fd5b506102777f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d257600080fd5b506102ce610988565b3480156103e757600080fd5b506102336103f6366004612088565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561042057600080fd5b506102a0600f5481565b34801561043657600080fd5b5060125461023390600160a81b900460ff1681565b34801561045757600080fd5b506102a0610466366004612088565b6109a1565b34801561047757600080fd5b506102ce610a00565b34801561048c57600080fd5b506000546001600160a01b0316610277565b3480156104aa57600080fd5b506101fd610a62565b3480156104bf57600080fd5b506102336104ce366004611fcd565b610a71565b3480156104df57600080fd5b506102ce610ac0565b3480156104f457600080fd5b50610233610503366004611fcd565b610bc6565b34801561051457600080fd5b506002546102a0565b34801561052957600080fd5b506102ce610538366004611ff9565b610bd3565b34801561054957600080fd5b506102a06105583660046120a5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561058f57600080fd5b506102ce61059e366004612088565b610c58565b3480156105af57600080fd5b506102ce6105be366004612088565b610dab565b3480156105cf57600080fd5b506102ce610e83565b3480156105e457600080fd5b506013546102a0565b3480156105f957600080fd5b506102ce610608366004612088565b610ec1565b6060600c805461061c906120d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610648906120d3565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106ac338484611073565b5060015b92915050565b6000546001600160a01b031633146106e95760405162461bcd60e51b81526004016106e09061210d565b60405180910390fd5b601355565b60006106fb848484611197565b61074d84336107488560405180606001604052806028815260200161228b602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061144d565b611073565b5060019392505050565b6000600a548211156107be5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e0565b60006107c8611487565b90506107d483826114aa565b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ac91859061074890866114ec565b3360008181526007602052604090205460ff16156108865760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016106e0565b60006108918361154b565b505050506001600160a01b0384166000908152600360205260409020549192506108bd919050826115a7565b6001600160a01b038316600090815260036020526040902055600a546108e390826115a7565b600a55600b546108f390846114ec565b600b55505050565b600060095483111561094f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106e0565b8161096e57600061095f8461154b565b509395506106b0945050505050565b60006109798461154b565b509295506106b0945050505050565b6000610993306109a1565b905061099e816115e9565b50565b6001600160a01b03811660009081526007602052604081205460ff16156109de57506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546106b090610757565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016106e09061210d565b600080546040516001600160a01b03909116906000805160206122b3833981519152908390a3600080546001600160a01b0319169055565b6060600d805461061c906120d3565b60006106ac3384610748856040518060600160405280602581526020016122d3602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061144d565b6001546001600160a01b03163314610b265760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016106e0565b6002544211610b775760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016106e0565b600154600080546040516001600160a01b0393841693909116916000805160206122b383398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006106ac338484611197565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016106e09061210d565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610c2c8142612158565b600255600080546040516001600160a01b03909116906000805160206122b3833981519152908390a350565b6000546001600160a01b03163314610c825760405162461bcd60e51b81526004016106e09061210d565b6001600160a01b03811660009081526007602052604090205460ff1615610ceb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b6001600160a01b03811660009081526003602052604090205415610d45576001600160a01b038116600090815260036020526040902054610d2b90610757565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610dd55760405162461bcd60e51b81526004016106e09061210d565b6001600160a01b038116610e3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e0565b600080546040516001600160a01b03808516939216916000805160206122b383398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60125460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebd573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016106e09061210d565b6001600160a01b03811660009081526007602052604090205460ff16610f535760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b60005b600854811015610ebd57816001600160a01b031660088281548110610f7d57610f7d61216b565b6000918252602090912001546001600160a01b0316036110615760088054610fa790600190612181565b81548110610fb757610fb761216b565b600091825260209091200154600880546001600160a01b039092169183908110610fe357610fe361216b565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600880548061103b5761103b612194565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061106b816121aa565b915050610f56565b6001600160a01b0383166110d55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e0565b6001600160a01b0382166111365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e0565b6001600160a01b03821661125d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e0565b600081116112bf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e0565b6000546001600160a01b038481169116148015906112eb57506000546001600160a01b03838116911614155b15611353576013548111156113535760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106e0565b600061135e306109a1565b9050601354811061136e57506013545b6014546012549082101590600160a01b900460ff161580156113995750601254600160a81b900460ff165b80156113a25750805b80156113e057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b156113ee576113ee826115e9565b6001600160a01b03851660009081526006602052604090205460019060ff168061143057506001600160a01b03851660009081526006602052604090205460ff165b15611439575060005b611445868686846117c9565b505050505050565b600081848411156114715760405162461bcd60e51b81526004016106e09190611f6a565b50600061147e8486612181565b95945050505050565b6000806000611494611946565b90925090506114a382826114aa565b9250505090565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac8565b6000806114f98385612158565b9050838110156107d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e0565b60008060008060008060008060006115688a601054601554611af6565b9250925092506000611578611487565b9050600080600061158a8e8786611b4b565b919e509c509a509598509396509194505050505091939550919395565b60006107d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061144d565b6012805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116315761163161216b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d391906121c3565b816001815181106116e6576116e661216b565b60200260200101906001600160a01b031690816001600160a01b031681525050611731307f000000000000000000000000000000000000000000000000000000000000000084611073565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906117869085906000908690309042906004016121e0565b600060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b50506012805460ff60a01b1916905550505050565b806117d6576117d6611b87565b6001600160a01b03841660009081526007602052604090205460ff16801561181757506001600160a01b03831660009081526007602052604090205460ff16155b1561182c57611827848484611bb5565b61192a565b6001600160a01b03841660009081526007602052604090205460ff1615801561186d57506001600160a01b03831660009081526007602052604090205460ff165b1561187d57611827848484611cdb565b6001600160a01b03841660009081526007602052604090205460ff161580156118bf57506001600160a01b03831660009081526007602052604090205460ff16155b156118cf57611827848484611d84565b6001600160a01b03841660009081526007602052604090205460ff16801561190f57506001600160a01b03831660009081526007602052604090205460ff165b1561191f57611827848484611dc8565b61192a848484611d84565b8061194057611940601154601055601654601555565b50505050565b600a546009546000918291825b600854811015611a98578260036000600884815481106119755761197561216b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806119e057508160046000600884815481106119b9576119b961216b565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156119f657600a54600954945094505050509091565b611a3c6003600060088481548110611a1057611a1061216b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906115a7565b9250611a846004600060088481548110611a5857611a5861216b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906115a7565b915080611a90816121aa565b915050611953565b50600954600a54611aa8916114aa565b821015611abf57600a546009549350935050509091565b90939092509050565b60008183611ae95760405162461bcd60e51b81526004016106e09190611f6a565b50600061147e8486612251565b6000808080611b106064611b0a8989611e3b565b906114aa565b90506000611b236064611b0a8a89611e3b565b90506000611b3b82611b358b866115a7565b906115a7565b9992985090965090945050505050565b6000808080611b5a8786611e3b565b90506000611b688787611e3b565b90506000611b7683836115a7565b929992985090965090945050505050565b601054158015611b975750601554155b15611b9e57565b601080546011556015805460165560009182905555565b600080600080600080611bc78761154b565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611bf990886115a7565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611c2890876115a7565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611c5790866114ec565b6001600160a01b038916600090815260036020526040902055611c7981611ebd565b611c838483611f46565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cc891815260200190565b60405180910390a3505050505050505050565b600080600080600080611ced8761154b565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611d1f90876115a7565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054611d5590846114ec565b6001600160a01b038916600090815260046020908152604080832093909355600390522054611c5790866114ec565b600080600080600080611d968761154b565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c2890876115a7565b600080600080600080611dda8761154b565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611e0c90886115a7565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611d1f90876115a7565b600082600003611e4d575060006106b0565b6000611e598385612273565b905082611e668583612251565b146107d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e0565b6000611ec7611487565b90506000611ed58383611e3b565b30600090815260036020526040902054909150611ef290826114ec565b3060009081526003602090815260408083209390935560079052205460ff1615611f415730600090815260046020526040902054611f3090846114ec565b306000908152600460205260409020555b505050565b600a54611f5390836115a7565b600a55600b54611f6390826114ec565b600b555050565b600060208083528351808285015260005b81811015611f9757858101830151858201604001528201611f7b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461099e57600080fd5b60008060408385031215611fe057600080fd5b8235611feb81611fb8565b946020939093013593505050565b60006020828403121561200b57600080fd5b5035919050565b60008060006060848603121561202757600080fd5b833561203281611fb8565b9250602084013561204281611fb8565b929592945050506040919091013590565b6000806040838503121561206657600080fd5b823591506020830135801515811461207d57600080fd5b809150509250929050565b60006020828403121561209a57600080fd5b81356107d481611fb8565b600080604083850312156120b857600080fd5b82356120c381611fb8565b9150602083013561207d81611fb8565b600181811c908216806120e757607f821691505b60208210810361210757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b0576106b0612142565b634e487b7160e01b600052603260045260246000fd5b818103818111156106b0576106b0612142565b634e487b7160e01b600052603160045260246000fd5b6000600182016121bc576121bc612142565b5060010190565b6000602082840312156121d557600080fd5b81516107d481611fb8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122305784516001600160a01b03168352938301939183019160010161220b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261226e57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176106b0576106b061214256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b58c9398f91778a82e53ec5a59cc6f1c0b44240f82154b0b1b15f62df1f583264736f6c63430008110033000000000000000000000000f394299fce615e78388ddbd1649cca7d19a5ec34

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80636ddd171311610102578063b6c5232411610095578063f2fde38b11610064578063f2fde38b146105a3578063f4293890146105c3578063f7a91591146105d8578063f84354f1146105ed57600080fd5b8063b6c5232414610508578063dd4670641461051d578063dd62ed3e1461053d578063f2cc0c181461058357600080fd5b806395d89b41116100d157806395d89b411461049e578063a457c2d7146104b3578063a69df4b5146104d3578063a9059cbb146104e857600080fd5b80636ddd17131461042a57806370a082311461044b578063715018a61461046b5780638da5cb5b1461048057600080fd5b8063313ce5671161017a57806349bd5a5e1161014957806349bd5a5e1461039257806351bc3c85146103c65780635342acb4146103db5780636bc87c3a1461041457600080fd5b8063313ce5671461031057806339509351146103325780633bd5d173146103525780634549b0391461037257600080fd5b806318160ddd116101b657806318160ddd1461028f5780631bbae6e0146102ae57806323b872dd146102d05780632d838119146102f057600080fd5b806306fdde03146101e8578063095ea7b3146102135780631694505e1461024357600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd61060d565b60405161020a9190611f6a565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611fcd565b61069f565b604051901515815260200161020a565b34801561024f57600080fd5b506102777f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161020a565b34801561029b57600080fd5b506009545b60405190815260200161020a565b3480156102ba57600080fd5b506102ce6102c9366004611ff9565b6106b6565b005b3480156102dc57600080fd5b506102336102eb366004612012565b6106ee565b3480156102fc57600080fd5b506102a061030b366004611ff9565b610757565b34801561031c57600080fd5b50600e5460405160ff909116815260200161020a565b34801561033e57600080fd5b5061023361034d366004611fcd565b6107db565b34801561035e57600080fd5b506102ce61036d366004611ff9565b610811565b34801561037e57600080fd5b506102a061038d366004612053565b6108fb565b34801561039e57600080fd5b506102777f00000000000000000000000071bb64fafe4c9ab77c44e6bd52e2aca63deebdf981565b3480156103d257600080fd5b506102ce610988565b3480156103e757600080fd5b506102336103f6366004612088565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561042057600080fd5b506102a0600f5481565b34801561043657600080fd5b5060125461023390600160a81b900460ff1681565b34801561045757600080fd5b506102a0610466366004612088565b6109a1565b34801561047757600080fd5b506102ce610a00565b34801561048c57600080fd5b506000546001600160a01b0316610277565b3480156104aa57600080fd5b506101fd610a62565b3480156104bf57600080fd5b506102336104ce366004611fcd565b610a71565b3480156104df57600080fd5b506102ce610ac0565b3480156104f457600080fd5b50610233610503366004611fcd565b610bc6565b34801561051457600080fd5b506002546102a0565b34801561052957600080fd5b506102ce610538366004611ff9565b610bd3565b34801561054957600080fd5b506102a06105583660046120a5565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561058f57600080fd5b506102ce61059e366004612088565b610c58565b3480156105af57600080fd5b506102ce6105be366004612088565b610dab565b3480156105cf57600080fd5b506102ce610e83565b3480156105e457600080fd5b506013546102a0565b3480156105f957600080fd5b506102ce610608366004612088565b610ec1565b6060600c805461061c906120d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610648906120d3565b80156106955780601f1061066a57610100808354040283529160200191610695565b820191906000526020600020905b81548152906001019060200180831161067857829003601f168201915b5050505050905090565b60006106ac338484611073565b5060015b92915050565b6000546001600160a01b031633146106e95760405162461bcd60e51b81526004016106e09061210d565b60405180910390fd5b601355565b60006106fb848484611197565b61074d84336107488560405180606001604052806028815260200161228b602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061144d565b611073565b5060019392505050565b6000600a548211156107be5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e0565b60006107c8611487565b90506107d483826114aa565b9392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106ac91859061074890866114ec565b3360008181526007602052604090205460ff16156108865760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016106e0565b60006108918361154b565b505050506001600160a01b0384166000908152600360205260409020549192506108bd919050826115a7565b6001600160a01b038316600090815260036020526040902055600a546108e390826115a7565b600a55600b546108f390846114ec565b600b55505050565b600060095483111561094f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016106e0565b8161096e57600061095f8461154b565b509395506106b0945050505050565b60006109798461154b565b509295506106b0945050505050565b6000610993306109a1565b905061099e816115e9565b50565b6001600160a01b03811660009081526007602052604081205460ff16156109de57506001600160a01b031660009081526004602052604090205490565b6001600160a01b0382166000908152600360205260409020546106b090610757565b6000546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016106e09061210d565b600080546040516001600160a01b03909116906000805160206122b3833981519152908390a3600080546001600160a01b0319169055565b6060600d805461061c906120d3565b60006106ac3384610748856040518060600160405280602581526020016122d3602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061144d565b6001546001600160a01b03163314610b265760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016106e0565b6002544211610b775760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016106e0565b600154600080546040516001600160a01b0393841693909116916000805160206122b383398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b60006106ac338484611197565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b81526004016106e09061210d565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055610c2c8142612158565b600255600080546040516001600160a01b03909116906000805160206122b3833981519152908390a350565b6000546001600160a01b03163314610c825760405162461bcd60e51b81526004016106e09061210d565b6001600160a01b03811660009081526007602052604090205460ff1615610ceb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b6001600160a01b03811660009081526003602052604090205415610d45576001600160a01b038116600090815260036020526040902054610d2b90610757565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610dd55760405162461bcd60e51b81526004016106e09061210d565b6001600160a01b038116610e3a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e0565b600080546040516001600160a01b03808516939216916000805160206122b383398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60125460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebd573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016106e09061210d565b6001600160a01b03811660009081526007602052604090205460ff16610f535760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106e0565b60005b600854811015610ebd57816001600160a01b031660088281548110610f7d57610f7d61216b565b6000918252602090912001546001600160a01b0316036110615760088054610fa790600190612181565b81548110610fb757610fb761216b565b600091825260209091200154600880546001600160a01b039092169183908110610fe357610fe361216b565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff19169055600880548061103b5761103b612194565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061106b816121aa565b915050610f56565b6001600160a01b0383166110d55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e0565b6001600160a01b0382166111365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e0565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e0565b6001600160a01b03821661125d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e0565b600081116112bf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e0565b6000546001600160a01b038481169116148015906112eb57506000546001600160a01b03838116911614155b15611353576013548111156113535760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106e0565b600061135e306109a1565b9050601354811061136e57506013545b6014546012549082101590600160a01b900460ff161580156113995750601254600160a81b900460ff165b80156113a25750805b80156113e057507f00000000000000000000000071bb64fafe4c9ab77c44e6bd52e2aca63deebdf96001600160a01b0316856001600160a01b031614155b156113ee576113ee826115e9565b6001600160a01b03851660009081526006602052604090205460019060ff168061143057506001600160a01b03851660009081526006602052604090205460ff165b15611439575060005b611445868686846117c9565b505050505050565b600081848411156114715760405162461bcd60e51b81526004016106e09190611f6a565b50600061147e8486612181565b95945050505050565b6000806000611494611946565b90925090506114a382826114aa565b9250505090565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac8565b6000806114f98385612158565b9050838110156107d45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e0565b60008060008060008060008060006115688a601054601554611af6565b9250925092506000611578611487565b9050600080600061158a8e8786611b4b565b919e509c509a509598509396509194505050505091939550919395565b60006107d483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061144d565b6012805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116315761163161216b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d391906121c3565b816001815181106116e6576116e661216b565b60200260200101906001600160a01b031690816001600160a01b031681525050611731307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611073565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906117869085906000908690309042906004016121e0565b600060405180830381600087803b1580156117a057600080fd5b505af11580156117b4573d6000803e3d6000fd5b50506012805460ff60a01b1916905550505050565b806117d6576117d6611b87565b6001600160a01b03841660009081526007602052604090205460ff16801561181757506001600160a01b03831660009081526007602052604090205460ff16155b1561182c57611827848484611bb5565b61192a565b6001600160a01b03841660009081526007602052604090205460ff1615801561186d57506001600160a01b03831660009081526007602052604090205460ff165b1561187d57611827848484611cdb565b6001600160a01b03841660009081526007602052604090205460ff161580156118bf57506001600160a01b03831660009081526007602052604090205460ff16155b156118cf57611827848484611d84565b6001600160a01b03841660009081526007602052604090205460ff16801561190f57506001600160a01b03831660009081526007602052604090205460ff165b1561191f57611827848484611dc8565b61192a848484611d84565b8061194057611940601154601055601654601555565b50505050565b600a546009546000918291825b600854811015611a98578260036000600884815481106119755761197561216b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806119e057508160046000600884815481106119b9576119b961216b565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156119f657600a54600954945094505050509091565b611a3c6003600060088481548110611a1057611a1061216b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906115a7565b9250611a846004600060088481548110611a5857611a5861216b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906115a7565b915080611a90816121aa565b915050611953565b50600954600a54611aa8916114aa565b821015611abf57600a546009549350935050509091565b90939092509050565b60008183611ae95760405162461bcd60e51b81526004016106e09190611f6a565b50600061147e8486612251565b6000808080611b106064611b0a8989611e3b565b906114aa565b90506000611b236064611b0a8a89611e3b565b90506000611b3b82611b358b866115a7565b906115a7565b9992985090965090945050505050565b6000808080611b5a8786611e3b565b90506000611b688787611e3b565b90506000611b7683836115a7565b929992985090965090945050505050565b601054158015611b975750601554155b15611b9e57565b601080546011556015805460165560009182905555565b600080600080600080611bc78761154b565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611bf990886115a7565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611c2890876115a7565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611c5790866114ec565b6001600160a01b038916600090815260036020526040902055611c7981611ebd565b611c838483611f46565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cc891815260200190565b60405180910390a3505050505050505050565b600080600080600080611ced8761154b565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611d1f90876115a7565b6001600160a01b03808b16600090815260036020908152604080832094909455918b16815260049091522054611d5590846114ec565b6001600160a01b038916600090815260046020908152604080832093909355600390522054611c5790866114ec565b600080600080600080611d968761154b565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611c2890876115a7565b600080600080600080611dda8761154b565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150611e0c90886115a7565b6001600160a01b038a16600090815260046020908152604080832093909355600390522054611d1f90876115a7565b600082600003611e4d575060006106b0565b6000611e598385612273565b905082611e668583612251565b146107d45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e0565b6000611ec7611487565b90506000611ed58383611e3b565b30600090815260036020526040902054909150611ef290826114ec565b3060009081526003602090815260408083209390935560079052205460ff1615611f415730600090815260046020526040902054611f3090846114ec565b306000908152600460205260409020555b505050565b600a54611f5390836115a7565b600a55600b54611f6390826114ec565b600b555050565b600060208083528351808285015260005b81811015611f9757858101830151858201604001528201611f7b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461099e57600080fd5b60008060408385031215611fe057600080fd5b8235611feb81611fb8565b946020939093013593505050565b60006020828403121561200b57600080fd5b5035919050565b60008060006060848603121561202757600080fd5b833561203281611fb8565b9250602084013561204281611fb8565b929592945050506040919091013590565b6000806040838503121561206657600080fd5b823591506020830135801515811461207d57600080fd5b809150509250929050565b60006020828403121561209a57600080fd5b81356107d481611fb8565b600080604083850312156120b857600080fd5b82356120c381611fb8565b9150602083013561207d81611fb8565b600181811c908216806120e757607f821691505b60208210810361210757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106b0576106b0612142565b634e487b7160e01b600052603260045260246000fd5b818103818111156106b0576106b0612142565b634e487b7160e01b600052603160045260246000fd5b6000600182016121bc576121bc612142565b5060010190565b6000602082840312156121d557600080fd5b81516107d481611fb8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122305784516001600160a01b03168352938301939183019160010161220b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261226e57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176106b0576106b061214256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b58c9398f91778a82e53ec5a59cc6f1c0b44240f82154b0b1b15f62df1f583264736f6c63430008110033

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

000000000000000000000000f394299fce615e78388ddbd1649cca7d19a5ec34

-----Decoded View---------------
Arg [0] : MarketingWalletAddress (address): 0xf394299FCE615E78388ddBd1649CcA7D19a5eC34

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f394299fce615e78388ddbd1649cca7d19a5ec34


Deployed Bytecode Sourcemap

17079:16330:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19554:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20550:173;;;;;;;;;;-1:-1:-1;20550:173:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;20550:173:0;1023:187:1;18130:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;18130:51:0;1215:230:1;19867:103:0;;;;;;;;;;-1:-1:-1;19951:7:0;;19867:103;;;1596:25:1;;;1584:2;1569:18;19867:103:0;1450:177:1;33277:120:0;;;;;;;;;;-1:-1:-1;33277:120:0;;;;;:::i;:::-;;:::i;:::-;;20735:329;;;;;;;;;;-1:-1:-1;20735:329:0;;;;;:::i;:::-;;:::i;22512:269::-;;;;;;;;;;-1:-1:-1;22512:269:0;;;;;:::i;:::-;;:::i;19764:91::-;;;;;;;;;;-1:-1:-1;19834:9:0;;19764:91;;19834:9;;;;2420:36:1;;2408:2;2393:18;19764:91:0;2278:184:1;21076:230:0;;;;;;;;;;-1:-1:-1;21076:230:0;;;;;:::i;:::-;;:::i;21611:405::-;;;;;;;;;;-1:-1:-1;21611:405:0;;;;;:::i;:::-;;:::i;22028:472::-;;;;;;;;;;-1:-1:-1;22028:472:0;;;;;:::i;:::-;;:::i;18192:38::-;;;;;;;;;;;;;;;26723:156;;;;;;;;;;;;;:::i;24138:131::-;;;;;;;;;;-1:-1:-1;24138:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;24230:27:0;24202:4;24230:27;;;:18;:27;;;;;;;;;24138:131;17923:32;;;;;;;;;;;;;;;;18273:30;;;;;;;;;;-1:-1:-1;18273:30:0;;;;-1:-1:-1;;;18273:30:0;;;;;;19982:210;;;;;;;;;;-1:-1:-1;19982:210:0;;;;;:::i;:::-;;:::i;7050:160::-;;;;;;;;;;;;;:::i;6808:87::-;;;;;;;;;;-1:-1:-1;6846:7:0;6877:6;-1:-1:-1;;;;;6877:6:0;6808:87;;19657:95;;;;;;;;;;;;;:::i;21318:281::-;;;;;;;;;;-1:-1:-1;21318:281:0;;;;;:::i;:::-;;:::i;8009:325::-;;;;;;;;;;;;;:::i;20204:171::-;;;;;;;;;;-1:-1:-1;20204:171:0;;;;;:::i;:::-;;:::i;7494:97::-;;;;;;;;;;-1:-1:-1;7570:9:0;;7494:97;;7675:246;;;;;;;;;;-1:-1:-1;7675:246:0;;;;;:::i;:::-;;:::i;20387:151::-;;;;;;;;;;-1:-1:-1;20387:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;20499:18:0;;;20468:7;20499:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20387:151;22793:360;;;;;;;;;;-1:-1:-1;22793:360:0;;;;;:::i;:::-;;:::i;7222:260::-;;;;;;;;;;-1:-1:-1;7222:260:0;;;;;:::i;:::-;;:::i;26899:175::-;;;;;;;;;;;;;:::i;33155:102::-;;;;;;;;;;-1:-1:-1;33233:12:0;;33155:102;;23165:522;;;;;;;;;;-1:-1:-1;23165:522:0;;;;;:::i;:::-;;:::i;19554:91::-;19591:13;19628:5;19621:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19554:91;:::o;20550:173::-;20625:4;20646:39;250:10;20669:7;20678:6;20646:8;:39::i;:::-;-1:-1:-1;20707:4:0;20550:173;;;;;:::o;33277:120::-;6951:6;;-1:-1:-1;;;;;6951:6:0;250:10;6951:22;6943:67;;;;-1:-1:-1;;;6943:67:0;;;;;;;:::i;:::-;;;;;;;;;33359:12:::1;:26:::0;33277:120::o;20735:329::-;20833:4;20854:36;20864:6;20872:9;20883:6;20854:9;:36::i;:::-;20905:121;20914:6;250:10;20936:89;20974:6;20936:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20936:19:0;;;;;;:11;:19;;;;;;;;250:10;20936:33;;;;;;;;;;:37;:89::i;:::-;20905:8;:121::i;:::-;-1:-1:-1;21048:4:0;20735:329;;;;;:::o;22512:269::-;22578:7;22621;;22610;:18;;22602:73;;;;-1:-1:-1;;;22602:73:0;;4614:2:1;22602:73:0;;;4596:21:1;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:40;4793:19;;22602:73:0;4412:406:1;22602:73:0;22690:19;22713:10;:8;:10::i;:::-;22690:33;-1:-1:-1;22745:24:0;:7;22690:33;22745:11;:24::i;:::-;22738:31;22512:269;-1:-1:-1;;;22512:269:0:o;21076:230::-;250:10;21164:4;21217:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21217:34:0;;;;;;;;;;21164:4;;21185:83;;21208:7;;21217:50;;21256:10;21217:38;:50::i;21611:405::-;250:10;21667:14;21720:19;;;:11;:19;;;;;;;;21719:20;21711:77;;;;-1:-1:-1;;;21711:77:0;;5025:2:1;21711:77:0;;;5007:21:1;5064:2;5044:18;;;5037:30;5103:34;5083:18;;;5076:62;-1:-1:-1;;;5154:18:1;;;5147:42;5206:19;;21711:77:0;4823:408:1;21711:77:0;21804:15;21828:19;21839:7;21828:10;:19::i;:::-;-1:-1:-1;;;;;;;;;21880:15:0;;;;;;:7;:15;;;;;;21803:44;;-1:-1:-1;21880:28:0;;:15;-1:-1:-1;21803:44:0;21880:19;:28::i;:::-;-1:-1:-1;;;;;21862:15:0;;;;;;:7;:15;;;;;:46;21933:7;;:20;;21945:7;21933:11;:20::i;:::-;21923:7;:30;21981:10;;:23;;21996:7;21981:14;:23::i;:::-;21968:10;:36;-1:-1:-1;;;21611:405:0:o;22028:472::-;22118:7;22161;;22150;:18;;22142:62;;;;-1:-1:-1;;;22142:62:0;;5438:2:1;22142:62:0;;;5420:21:1;5477:2;5457:18;;;5450:30;5516:33;5496:18;;;5489:61;5567:18;;22142:62:0;5236:355:1;22142:62:0;22224:17;22219:270;;22263:15;22287:19;22298:7;22287:10;:19::i;:::-;-1:-1:-1;22262:44:0;;-1:-1:-1;22325:14:0;;-1:-1:-1;;;;;22325:14:0;22219:270;22382:23;22413:19;22424:7;22413:10;:19::i;:::-;-1:-1:-1;22380:52:0;;-1:-1:-1;22451:22:0;;-1:-1:-1;;;;;22451:22:0;26723:156;26769:23;26795:24;26813:4;26795:9;:24::i;:::-;26769:50;;26834:33;26851:15;26834:16;:33::i;:::-;26754:125;26723:156::o;19982:210::-;-1:-1:-1;;;;;20076:20:0;;20048:7;20076:20;;;:11;:20;;;;;;;;20072:49;;;-1:-1:-1;;;;;;20105:16:0;;;;;:7;:16;;;;;;;19982:210::o;20072:49::-;-1:-1:-1;;;;;20163:16:0;;;;;;:7;:16;;;;;;20143:37;;:19;:37::i;7050:160::-;6951:6;;-1:-1:-1;;;;;6951:6:0;250:10;6951:22;6943:67;;;;-1:-1:-1;;;6943:67:0;;;;;;;:::i;:::-;7161:1:::1;7145:6:::0;;7124:40:::1;::::0;-1:-1:-1;;;;;7145:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7124:40:0;7161:1;;7124:40:::1;7196:1;7179:19:::0;;-1:-1:-1;;;;;;7179:19:0::1;::::0;;7050:160::o;19657:95::-;19696:13;19733:7;19726:14;;;;;:::i;21318:281::-;21411:4;21432:129;250:10;21455:7;21464:96;21503:15;21464:96;;;;;;;;;;;;;;;;;250:10;21464:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21464:34:0;;;;;;;;;;;;:38;:96::i;8009:325::-;8065:14;;-1:-1:-1;;;;;8065:14:0;8083:10;8065:28;8057:76;;;;-1:-1:-1;;;8057:76:0;;5798:2:1;8057:76:0;;;5780:21:1;5837:2;5817:18;;;5810:30;5876:34;5856:18;;;5849:62;-1:-1:-1;;;5927:18:1;;;5920:33;5970:19;;8057:76:0;5596:399:1;8057:76:0;8174:9;;8156:15;:27;8148:72;;;;-1:-1:-1;;;8148:72:0;;6202:2:1;8148:72:0;;;6184:21:1;6241:2;6221:18;;;6214:30;6280:33;6260:18;;;6253:61;6331:18;;8148:72:0;6000:355:1;8148:72:0;8269:14;;;8261:6;;8240:44;;-1:-1:-1;;;;;8269:14:0;;;;8261:6;;;;-1:-1:-1;;;;;;;;;;;8240:44:0;;8308:14;;;8299:23;;-1:-1:-1;;;;;;8299:23:0;-1:-1:-1;;;;;8308:14:0;;;8299:23;;;;;;8009:325::o;20204:171::-;20282:4;20299:42;250:10;20323:9;20334:6;20299:9;:42::i;7675:246::-;6951:6;;-1:-1:-1;;;;;6951:6:0;250:10;6951:22;6943:67;;;;-1:-1:-1;;;6943:67:0;;;;;;;:::i;:::-;7760:6:::1;::::0;;;7743:23;;-1:-1:-1;;;;;;7743:23:0;;::::1;-1:-1:-1::0;;;;;7760:6:0;::::1;7743:23;::::0;;;7781:19:::1;::::0;;7827:22:::1;7845:4:::0;7827:15:::1;:22;:::i;:::-;7815:9;:34:::0;7906:1:::1;7890:6:::0;;7869:40:::1;::::0;-1:-1:-1;;;;;7890:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7869:40:0;7906:1;;7869:40:::1;7675:246:::0;:::o;22793:360::-;6951:6;;-1:-1:-1;;;;;6951:6:0;250:10;6951:22;6943:67;;;;-1:-1:-1;;;6943:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22879:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22878:21;22870:61;;;::::0;-1:-1:-1;;;22870:61:0;;6824:2:1;22870:61:0::1;::::0;::::1;6806:21:1::0;6863:2;6843:18;;;6836:30;6902:29;6882:18;;;6875:57;6949:18;;22870:61:0::1;6622:351:1::0;22870:61:0::1;-1:-1:-1::0;;;;;22949:16:0;::::1;22968:1;22949:16:::0;;;:7:::1;:16;::::0;;;;;:20;22946:116:::1;;-1:-1:-1::0;;;;;23029:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;23009:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22990:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22946:116:::1;-1:-1:-1::0;;;;;23076:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;23076:27:0::1;23099:4;23076:27:::0;;::::1;::::0;;;23118:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;23118:23:0::1;::::0;;::::1;::::0;;22793:360::o;7222:260::-;6951:6;;-1:-1:-1;;;;;6951:6:0;250:10;6951:22;6943:67;;;;-1:-1:-1;;;6943:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7315:22:0;::::1;7307:73;;;::::0;-1:-1:-1;;;7307:73:0;;7180:2:1;7307:73:0::1;::::0;::::1;7162:21:1::0;7219:2;7199:18;;;7192:30;7258:34;7238:18;;;7231:62;-1:-1:-1;;;7309:18:1;;;7302:36;7355:19;;7307:73:0::1;6978:402:1::0;7307:73:0::1;7421:6;::::0;;7400:38:::1;::::0;-1:-1:-1;;;;;7400:38:0;;::::1;::::0;7421:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;7400:38:0;::::1;7453:6;:17:::0;;-1:-1:-1;;;;;;7453:17:0::1;-1:-1:-1::0;;;;;7453:17:0;;;::::1;::::0;;;::::1;::::0;;7222:260::o;26899:175::-;27010:23;;:52;;26974:21;;-1:-1:-1;;;;;27010:23:0;;:52;;;;;26974:21;;26945:26;27010:52;26945:26;27010:52;26974:21;27010:23;:52;;;;;;;;;;;;;;;;;;;;;26930:144;26899:175::o;23165:522::-;6951:6;;-1:-1:-1;;;;;6951:6:0;250:10;6951:22;6943:67;;;;-1:-1:-1;;;6943:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23250:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;23242:60;;;::::0;-1:-1:-1;;;23242:60:0;;6824:2:1;23242:60:0::1;::::0;::::1;6806:21:1::0;6863:2;6843:18;;;6836:30;6902:29;6882:18;;;6875:57;6949:18;;23242:60:0::1;6622:351:1::0;23242:60:0::1;23322:9;23317:359;23341:9;:16:::0;23337:20;::::1;23317:359;;;23403:7;-1:-1:-1::0;;;;;23387:23:0::1;:9;23397:1;23387:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;23387:12:0::1;:23:::0;23383:278:::1;;23450:9;23460:16:::0;;:20:::1;::::0;23479:1:::1;::::0;23460:20:::1;:::i;:::-;23450:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;23435:9:::1;:12:::0;;-1:-1:-1;;;;;23450:31:0;;::::1;::::0;23445:1;;23435:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;23435:46:0::1;-1:-1:-1::0;;;;;23435:46:0;;::::1;;::::0;;23504:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;23547:11:::1;:20:::0;;;;:28;;-1:-1:-1;;23547:28:0::1;::::0;;23598:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;23598:15:0;;;;;-1:-1:-1;;;;;;23598:15:0::1;::::0;;;;;27010:52;26930:144;26899:175::o;23383:278::-:1;23359:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23317:359;;24281:357:::0;-1:-1:-1;;;;;24378:19:0;;24370:68;;;;-1:-1:-1;;;24370:68:0;;8124:2:1;24370:68:0;;;8106:21:1;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:34;8297:19;;24370:68:0;7922:400:1;24370:68:0;-1:-1:-1;;;;;24461:21:0;;24453:68;;;;-1:-1:-1;;;24453:68:0;;8529:2:1;24453:68:0;;;8511:21:1;8568:2;8548:18;;;8541:30;8607:34;8587:18;;;8580:62;-1:-1:-1;;;8658:18:1;;;8651:32;8700:19;;24453:68:0;8327:398:1;24453:68:0;-1:-1:-1;;;;;24538:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24594:32;;1596:25:1;;;24594:32:0;;1569:18:1;24594:32:0;;;;;;;24281:357;;;:::o;24650:1333::-;-1:-1:-1;;;;;24751:20:0;;24743:70;;;;-1:-1:-1;;;24743:70:0;;8932:2:1;24743:70:0;;;8914:21:1;8971:2;8951:18;;;8944:30;9010:34;8990:18;;;8983:62;-1:-1:-1;;;9061:18:1;;;9054:35;9106:19;;24743:70:0;8730:401:1;24743:70:0;-1:-1:-1;;;;;24836:23:0;;24828:71;;;;-1:-1:-1;;;24828:71:0;;9338:2:1;24828:71:0;;;9320:21:1;9377:2;9357:18;;;9350:30;9416:34;9396:18;;;9389:62;-1:-1:-1;;;9467:18:1;;;9460:33;9510:19;;24828:71:0;9136:399:1;24828:71:0;24931:1;24922:6;:10;24914:64;;;;-1:-1:-1;;;24914:64:0;;9742:2:1;24914:64:0;;;9724:21:1;9781:2;9761:18;;;9754:30;9820:34;9800:18;;;9793:62;-1:-1:-1;;;9871:18:1;;;9864:39;9920:19;;24914:64:0;9540:405:1;24914:64:0;6846:7;6877:6;-1:-1:-1;;;;;25010:17:0;;;6877:6;;25010:17;;;;:41;;-1:-1:-1;6846:7:0;6877:6;-1:-1:-1;;;;;25031:20:0;;;6877:6;;25031:20;;25010:41;25007:138;;;25088:12;;25078:6;:22;;25070:75;;;;-1:-1:-1;;;25070:75:0;;10152:2:1;25070:75:0;;;10134:21:1;10191:2;10171:18;;;10164:30;10230:34;10210:18;;;10203:62;-1:-1:-1;;;10281:18:1;;;10274:38;10329:19;;25070:75:0;9950:404:1;25070:75:0;25175:28;25206:24;25224:4;25206:9;:24::i;:::-;25175:55;;25286:12;;25262:20;:36;25259:124;;-1:-1:-1;25355:12:0;;25259:124;25462:34;;25516:6;;25438:58;;;;;-1:-1:-1;;;25516:6:0;;;;25515:7;:22;;;;-1:-1:-1;25526:11:0;;-1:-1:-1;;;25526:11:0;;;;25515:22;:45;;;;;25541:19;25515:45;:72;;;;;25574:13;-1:-1:-1;;;;;25564:23:0;:6;-1:-1:-1;;;;;25564:23:0;;;25515:72;25511:170;;;25625:38;25642:20;25625:16;:38::i;:::-;-1:-1:-1;;;;;25778:26:0;;25719:12;25778:26;;;:18;:26;;;;;;25734:4;;25778:26;;;:59;;-1:-1:-1;;;;;;25808:29:0;;;;;;:18;:29;;;;;;;;25778:59;25775:113;;;-1:-1:-1;25867:5:0;25775:113;25924:47;25939:6;25946:9;25956:6;25963:7;25924:14;:47::i;:::-;24728:1255;;;24650:1333;;;:::o;1653:208::-;1739:7;1779:12;1771:6;;;;1763:29;;;;-1:-1:-1;;;1763:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1807:9:0;1819:5;1823:1;1819;:5;:::i;:::-;1807:17;1653:208;-1:-1:-1;;;;;1653:208:0:o;32355:175::-;32396:7;32421:15;32438;32457:19;:17;:19::i;:::-;32420:56;;-1:-1:-1;32420:56:0;-1:-1:-1;32498:20:0;32420:56;;32498:11;:20::i;:::-;32491:27;;;;32355:175;:::o;2392:140::-;2450:7;2481:39;2485:1;2488;2481:39;;;;;;;;;;;;;;;;;:3;:39::i;1292:197::-;1350:7;;1386:5;1390:1;1386;:5;:::i;:::-;1374:17;;1419:1;1414;:6;;1406:46;;;;-1:-1:-1;;;1406:46:0;;10561:2:1;1406:46:0;;;10543:21:1;10600:2;10580:18;;;10573:30;10639:29;10619:18;;;10612:57;10686:18;;1406:46:0;10359:351:1;31075:494:0;31134:7;31143;31152;31161;31170;31179;31204:23;31229:12;31243:18;31265:42;31277:7;31286;;31295:11;;31265;:42::i;:::-;31203:104;;;;;;31322:19;31345:10;:8;:10::i;:::-;31322:33;;31371:15;31388:23;31413:12;31429:39;31441:7;31450:4;31456:11;31429;:39::i;:::-;31370:98;;-1:-1:-1;31370:98:0;-1:-1:-1;31370:98:0;-1:-1:-1;31523:15:0;;-1:-1:-1;31540:4:0;;-1:-1:-1;31546:10:0;;-1:-1:-1;;;;;31075:494:0;;;;;;;:::o;1499:144::-;1557:7;1588:43;1592:1;1595;1588:43;;;;;;;;;;;;;;;;;:3;:43::i;25995:557::-;18721:6;:13;;-1:-1:-1;;;;18721:13:0;-1:-1:-1;;;18721:13:0;;;26111:16:::1;::::0;;26125:1:::1;26111:16:::0;;;;;::::1;::::0;;-1:-1:-1;;26111:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;26111:16:0::1;26087:40;;26160:4;26142;26147:1;26142:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;26142:23:0::1;;;-1:-1:-1::0;;;;;26142:23:0::1;;;::::0;::::1;26190:15;-1:-1:-1::0;;;;;26190:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26180:4;26185:1;26180:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;26180:32:0::1;;;-1:-1:-1::0;;;;;26180:32:0::1;;;::::0;::::1;26229:62;26246:4;26261:15;26279:11;26229:8;:62::i;:::-;26319:221;::::0;-1:-1:-1;;;26319:221:0;;-1:-1:-1;;;;;26319:15:0::1;:66;::::0;::::1;::::0;:221:::1;::::0;26404:11;;26434:1:::1;::::0;26455:4;;26486::::1;::::0;26510:15:::1;::::0;26319:221:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18765:6:0;:14;;-1:-1:-1;;;;18765:14:0;;;-1:-1:-1;;;;25995:557:0:o;27094:883::-;27210:7;27206:44;;27236:14;:12;:14::i;:::-;-1:-1:-1;;;;;27271:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;27295:22:0;;;;;;:11;:22;;;;;;;;27294:23;27271:46;27267:637;;;27338:48;27360:6;27368:9;27379:6;27338:21;:48::i;:::-;27267:637;;;-1:-1:-1;;;;;27413:19:0;;;;;;:11;:19;;;;;;;;27412:20;:46;;;;-1:-1:-1;;;;;;27436:22:0;;;;;;:11;:22;;;;;;;;27412:46;27408:496;;;27479:46;27499:6;27507:9;27518:6;27479:19;:46::i;27408:496::-;-1:-1:-1;;;;;27552:19:0;;;;;;:11;:19;;;;;;;;27551:20;:47;;;;-1:-1:-1;;;;;;27576:22:0;;;;;;:11;:22;;;;;;;;27575:23;27551:47;27547:357;;;27619:44;27637:6;27645:9;27656:6;27619:17;:44::i;27547:357::-;-1:-1:-1;;;;;27689:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;27712:22:0;;;;;;:11;:22;;;;;;;;27689:45;27685:219;;;27755:48;27777:6;27785:9;27796:6;27755:21;:48::i;27685:219::-;27844:44;27862:6;27870:9;27881:6;27844:17;:44::i;:::-;27924:7;27920:45;;27950:15;24047;;24037:7;:25;24091:19;;24077:11;:33;23989:133;27950:15;27094:883;;;;:::o;32542:601::-;32643:7;;32683;;32592;;;;;32711:305;32735:9;:16;32731:20;;32711:305;;;32805:7;32781;:21;32789:9;32799:1;32789:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32789:12:0;32781:21;;;;;;;;;;;;;:31;;:66;;;32840:7;32816;:21;32824:9;32834:1;32824:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32824:12:0;32816:21;;;;;;;;;;;;;:31;32781:66;32777:97;;;32857:7;;32866;;32849:25;;;;;;;32542:601;;:::o;32777:97::-;32903:34;32915:7;:21;32923:9;32933:1;32923:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32923:12:0;32915:21;;;;;;;;;;;;;32903:7;;:11;:34::i;:::-;32893:44;;32966:34;32978:7;:21;32986:9;32996:1;32986:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;32986:12:0;32978:21;;;;;;;;;;;;;32966:7;;:11;:34::i;:::-;32956:44;-1:-1:-1;32753:3:0;;;;:::i;:::-;;;;32711:305;;;-1:-1:-1;33056:7:0;;33044;;:20;;:11;:20::i;:::-;33034:7;:30;33030:61;;;33074:7;;33083;;33066:25;;;;;;32542:601;;:::o;33030:61::-;33114:7;;33123;;-1:-1:-1;32542:601:0;-1:-1:-1;32542:601:0:o;2542:298::-;2628:7;2667:12;2660:5;2652:28;;;;-1:-1:-1;;;2652:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2695:9:0;2707:5;2711:1;2707;:5;:::i;31581:396::-;31679:7;;;;31736:28;31760:3;31736:19;:7;31748:6;31736:11;:19::i;:::-;:23;;:28::i;:::-;31721:43;-1:-1:-1;31779:18:0;31800:34;31830:3;31800:25;:7;31812:12;31800:11;:25::i;:34::-;31779:55;-1:-1:-1;31849:23:0;31875:33;31779:55;31875:17;:7;31887:4;31875:11;:17::i;:::-;:21;;:33::i;:::-;31849:59;31948:4;;-1:-1:-1;31954:10:0;;-1:-1:-1;31581:396:0;;-1:-1:-1;;;;;31581:396:0:o;31989:354::-;32084:7;;;;32144:24;:7;32156:11;32144;:24::i;:::-;32126:42;-1:-1:-1;32183:12:0;32198:21;:4;32207:11;32198:8;:21::i;:::-;32183:36;-1:-1:-1;32234:23:0;32260:17;:7;32183:36;32260:11;:17::i;:::-;32300:7;;;;-1:-1:-1;32326:4:0;;-1:-1:-1;31989:354:0;;-1:-1:-1;;;;;31989:354:0:o;23699:274::-;23749:7;;:12;:32;;;;-1:-1:-1;23765:11:0;;:16;23749:32;23746:44;;;23699:274::o;23746:44::-;23836:7;;;23818:15;:25;23880:11;;;23858:19;:33;-1:-1:-1;23920:11:0;;;;23946:15;23699:274::o;29167:599::-;29274:15;29291:23;29316:12;29330:23;29355:12;29369:18;29391:19;29402:7;29391:10;:19::i;:::-;-1:-1:-1;;;;;29443:15:0;;;;;;:7;:15;;;;;;29273:137;;-1:-1:-1;29273:137:0;;-1:-1:-1;29273:137:0;;-1:-1:-1;29273:137:0;-1:-1:-1;29273:137:0;-1:-1:-1;29273:137:0;-1:-1:-1;29443:28:0;;29463:7;29443:19;:28::i;:::-;-1:-1:-1;;;;;29425:15:0;;;;;;:7;:15;;;;;;;;:46;;;;29504:7;:15;;;;:28;;29524:7;29504:19;:28::i;:::-;-1:-1:-1;;;;;29486:15:0;;;;;;;:7;:15;;;;;;:46;;;;29568:18;;;;;;;:39;;29591:15;29568:22;:39::i;:::-;-1:-1:-1;;;;;29547:18:0;;;;;;:7;:18;;;;;:60;29623:26;29638:10;29623:14;:26::i;:::-;29667:23;29679:4;29685;29667:11;:23::i;:::-;29727:9;-1:-1:-1;;;;;29710:44:0;29719:6;-1:-1:-1;;;;;29710:44:0;;29738:15;29710:44;;;;1596:25:1;;1584:2;1569:18;;1450:177;29710:44:0;;;;;;;;29258:508;;;;;;29167:599;;;:::o;28533:622::-;28638:15;28655:23;28680:12;28694:23;28719:12;28733:18;28755:19;28766:7;28755:10;:19::i;:::-;-1:-1:-1;;;;;28807:15:0;;;;;;:7;:15;;;;;;28637:137;;-1:-1:-1;28637:137:0;;-1:-1:-1;28637:137:0;;-1:-1:-1;28637:137:0;-1:-1:-1;28637:137:0;-1:-1:-1;28637:137:0;-1:-1:-1;28807:28:0;;28637:137;28807:19;:28::i;:::-;-1:-1:-1;;;;;28789:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;28871:18;;;;;:7;:18;;;;;:39;;28894:15;28871:22;:39::i;:::-;-1:-1:-1;;;;;28850:18:0;;;;;;:7;:18;;;;;;;;:60;;;;28946:7;:18;;;;:39;;28969:15;28946:22;:39::i;27989:532::-;28092:15;28109:23;28134:12;28148:23;28173:12;28187:18;28209:19;28220:7;28209:10;:19::i;:::-;-1:-1:-1;;;;;28261:15:0;;;;;;:7;:15;;;;;;28091:137;;-1:-1:-1;28091:137:0;;-1:-1:-1;28091:137:0;;-1:-1:-1;28091:137:0;-1:-1:-1;28091:137:0;-1:-1:-1;28091:137:0;-1:-1:-1;28261:28:0;;28091:137;28261:19;:28::i;29778:682::-;29885:15;29902:23;29927:12;29941:23;29966:12;29980:18;30002:19;30013:7;30002:10;:19::i;:::-;-1:-1:-1;;;;;30054:15:0;;;;;;:7;:15;;;;;;29884:137;;-1:-1:-1;29884:137:0;;-1:-1:-1;29884:137:0;;-1:-1:-1;29884:137:0;-1:-1:-1;29884:137:0;-1:-1:-1;29884:137:0;-1:-1:-1;30054:28:0;;30074:7;30054:19;:28::i;:::-;-1:-1:-1;;;;;30036:15:0;;;;;;:7;:15;;;;;;;;:46;;;;30115:7;:15;;;;:28;;30135:7;30115:19;:28::i;1871:511::-;1929:7;2190:1;2195;2190:6;2186:55;;-1:-1:-1;2224:1:0;2217:8;;2186:55;2257:9;2269:5;2273:1;2269;:5;:::i;:::-;2257:17;-1:-1:-1;2306:1:0;2297:5;2301:1;2257:17;2297:5;:::i;:::-;:10;2289:56;;;;-1:-1:-1;;;2289:56:0;;12685:2:1;2289:56:0;;;12667:21:1;12724:2;12704:18;;;12697:30;12763:34;12743:18;;;12736:62;-1:-1:-1;;;12814:18:1;;;12807:31;12855:19;;2289:56:0;12483:397:1;30472:379:0;30539:19;30562:10;:8;:10::i;:::-;30539:33;-1:-1:-1;30587:18:0;30608:27;:10;30539:33;30608:14;:27::i;:::-;30691:4;30675:22;;;;:7;:22;;;;;;30587:48;;-1:-1:-1;30675:38:0;;30587:48;30675:26;:38::i;:::-;30666:4;30650:22;;;;:7;:22;;;;;;;;:63;;;;30731:11;:26;;;;;;30728:111;;;30817:4;30801:22;;;;:7;:22;;;;;;:38;;30828:10;30801:26;:38::i;:::-;30792:4;30776:22;;;;:7;:22;;;;;:63;30728:111;30524:327;;30472:379;:::o;30863:159::-;30945:7;;:17;;30957:4;30945:11;:17::i;:::-;30935:7;:27;30990:10;;:20;;31005:4;30990:14;:20::i;:::-;30977:10;:33;-1:-1:-1;;30863:159:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:180::-;1691:6;1744:2;1732:9;1723:7;1719:23;1715:32;1712:52;;;1760:1;1757;1750:12;1712:52;-1:-1:-1;1783:23:1;;1632:180;-1:-1:-1;1632:180:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2467:341::-;2532:6;2540;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;2645:9;2632:23;2622:33;;2705:2;2694:9;2690:18;2677:32;2752:5;2745:13;2738:21;2731:5;2728:32;2718:60;;2774:1;2771;2764:12;2718:60;2797:5;2787:15;;;2467:341;;;;;:::o;3021:247::-;3080:6;3133:2;3121:9;3112:7;3108:23;3104:32;3101:52;;;3149:1;3146;3139:12;3101:52;3188:9;3175:23;3207:31;3232:5;3207:31;:::i;3273:388::-;3341:6;3349;3402:2;3390:9;3381:7;3377:23;3373:32;3370:52;;;3418:1;3415;3408:12;3370:52;3457:9;3444:23;3476:31;3501:5;3476:31;:::i;:::-;3526:5;-1:-1:-1;3583:2:1;3568:18;;3555:32;3596:33;3555:32;3596:33;:::i;3666:380::-;3745:1;3741:12;;;;3788;;;3809:61;;3863:4;3855:6;3851:17;3841:27;;3809:61;3916:2;3908:6;3905:14;3885:18;3882:38;3879:161;;3962:10;3957:3;3953:20;3950:1;3943:31;3997:4;3994:1;3987:15;4025:4;4022:1;4015:15;3879:161;;3666:380;;;:::o;4051:356::-;4253:2;4235:21;;;4272:18;;;4265:30;4331:34;4326:2;4311:18;;4304:62;4398:2;4383:18;;4051:356::o;6360:127::-;6421:10;6416:3;6412:20;6409:1;6402:31;6452:4;6449:1;6442:15;6476:4;6473:1;6466:15;6492:125;6557:9;;;6578:10;;;6575:36;;;6591:18;;:::i;7385:127::-;7446:10;7441:3;7437:20;7434:1;7427:31;7477:4;7474:1;7467:15;7501:4;7498:1;7491:15;7517:128;7584:9;;;7605:11;;;7602:37;;;7619:18;;:::i;7650:127::-;7711:10;7706:3;7702:20;7699:1;7692:31;7742:4;7739:1;7732:15;7766:4;7763:1;7756:15;7782:135;7821:3;7842:17;;;7839:43;;7862:18;;:::i;:::-;-1:-1:-1;7909:1:1;7898:13;;7782:135::o;10847:251::-;10917:6;10970:2;10958:9;10949:7;10945:23;10941:32;10938:52;;;10986:1;10983;10976:12;10938:52;11018:9;11012:16;11037:31;11062:5;11037:31;:::i;11103:980::-;11365:4;11413:3;11402:9;11398:19;11444:6;11433:9;11426:25;11470:2;11508:6;11503:2;11492:9;11488:18;11481:34;11551:3;11546:2;11535:9;11531:18;11524:31;11575:6;11610;11604:13;11641:6;11633;11626:22;11679:3;11668:9;11664:19;11657:26;;11718:2;11710:6;11706:15;11692:29;;11739:1;11749:195;11763:6;11760:1;11757:13;11749:195;;;11828:13;;-1:-1:-1;;;;;11824:39:1;11812:52;;11919:15;;;;11884:12;;;;11860:1;11778:9;11749:195;;;-1:-1:-1;;;;;;;12000:32:1;;;;11995:2;11980:18;;11973:60;-1:-1:-1;;;12064:3:1;12049:19;12042:35;11961:3;11103:980;-1:-1:-1;;;11103:980:1:o;12088:217::-;12128:1;12154;12144:132;;12198:10;12193:3;12189:20;12186:1;12179:31;12233:4;12230:1;12223:15;12261:4;12258:1;12251:15;12144:132;-1:-1:-1;12290:9:1;;12088:217::o;12310:168::-;12383:9;;;12414;;12431:15;;;12425:22;;12411:37;12401:71;;12452:18;;:::i

Swarm Source

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