ETH Price: $3,388.30 (-2.05%)
Gas: 5 Gwei

Token

Printer Finance (PRINT)
 

Overview

Max Total Supply

2,228,828.08843784382537278 PRINT

Holders

160

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,779.038016613955716186 PRINT

Value
$0.00
0x0869fd08ff42889e11e09a0c2b46ce3d163a25d5
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:
PRINT

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-19
*/

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

/**
 *Submitted for verification at Etherscan.io on 2021-07-23
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        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) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

    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) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        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");
        (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");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                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;
    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);
    }

} 

// pragma solidity >=0.5.0;

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


// pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

// pragma solidity >=0.6.2;

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



// pragma solidity >=0.6.2;

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 PRINT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    address public deployer = 0x2D407dDb06311396fE14D4b49da5F0471447d45C;
    address payable public walletAddress = payable(0x3BE5b419bD5b5E6Eb2318d6CD210128FEf7Eb3E9);
    
    string private _name = 'Printer Finance';
    string private _symbol = 'PRINT';
    uint8 private _decimals = 18;
    
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 1 * 1e6 * 1e18;
    uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
    
    uint256 public constant MAG = 10 ** 18;
    uint256 public rateOfChange = MAG;

    uint256 private _totalSupply;
    uint256 public _gonsPerFragment;
    
    mapping(address => uint256) public _gonBalances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => bool) public blacklist;
    mapping (address => uint256) public _buyInfo;

    uint256 public _percentForTxLimit = 1; //2% of total supply;
    uint256 public _percentForRebase = 5; //5% of total supply;
    uint256 public _timeLimitFromLastBuy = 3 minutes;
    uint256 public _fee = 4;
    uint256 private uniswapV2PairAmount;
    
    bool public _live = false;
    bool inSwapAndLiquify;
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    event SwapTokensForETH(uint256 amountIn, address[] path);
    
    
    constructor () {
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _gonBalances[_msgSender()] = TOTAL_GONS;
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
        
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(deployer, _msgSender(), _totalSupply);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        if(account == uniswapV2Pair)
            return uniswapV2PairAmount;
        return _gonBalances[account].div(_gonsPerFragment);
    }

    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 _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 setFeeRate(uint256 fee) external onlyOwner {
        _fee = fee;
    }
    
    function rebasePlus(uint256 _amount) private {
         _totalSupply = _totalSupply.add((_amount*1000).div(1449));
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner()) {
            uint256 txLimitAmount = _totalSupply.mul(_percentForTxLimit).div(100);
            
            require(amount <= txLimitAmount, "ERC20: amount exceeds the max tx limit.");

            if(from != uniswapV2Pair) {
                require(!blacklist[from] && !blacklist[to], 'ERC20: No bots allowed.');
                require(_buyInfo[from] == 0 || _buyInfo[from].add(_timeLimitFromLastBuy) < block.timestamp, "ERC20: Tx not allowed yet.");
                
                uint256 contractTokenBalance = balanceOf(address(this));
                
                if (!inSwapAndLiquify && to == uniswapV2Pair) {
                    if (contractTokenBalance > 0) {
                        if (contractTokenBalance > txLimitAmount) {
                            contractTokenBalance = txLimitAmount;
                        }
                        swapTokens(contractTokenBalance);
                    }
                }

                //take fee only on swaps
                if (
                    (from == uniswapV2Pair || to == uniswapV2Pair) &&
                    !(from == address(this) || to == address(this))
                ) {
                    _tokenTransfer(from, to, amount, _fee);
                }
                else {
                    _tokenTransfer(from, to, amount, 0);
                }
            }
                
            else {
                if(!_live)
                    blacklist[to] = true;
        
                require(balanceOf(to) + amount <= txLimitAmount*2, 'ERC20: current balance exceeds the max limit.');
                
                _buyInfo[to] = block.timestamp;
                _tokenTransfer(from, to, amount, _fee);

                uint256 rebaseLimitAmount = _totalSupply.mul(_percentForRebase).div(100);
                uint256 currentBalance = balanceOf(to);
                uint256 newBalance = currentBalance.add(amount);
                if(currentBalance < rebaseLimitAmount && newBalance < rebaseLimitAmount) {
                    rebasePlus(amount);
                }
            }
        } else {
            _tokenTransfer(from, to, amount, 0);
        }
    }
    
    function _tokenTransfer(address from, address to, uint256 amount, uint256 taxFee) internal {
        if(to == uniswapV2Pair)
            uniswapV2PairAmount = uniswapV2PairAmount.add(amount);
        else if(from == uniswapV2Pair)
            uniswapV2PairAmount = uniswapV2PairAmount.sub(amount);
        
        uint256 feeAmount = 0;
        
        if (taxFee != 0) {
            feeAmount = amount.mul(taxFee).div(100);
        }

        uint256 transferAmount = amount.sub(feeAmount);
        
        uint256 gonTotalValue = amount.mul(_gonsPerFragment);
        uint256 gonValue = transferAmount.mul(_gonsPerFragment);
        uint256 gonFeeAmount = feeAmount.mul(_gonsPerFragment);
        
        _gonBalances[from] = _gonBalances[from].sub(gonTotalValue);
        _gonBalances[to] = _gonBalances[to].add(gonValue);
        
        emit Transfer(from, to, transferAmount);
        
        if(gonFeeAmount > 0)
            _gonBalances[address(this)] = _gonBalances[address(this)].add(gonFeeAmount);
    }
    
    function swapTokens(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToWallet(address(this).balance);
        }
    }

    function sendETHToWallet(uint256 amount) private {
        walletAddress.call{value: amount}("");
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }
    
    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}
    
    function emergencyWithdraw() external onlyOwner {
        payable(owner()).send(address(this).balance);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }
    
    function setWalletAddress(address _walletAddress) external onlyOwner {
        walletAddress = payable(_walletAddress);
    }
    
    function updateLive() external {
        if(!_live) {
            _live = true;
        }
    }
    
    function unblockWallet(address account) public onlyOwner {
        blacklist[account] = false;
    }
    
    function updatePercentForTxLimit(uint256 percentForTxLimit) public onlyOwner {
        require(percentForTxLimit >= 1, 'ERC20: max tx limit should be greater than 1');
        _percentForTxLimit = percentForTxLimit;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAG","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_gonBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_gonsPerFragment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentForRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentForTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_timeLimitFromLastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyWithdraw","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":[],"name":"rateOfChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_walletAddress","type":"address"}],"name":"setWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"}],"name":"unblockWallet","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":"updateLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentForTxLimit","type":"uint256"}],"name":"updatePercentForTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600480546001600160a01b0319908116732d407ddb06311396fe14d4b49da5f0471447d45c1790915560058054909116733be5b419bd5b5e6eb2318d6cd210128fef7eb3e917905560c0604052600f60808190526e5072696e7465722046696e616e636560881b60a09081526200007a916006919062000479565b5060408051808201909152600580825264141492539560da1b6020909201918252620000a99160079162000479565b5060088054601260ff199182168117909255670de0b6b3a76400006009556001601055600560115560b49091556004601355601580549091169055348015620000f157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35069d3c21bcecceda1000000600a819055620001519060001962000616565b6200015f90600019620005b5565b336000908152600c6020526040902055600a54620001b1906200018f69d3c21bcecceda100000060001962000616565b6200019d90600019620005b5565b620003e360201b620009c01790919060201c565b600b55600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200021457600080fd5b505afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f91906200051f565b6001600160a01b031663c9c6539630600260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ad57600080fd5b505afa158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e891906200051f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200033157600080fd5b505af115801562000346573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036c91906200051f565b600380546001600160a01b0319166001600160a01b0392909216919091179055620003943390565b600454600a546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a362000643565b60006200042d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200043460201b60201c565b9392505050565b60008183620004615760405162461bcd60e51b815260040162000458919062000548565b60405180910390fd5b5060006200047084866200059e565b95945050505050565b8280546200048790620005d9565b90600052602060002090601f016020900481019282620004ab5760008555620004f6565b82601f10620004c657805160ff1916838001178555620004f6565b82800160010185558215620004f6579182015b82811115620004f6578251825591602001919060010190620004d9565b506200050492915062000508565b5090565b5b8082111562000504576000815560010162000509565b60006020828403121562000531578081fd5b81516001600160a01b03811681146200042d578182fd5b6000602080835283518082850152825b81811015620005765785810183015185820160400152820162000558565b81811115620005885783604083870101525b50601f01601f1916929092016040019392505050565b600082620005b057620005b06200062d565b500490565b600082821015620005d457634e487b7160e01b81526011600452602481fd5b500390565b600181811c90821680620005ee57607f821691505b602082108114156200061057634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200062857620006286200062d565b500690565b634e487b7160e01b600052601260045260246000fd5b6119a280620006536000396000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c82a8fed11610095578063e679e27c11610064578063e679e27c1461057d578063ed82193c14610593578063f9f92be4146105c0578063fd2dbb0e146105f057600080fd5b8063c82a8fed146104e2578063d5f3948814610502578063db2e21bc14610522578063dd62ed3e1461053757600080fd5b8063bce87b33116100d1578063bce87b331461048a578063bef18a19146104a0578063c4996f51146104b6578063c5b37c22146104cc57600080fd5b80638da5cb5b1461041757806395d89b4114610435578063a9059cbb1461044a578063ac1a386a1461046a57600080fd5b806345596e2e1161017a5780636ad5b3ea116101495780636ad5b3ea146103ac5780636b0a26d2146103cc57806370a08231146103e2578063715018a61461040257600080fd5b806345596e2e1461033657806349bd5a5e146103565780634c4be8a61461037657806356e0ec721461039257600080fd5b80631c8e1179116101b65780631c8e1179146102a557806323b872dd146102c7578063313ce567146102e757806336fed9751461030957600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610605565b604051610215919061176a565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046116e4565b610697565b6040519015158152602001610215565b34801561025a57600080fd5b5060025461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b50600a545b604051908152602001610215565b3480156102b157600080fd5b506102c56102c0366004611634565b6106ae565b005b3480156102d357600080fd5b5061023e6102e23660046116a4565b610702565b3480156102f357600080fd5b5060085460405160ff9091168152602001610215565b34801561031557600080fd5b50610297610324366004611634565b600c6020526000908152604090205481565b34801561034257600080fd5b506102c561035136600461170f565b61076b565b34801561036257600080fd5b5060035461026e906001600160a01b031681565b34801561038257600080fd5b50610297670de0b6b3a764000081565b34801561039e57600080fd5b5060155461023e9060ff1681565b3480156103b857600080fd5b5060055461026e906001600160a01b031681565b3480156103d857600080fd5b5061029760095481565b3480156103ee57600080fd5b506102976103fd366004611634565b61079a565b34801561040e57600080fd5b506102c56107e0565b34801561042357600080fd5b506000546001600160a01b031661026e565b34801561044157600080fd5b50610208610854565b34801561045657600080fd5b5061023e6104653660046116e4565b610863565b34801561047657600080fd5b506102c5610485366004611634565b610870565b34801561049657600080fd5b5061029760105481565b3480156104ac57600080fd5b5061029760115481565b3480156104c257600080fd5b50610297600b5481565b3480156104d857600080fd5b5061029760135481565b3480156104ee57600080fd5b506102c56104fd36600461170f565b6108bc565b34801561050e57600080fd5b5060045461026e906001600160a01b031681565b34801561052e57600080fd5b506102c5610951565b34801561054357600080fd5b5061029761055236600461166c565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561058957600080fd5b5061029760125481565b34801561059f57600080fd5b506102976105ae366004611634565b600f6020526000908152604090205481565b3480156105cc57600080fd5b5061023e6105db366004611634565b600e6020526000908152604090205460ff1681565b3480156105fc57600080fd5b506102c56109a6565b606060068054610614906118b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610640906118b1565b801561068d5780601f106106625761010080835404028352916020019161068d565b820191906000526020600020905b81548152906001019060200180831161067057829003601f168201915b5050505050905090565b60006106a4338484610a09565b5060015b92915050565b6000546001600160a01b031633146106e15760405162461bcd60e51b81526004016106d8906117bd565b60405180910390fd5b6001600160a01b03166000908152600e60205260409020805460ff19169055565b600061070f848484610b2d565b610761843361075c85604051806060016040528060288152602001611945602891396001600160a01b038a166000908152600d60209081526040808320338452909152902054919061106b565b610a09565b5060019392505050565b6000546001600160a01b031633146107955760405162461bcd60e51b81526004016106d8906117bd565b601355565b6003546000906001600160a01b03838116911614156107bb57505060145490565b600b546001600160a01b0383166000908152600c60205260409020546106a8916109c0565b6000546001600160a01b0316331461080a5760405162461bcd60e51b81526004016106d8906117bd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060078054610614906118b1565b60006106a4338484610b2d565b6000546001600160a01b0316331461089a5760405162461bcd60e51b81526004016106d8906117bd565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108e65760405162461bcd60e51b81526004016106d8906117bd565b600181101561094c5760405162461bcd60e51b815260206004820152602c60248201527f45524332303a206d6178207478206c696d69742073686f756c6420626520677260448201526b6561746572207468616e203160a01b60648201526084016106d8565b601055565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016106d8906117bd565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f15050505050565b60155460ff166109be576015805460ff191660011790555b565b6000610a0283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110a5565b9392505050565b6001600160a01b038316610a6b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d8565b6001600160a01b038216610acc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d8565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b915760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d8565b6001600160a01b038216610bf35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d8565b60008111610c5c5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106d8565b6000546001600160a01b03848116911614801590610c8857506000546001600160a01b03838116911614155b15611059576000610cb16064610cab601054600a546110d390919063ffffffff16565b906109c0565b905080821115610d135760405162461bcd60e51b815260206004820152602760248201527f45524332303a20616d6f756e74206578636565647320746865206d6178207478604482015266103634b6b4ba1760c91b60648201526084016106d8565b6003546001600160a01b03858116911614610f1a576001600160a01b0384166000908152600e602052604090205460ff16158015610d6a57506001600160a01b0383166000908152600e602052604090205460ff16155b610db65760405162461bcd60e51b815260206004820152601760248201527f45524332303a204e6f20626f747320616c6c6f7765642e00000000000000000060448201526064016106d8565b6001600160a01b0384166000908152600f60205260409020541580610e0057506012546001600160a01b0385166000908152600f60205260409020544291610dfe9190611152565b105b610e4c5760405162461bcd60e51b815260206004820152601a60248201527f45524332303a205478206e6f7420616c6c6f776564207965742e00000000000060448201526064016106d8565b6000610e573061079a565b601554909150610100900460ff16158015610e7f57506003546001600160a01b038581169116145b15610e9e578015610e9e5781811115610e955750805b610e9e816111b1565b6003546001600160a01b0386811691161480610ec757506003546001600160a01b038581169116145b8015610eef57506001600160a01b038516301480610eed57506001600160a01b03841630145b155b15610f0757610f028585856013546111e8565b610f14565b610f1485858560006111e8565b50611053565b60155460ff16610f48576001600160a01b0383166000908152600e60205260409020805460ff191660011790555b610f5381600261187b565b82610f5d8561079a565b610f67919061184f565b1115610fcb5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2063757272656e742062616c616e63652065786365656473207460448201526c34329036b0bc103634b6b4ba1760991b60648201526084016106d8565b6001600160a01b0383166000908152600f60205260409020429055601354610ff8908590859085906111e8565b60006110166064610cab601154600a546110d390919063ffffffff16565b905060006110238561079a565b905060006110318286611152565b9050828210801561104157508281105b1561104f5761104f85611398565b5050505b50505050565b61106683838360006111e8565b505050565b6000818484111561108f5760405162461bcd60e51b81526004016106d8919061176a565b50600061109c848661189a565b95945050505050565b600081836110c65760405162461bcd60e51b81526004016106d8919061176a565b50600061109c8486611867565b6000826110e2575060006106a8565b60006110ee838561187b565b9050826110fb8583611867565b14610a025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d8565b60008061115f838561184f565b905083811015610a025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d8565b6015805461ff0019166101001790556111c9816113e7565b4780156111d9576111d9476115a5565b50506015805461ff0019169055565b6003546001600160a01b03848116911614156112135760145461120b9083611152565b60145561123a565b6003546001600160a01b038581169116141561123a5760145461123690836115f2565b6014555b60008115611254576112516064610cab85856110d3565b90505b600061126084836115f2565b90506000611279600b54866110d390919063ffffffff16565b90506000611292600b54846110d390919063ffffffff16565b905060006112ab600b54866110d390919063ffffffff16565b6001600160a01b038a166000908152600c60205260409020549091506112d190846115f2565b6001600160a01b03808b166000908152600c602052604080822093909355908a16815220546113009083611152565b6001600160a01b03808a166000818152600c602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113549088815260200190565b60405180910390a3801561138d57306000908152600c602052604090205461137c9082611152565b306000908152600c60205260409020555b505050505050505050565b6113b66113ad6105a9610cab846103e861187b565b600a5490611152565b600a8190556113e1906113d569d3c21bcecceda10000006000196118ec565b610cab9060001961189a565b600b5550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061142a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561147e57600080fd5b505afa158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190611650565b816001815181106114d757634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526002546114fd9130911684610a09565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790611536908590600090869030904290600401611813565b600060405180830381600087803b15801561155057600080fd5b505af1158015611564573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516115999291906117f2565b60405180910390a15050565b6005546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611053576040519150601f19603f3d011682016040523d82523d6000602084013e611053565b6000610a0283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061106b565b600060208284031215611645578081fd5b8135610a028161192c565b600060208284031215611661578081fd5b8151610a028161192c565b6000806040838503121561167e578081fd5b82356116898161192c565b915060208301356116998161192c565b809150509250929050565b6000806000606084860312156116b8578081fd5b83356116c38161192c565b925060208401356116d38161192c565b929592945050506040919091013590565b600080604083850312156116f6578182fd5b82356117018161192c565b946020939093013593505050565b600060208284031215611720578081fd5b5035919050565b6000815180845260208085019450808401835b8381101561175f5781516001600160a01b03168752958201959082019060010161173a565b509495945050505050565b6000602080835283518082850152825b818110156117965785810183015185820160400152820161177a565b818111156117a75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061180b6040830184611727565b949350505050565b85815284602082015260a06040820152600061183260a0830186611727565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561186257611862611900565b500190565b60008261187657611876611916565b500490565b600081600019048311821515161561189557611895611900565b500290565b6000828210156118ac576118ac611900565b500390565b600181811c908216806118c557607f821691505b602082108114156118e657634e487b7160e01b600052602260045260246000fd5b50919050565b6000826118fb576118fb611916565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b038116811461194157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220441e74032753d275f4982899a2c8b47c5547bffa5951341a8876c70f1e451bbd64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063c82a8fed11610095578063e679e27c11610064578063e679e27c1461057d578063ed82193c14610593578063f9f92be4146105c0578063fd2dbb0e146105f057600080fd5b8063c82a8fed146104e2578063d5f3948814610502578063db2e21bc14610522578063dd62ed3e1461053757600080fd5b8063bce87b33116100d1578063bce87b331461048a578063bef18a19146104a0578063c4996f51146104b6578063c5b37c22146104cc57600080fd5b80638da5cb5b1461041757806395d89b4114610435578063a9059cbb1461044a578063ac1a386a1461046a57600080fd5b806345596e2e1161017a5780636ad5b3ea116101495780636ad5b3ea146103ac5780636b0a26d2146103cc57806370a08231146103e2578063715018a61461040257600080fd5b806345596e2e1461033657806349bd5a5e146103565780634c4be8a61461037657806356e0ec721461039257600080fd5b80631c8e1179116101b65780631c8e1179146102a557806323b872dd146102c7578063313ce567146102e757806336fed9751461030957600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610605565b604051610215919061176a565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046116e4565b610697565b6040519015158152602001610215565b34801561025a57600080fd5b5060025461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b50600a545b604051908152602001610215565b3480156102b157600080fd5b506102c56102c0366004611634565b6106ae565b005b3480156102d357600080fd5b5061023e6102e23660046116a4565b610702565b3480156102f357600080fd5b5060085460405160ff9091168152602001610215565b34801561031557600080fd5b50610297610324366004611634565b600c6020526000908152604090205481565b34801561034257600080fd5b506102c561035136600461170f565b61076b565b34801561036257600080fd5b5060035461026e906001600160a01b031681565b34801561038257600080fd5b50610297670de0b6b3a764000081565b34801561039e57600080fd5b5060155461023e9060ff1681565b3480156103b857600080fd5b5060055461026e906001600160a01b031681565b3480156103d857600080fd5b5061029760095481565b3480156103ee57600080fd5b506102976103fd366004611634565b61079a565b34801561040e57600080fd5b506102c56107e0565b34801561042357600080fd5b506000546001600160a01b031661026e565b34801561044157600080fd5b50610208610854565b34801561045657600080fd5b5061023e6104653660046116e4565b610863565b34801561047657600080fd5b506102c5610485366004611634565b610870565b34801561049657600080fd5b5061029760105481565b3480156104ac57600080fd5b5061029760115481565b3480156104c257600080fd5b50610297600b5481565b3480156104d857600080fd5b5061029760135481565b3480156104ee57600080fd5b506102c56104fd36600461170f565b6108bc565b34801561050e57600080fd5b5060045461026e906001600160a01b031681565b34801561052e57600080fd5b506102c5610951565b34801561054357600080fd5b5061029761055236600461166c565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561058957600080fd5b5061029760125481565b34801561059f57600080fd5b506102976105ae366004611634565b600f6020526000908152604090205481565b3480156105cc57600080fd5b5061023e6105db366004611634565b600e6020526000908152604090205460ff1681565b3480156105fc57600080fd5b506102c56109a6565b606060068054610614906118b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610640906118b1565b801561068d5780601f106106625761010080835404028352916020019161068d565b820191906000526020600020905b81548152906001019060200180831161067057829003601f168201915b5050505050905090565b60006106a4338484610a09565b5060015b92915050565b6000546001600160a01b031633146106e15760405162461bcd60e51b81526004016106d8906117bd565b60405180910390fd5b6001600160a01b03166000908152600e60205260409020805460ff19169055565b600061070f848484610b2d565b610761843361075c85604051806060016040528060288152602001611945602891396001600160a01b038a166000908152600d60209081526040808320338452909152902054919061106b565b610a09565b5060019392505050565b6000546001600160a01b031633146107955760405162461bcd60e51b81526004016106d8906117bd565b601355565b6003546000906001600160a01b03838116911614156107bb57505060145490565b600b546001600160a01b0383166000908152600c60205260409020546106a8916109c0565b6000546001600160a01b0316331461080a5760405162461bcd60e51b81526004016106d8906117bd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060078054610614906118b1565b60006106a4338484610b2d565b6000546001600160a01b0316331461089a5760405162461bcd60e51b81526004016106d8906117bd565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108e65760405162461bcd60e51b81526004016106d8906117bd565b600181101561094c5760405162461bcd60e51b815260206004820152602c60248201527f45524332303a206d6178207478206c696d69742073686f756c6420626520677260448201526b6561746572207468616e203160a01b60648201526084016106d8565b601055565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016106d8906117bd565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f15050505050565b60155460ff166109be576015805460ff191660011790555b565b6000610a0283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110a5565b9392505050565b6001600160a01b038316610a6b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d8565b6001600160a01b038216610acc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d8565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b915760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d8565b6001600160a01b038216610bf35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d8565b60008111610c5c5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106d8565b6000546001600160a01b03848116911614801590610c8857506000546001600160a01b03838116911614155b15611059576000610cb16064610cab601054600a546110d390919063ffffffff16565b906109c0565b905080821115610d135760405162461bcd60e51b815260206004820152602760248201527f45524332303a20616d6f756e74206578636565647320746865206d6178207478604482015266103634b6b4ba1760c91b60648201526084016106d8565b6003546001600160a01b03858116911614610f1a576001600160a01b0384166000908152600e602052604090205460ff16158015610d6a57506001600160a01b0383166000908152600e602052604090205460ff16155b610db65760405162461bcd60e51b815260206004820152601760248201527f45524332303a204e6f20626f747320616c6c6f7765642e00000000000000000060448201526064016106d8565b6001600160a01b0384166000908152600f60205260409020541580610e0057506012546001600160a01b0385166000908152600f60205260409020544291610dfe9190611152565b105b610e4c5760405162461bcd60e51b815260206004820152601a60248201527f45524332303a205478206e6f7420616c6c6f776564207965742e00000000000060448201526064016106d8565b6000610e573061079a565b601554909150610100900460ff16158015610e7f57506003546001600160a01b038581169116145b15610e9e578015610e9e5781811115610e955750805b610e9e816111b1565b6003546001600160a01b0386811691161480610ec757506003546001600160a01b038581169116145b8015610eef57506001600160a01b038516301480610eed57506001600160a01b03841630145b155b15610f0757610f028585856013546111e8565b610f14565b610f1485858560006111e8565b50611053565b60155460ff16610f48576001600160a01b0383166000908152600e60205260409020805460ff191660011790555b610f5381600261187b565b82610f5d8561079a565b610f67919061184f565b1115610fcb5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2063757272656e742062616c616e63652065786365656473207460448201526c34329036b0bc103634b6b4ba1760991b60648201526084016106d8565b6001600160a01b0383166000908152600f60205260409020429055601354610ff8908590859085906111e8565b60006110166064610cab601154600a546110d390919063ffffffff16565b905060006110238561079a565b905060006110318286611152565b9050828210801561104157508281105b1561104f5761104f85611398565b5050505b50505050565b61106683838360006111e8565b505050565b6000818484111561108f5760405162461bcd60e51b81526004016106d8919061176a565b50600061109c848661189a565b95945050505050565b600081836110c65760405162461bcd60e51b81526004016106d8919061176a565b50600061109c8486611867565b6000826110e2575060006106a8565b60006110ee838561187b565b9050826110fb8583611867565b14610a025760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d8565b60008061115f838561184f565b905083811015610a025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d8565b6015805461ff0019166101001790556111c9816113e7565b4780156111d9576111d9476115a5565b50506015805461ff0019169055565b6003546001600160a01b03848116911614156112135760145461120b9083611152565b60145561123a565b6003546001600160a01b038581169116141561123a5760145461123690836115f2565b6014555b60008115611254576112516064610cab85856110d3565b90505b600061126084836115f2565b90506000611279600b54866110d390919063ffffffff16565b90506000611292600b54846110d390919063ffffffff16565b905060006112ab600b54866110d390919063ffffffff16565b6001600160a01b038a166000908152600c60205260409020549091506112d190846115f2565b6001600160a01b03808b166000908152600c602052604080822093909355908a16815220546113009083611152565b6001600160a01b03808a166000818152600c602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113549088815260200190565b60405180910390a3801561138d57306000908152600c602052604090205461137c9082611152565b306000908152600c60205260409020555b505050505050505050565b6113b66113ad6105a9610cab846103e861187b565b600a5490611152565b600a8190556113e1906113d569d3c21bcecceda10000006000196118ec565b610cab9060001961189a565b600b5550565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061142a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561147e57600080fd5b505afa158015611492573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b69190611650565b816001815181106114d757634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526002546114fd9130911684610a09565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac94790611536908590600090869030904290600401611813565b600060405180830381600087803b15801561155057600080fd5b505af1158015611564573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516115999291906117f2565b60405180910390a15050565b6005546040516001600160a01b03909116908290600081818185875af1925050503d8060008114611053576040519150601f19603f3d011682016040523d82523d6000602084013e611053565b6000610a0283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061106b565b600060208284031215611645578081fd5b8135610a028161192c565b600060208284031215611661578081fd5b8151610a028161192c565b6000806040838503121561167e578081fd5b82356116898161192c565b915060208301356116998161192c565b809150509250929050565b6000806000606084860312156116b8578081fd5b83356116c38161192c565b925060208401356116d38161192c565b929592945050506040919091013590565b600080604083850312156116f6578182fd5b82356117018161192c565b946020939093013593505050565b600060208284031215611720578081fd5b5035919050565b6000815180845260208085019450808401835b8381101561175f5781516001600160a01b03168752958201959082019060010161173a565b509495945050505050565b6000602080835283518082850152825b818110156117965785810183015185820160400152820161177a565b818111156117a75783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b82815260406020820152600061180b6040830184611727565b949350505050565b85815284602082015260a06040820152600061183260a0830186611727565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561186257611862611900565b500190565b60008261187657611876611916565b500490565b600081600019048311821515161561189557611895611900565b500290565b6000828210156118ac576118ac611900565b500390565b600181811c908216806118c557607f821691505b602082108114156118e657634e487b7160e01b600052602260045260246000fd5b50919050565b6000826118fb576118fb611916565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b038116811461194157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220441e74032753d275f4982899a2c8b47c5547bffa5951341a8876c70f1e451bbd64736f6c63430008040033

Deployed Bytecode Sourcemap

13580:10142:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15729:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16671:161;;;;;;;;;;-1:-1:-1;16671:161:0;;;;;:::i;:::-;;:::i;:::-;;;3216:14:1;;3209:22;3191:41;;3179:2;3164:18;16671:161:0;3146:92:1;13701:41:0;;;;;;;;;;-1:-1:-1;13701:41:0;;;;-1:-1:-1;;;;;13701:41:0;;;;;;-1:-1:-1;;;;;2783:32:1;;;2765:51;;2753:2;2738:18;13701:41:0;2720:102:1;16006:100:0;;;;;;;;;;-1:-1:-1;16086:12:0;;16006:100;;;9328:25:1;;;9316:2;9301:18;16006:100:0;9283:76:1;23381:102:0;;;;;;;;;;-1:-1:-1;23381:102:0;;;;;:::i;:::-;;:::i;:::-;;16840:313;;;;;;;;;;-1:-1:-1;16840:313:0;;;;;:::i;:::-;;:::i;15915:83::-;;;;;;;;;;-1:-1:-1;15981:9:0;;15915:83;;15981:9;;;;10430:36:1;;10418:2;10403:18;15915:83:0;10385:87:1;14496:47:0;;;;;;;;;;-1:-1:-1;14496:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;17512:81;;;;;;;;;;-1:-1:-1;17512:81:0;;;;;:::i;:::-;;:::i;13749:28::-;;;;;;;;;;-1:-1:-1;13749:28:0;;;;-1:-1:-1;;;;;13749:28:0;;;14330:38;;;;;;;;;;;;14360:8;14330:38;;14991:25;;;;;;;;;;-1:-1:-1;14991:25:0;;;;;;;;13865:90;;;;;;;;;;-1:-1:-1;13865:90:0;;;;-1:-1:-1;;;;;13865:90:0;;;14375:33;;;;;;;;;;;;;;;;16114:223;;;;;;;;;;-1:-1:-1;16114:223:0;;;;;:::i;:::-;;:::i;5504:148::-;;;;;;;;;;;;;:::i;5290:79::-;;;;;;;;;;-1:-1:-1;5328:7:0;5355:6;-1:-1:-1;;;;;5355:6:0;5290:79;;15820:87;;;;;;;;;;;;;:::i;16345:167::-;;;;;;;;;;-1:-1:-1;16345:167:0;;;;;:::i;:::-;;:::i;23131:127::-;;;;;;;;;;-1:-1:-1;23131:127:0;;;;;:::i;:::-;;:::i;14727:37::-;;;;;;;;;;;;;;;;14793:36;;;;;;;;;;;;;;;;14452:31;;;;;;;;;;;;;;;;14913:23;;;;;;;;;;;;;;;;23495:224;;;;;;;;;;-1:-1:-1;23495:224:0;;;;;:::i;:::-;;:::i;13790:68::-;;;;;;;;;;-1:-1:-1;13790:68:0;;;;-1:-1:-1;;;;;13790:68:0;;;22483:111;;;;;;;;;;;;;:::i;16520:143::-;;;;;;;;;;-1:-1:-1;16520:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16628:18:0;;;16601:7;16628:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16520:143;14858:48;;;;;;;;;;;;;;;;14674:44;;;;;;;;;;-1:-1:-1;14674:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;14626:41;;;;;;;;;;-1:-1:-1;14626:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23270:99;;;;;;;;;;;;;:::i;15729:83::-;15766:13;15799:5;15792:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15729:83;:::o;16671:161::-;16746:4;16763:39;340:10;16786:7;16795:6;16763:8;:39::i;:::-;-1:-1:-1;16820:4:0;16671:161;;;;;:::o;23381:102::-;5417:6;;-1:-1:-1;;;;;5417:6:0;340:10;5417:22;5409:67;;;;-1:-1:-1;;;5409:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;23449:18:0::1;23470:5;23449:18:::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;23449:26:0::1;::::0;;23381:102::o;16840:313::-;16938:4;16955:36;16965:6;16973:9;16984:6;16955:9;:36::i;:::-;17002:121;17011:6;340:10;17033:89;17071:6;17033:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17033:19:0;;;;;;:11;:19;;;;;;;;340:10;17033:33;;;;;;;;;;:37;:89::i;:::-;17002:8;:121::i;:::-;-1:-1:-1;17141:4:0;16840:313;;;;;:::o;17512:81::-;5417:6;;-1:-1:-1;;;;;5417:6:0;340:10;5417:22;5409:67;;;;-1:-1:-1;;;5409:67:0;;;;;;;:::i;:::-;17575:4:::1;:10:::0;17512:81::o;16114:223::-;16214:13;;16180:7;;-1:-1:-1;;;;;16203:24:0;;;16214:13;;16203:24;16200:68;;;-1:-1:-1;;16249:19:0;;;16114:223::o;16200:68::-;16312:16;;-1:-1:-1;;;;;16286:21:0;;;;;;:12;:21;;;;;;:43;;:25;:43::i;5504:148::-;5417:6;;-1:-1:-1;;;;;5417:6:0;340:10;5417:22;5409:67;;;;-1:-1:-1;;;5409:67:0;;;;;;;:::i;:::-;5611:1:::1;5595:6:::0;;5574:40:::1;::::0;-1:-1:-1;;;;;5595:6:0;;::::1;::::0;5574:40:::1;::::0;5611:1;;5574:40:::1;5642:1;5625:19:::0;;-1:-1:-1;;;;;;5625:19:0::1;::::0;;5504:148::o;15820:87::-;15859:13;15892:7;15885:14;;;;;:::i;16345:167::-;16423:4;16440:42;340:10;16464:9;16475:6;16440:9;:42::i;23131:127::-;5417:6;;-1:-1:-1;;;;;5417:6:0;340:10;5417:22;5409:67;;;;-1:-1:-1;;;5409:67:0;;;;;;;:::i;:::-;23211:13:::1;:39:::0;;-1:-1:-1;;;;;;23211:39:0::1;-1:-1:-1::0;;;;;23211:39:0;;;::::1;::::0;;;::::1;::::0;;23131:127::o;23495:224::-;5417:6;;-1:-1:-1;;;;;5417:6:0;340:10;5417:22;5409:67;;;;-1:-1:-1;;;5409:67:0;;;;;;;:::i;:::-;23612:1:::1;23591:17;:22;;23583:79;;;::::0;-1:-1:-1;;;23583:79:0;;7045:2:1;23583:79:0::1;::::0;::::1;7027:21:1::0;7084:2;7064:18;;;7057:30;7123:34;7103:18;;;7096:62;-1:-1:-1;;;7174:18:1;;;7167:42;7226:19;;23583:79:0::1;7017:234:1::0;23583:79:0::1;23673:18;:38:::0;23495:224::o;22483:111::-;5417:6;;-1:-1:-1;;;;;5417:6:0;340:10;5417:22;5409:67;;;;-1:-1:-1;;;5409:67:0;;;;;;;:::i;:::-;5328:7;5355:6;;22542:44:::1;::::0;-1:-1:-1;;;;;5355:6:0;;;;22564:21:::1;22542:44:::0;::::1;;;::::0;22564:21;;22542:44;5328:7;22542:44;22564:21;5355:6;22542:44;::::1;-1:-1:-1::0;;;;;22483:111:0:o;23270:99::-;23316:5;;;;23312:50;;23338:5;:12;;-1:-1:-1;;23338:12:0;23346:4;23338:12;;;23312:50;23270:99::o;1972:132::-;2030:7;2057:39;2061:1;2064;2057:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2050:46;1972:132;-1:-1:-1;;;1972:132:0:o;17165:335::-;-1:-1:-1;;;;;17258:19:0;;17250:68;;;;-1:-1:-1;;;17250:68:0;;8979:2:1;17250:68:0;;;8961:21:1;9018:2;8998:18;;;8991:30;9057:34;9037:18;;;9030:62;-1:-1:-1;;;9108:18:1;;;9101:34;9152:19;;17250:68:0;8951:226:1;17250:68:0;-1:-1:-1;;;;;17337:21:0;;17329:68;;;;-1:-1:-1;;;17329:68:0;;6286:2:1;17329:68:0;;;6268:21:1;6325:2;6305:18;;;6298:30;6364:34;6344:18;;;6337:62;-1:-1:-1;;;6415:18:1;;;6408:32;6457:19;;17329:68:0;6258:224:1;17329:68:0;-1:-1:-1;;;;;17408:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17460:32;;9328:25:1;;;17460:32:0;;9301:18:1;17460:32:0;;;;;;;17165:335;;;:::o;17793:2570::-;-1:-1:-1;;;;;17881:18:0;;17873:68;;;;-1:-1:-1;;;17873:68:0;;8573:2:1;17873:68:0;;;8555:21:1;8612:2;8592:18;;;8585:30;8651:34;8631:18;;;8624:62;-1:-1:-1;;;8702:18:1;;;8695:35;8747:19;;17873:68:0;8545:227:1;17873:68:0;-1:-1:-1;;;;;17960:16:0;;17952:64;;;;-1:-1:-1;;;17952:64:0;;4288:2:1;17952:64:0;;;4270:21:1;4327:2;4307:18;;;4300:30;4366:34;4346:18;;;4339:62;-1:-1:-1;;;4417:18:1;;;4410:33;4460:19;;17952:64:0;4260:225:1;17952:64:0;18044:1;18035:6;:10;18027:71;;;;-1:-1:-1;;;18027:71:0;;5514:2:1;18027:71:0;;;5496:21:1;5553:2;5533:18;;;5526:30;5592:34;5572:18;;;5565:62;-1:-1:-1;;;5643:18:1;;;5636:46;5699:19;;18027:71:0;5486:238:1;18027:71:0;5328:7;5355:6;-1:-1:-1;;;;;18123:15:0;;;5355:6;;18123:15;;;;:32;;-1:-1:-1;5328:7:0;5355:6;-1:-1:-1;;;;;18142:13:0;;;5355:6;;18142:13;;18123:32;18119:2237;;;18172:21;18196:45;18237:3;18196:36;18213:18;;18196:12;;:16;;:36;;;;:::i;:::-;:40;;:45::i;:::-;18172:69;;18288:13;18278:6;:23;;18270:75;;;;-1:-1:-1;;;18270:75:0;;5106:2:1;18270:75:0;;;5088:21:1;5145:2;5125:18;;;5118:30;5184:34;5164:18;;;5157:62;-1:-1:-1;;;5235:18:1;;;5228:37;5282:19;;18270:75:0;5078:229:1;18270:75:0;18373:13;;-1:-1:-1;;;;;18365:21:0;;;18373:13;;18365:21;18362:1915;;-1:-1:-1;;;;;18416:15:0;;;;;;:9;:15;;;;;;;;18415:16;:34;;;;-1:-1:-1;;;;;;18436:13:0;;;;;;:9;:13;;;;;;;;18435:14;18415:34;18407:70;;;;-1:-1:-1;;;18407:70:0;;8221:2:1;18407:70:0;;;8203:21:1;8260:2;8240:18;;;8233:30;8299:25;8279:18;;;8272:53;8342:18;;18407:70:0;8193:173:1;18407:70:0;-1:-1:-1;;;;;18504:14:0;;;;;;:8;:14;;;;;;:19;;:82;;-1:-1:-1;18546:21:0;;-1:-1:-1;;;;;18527:14:0;;;;;;:8;:14;;;;;;18571:15;;18527:41;;:14;:18;:41::i;:::-;:59;18504:82;18496:121;;;;-1:-1:-1;;;18496:121:0;;5931:2:1;18496:121:0;;;5913:21:1;5970:2;5950:18;;;5943:30;6009:28;5989:18;;;5982:56;6055:18;;18496:121:0;5903:176:1;18496:121:0;18654:28;18685:24;18703:4;18685:9;:24::i;:::-;18751:16;;18654:55;;-1:-1:-1;18751:16:0;;;;;18750:17;:40;;;;-1:-1:-1;18777:13:0;;-1:-1:-1;;;;;18771:19:0;;;18777:13;;18771:19;18750:40;18746:364;;;18819:24;;18815:276;;18899:13;18876:20;:36;18872:137;;;-1:-1:-1;18968:13:0;18872:137;19035:32;19046:20;19035:10;:32::i;:::-;19207:13;;-1:-1:-1;;;;;19199:21:0;;;19207:13;;19199:21;;:44;;-1:-1:-1;19230:13:0;;-1:-1:-1;;;;;19224:19:0;;;19230:13;;19224:19;19199:44;19198:118;;;;-1:-1:-1;;;;;;19271:21:0;;19287:4;19271:21;;:44;;-1:-1:-1;;;;;;19296:19:0;;19310:4;19296:19;19271:44;19269:47;19198:118;19172:346;;;19359:38;19374:4;19380:2;19384:6;19392:4;;19359:14;:38::i;:::-;19172:346;;;19463:35;19478:4;19484:2;19488:6;19496:1;19463:14;:35::i;:::-;18362:1915;;;;19593:5;;;;19589:52;;-1:-1:-1;;;;;19621:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;19621:20:0;19637:4;19621:20;;;19589:52;19704:15;:13;19718:1;19704:15;:::i;:::-;19694:6;19678:13;19688:2;19678:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;19670:99;;;;-1:-1:-1;;;19670:99:0;;4692:2:1;19670:99:0;;;4674:21:1;4731:2;4711:18;;;4704:30;4770:34;4750:18;;;4743:62;-1:-1:-1;;;4821:18:1;;;4814:43;4874:19;;19670:99:0;4664:235:1;19670:99:0;-1:-1:-1;;;;;19806:12:0;;;;;;:8;:12;;;;;19821:15;19806:30;;19888:4;;19855:38;;19870:4;;19815:2;;19880:6;;19855:14;:38::i;:::-;19914:25;19942:44;19982:3;19942:35;19959:17;;19942:12;;:16;;:35;;;;:::i;:44::-;19914:72;;20005:22;20030:13;20040:2;20030:9;:13::i;:::-;20005:38;-1:-1:-1;20062:18:0;20083:26;20005:38;20102:6;20083:18;:26::i;:::-;20062:47;;20148:17;20131:14;:34;:68;;;;;20182:17;20169:10;:30;20131:68;20128:134;;;20224:18;20235:6;20224:10;:18::i;:::-;18362:1915;;;;18119:2237;17793:2570;;;:::o;18119:2237::-;20309:35;20324:4;20330:2;20334:6;20342:1;20309:14;:35::i;:::-;17793:2570;;;:::o;1520:190::-;1606:7;1642:12;1634:6;;;;1626:29;;;;-1:-1:-1;;;1626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1666:9:0;1678:5;1682:1;1678;:5;:::i;:::-;1666:17;1520:190;-1:-1:-1;;;;;1520:190:0:o;2112:189::-;2198:7;2233:12;2226:5;2218:28;;;;-1:-1:-1;;;2218:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2257:9:0;2269:5;2273:1;2269;:5;:::i;1718:246::-;1776:7;1800:6;1796:47;;-1:-1:-1;1830:1:0;1823:8;;1796:47;1853:9;1865:5;1869:1;1865;:5;:::i;:::-;1853:17;-1:-1:-1;1898:1:0;1889:5;1893:1;1853:17;1889:5;:::i;:::-;:10;1881:56;;;;-1:-1:-1;;;1881:56:0;;7458:2:1;1881:56:0;;;7440:21:1;7497:2;7477:18;;;7470:30;7536:34;7516:18;;;7509:62;-1:-1:-1;;;7587:18:1;;;7580:31;7628:19;;1881:56:0;7430:223:1;1189:179:0;1247:7;;1279:5;1283:1;1279;:5;:::i;:::-;1267:17;;1308:1;1303;:6;;1295:46;;;;-1:-1:-1;;;1295:46:0;;6689:2:1;1295:46:0;;;6671:21:1;6728:2;6708:18;;;6701:30;6767:29;6747:18;;;6740:57;6814:18;;1295:46:0;6661:177:1;21432:293:0;15089:16;:23;;-1:-1:-1;;15089:23:0;;;;;21513:38:::1;21530:20:::0;21513:16:::1;:38::i;:::-;21593:21;21629:22:::0;;21625:93:::1;;21668:38;21684:21;21668:15;:38::i;:::-;-1:-1:-1::0;;15135:16:0;:24;;-1:-1:-1;;15135:24:0;;;21432:293::o;20375:1045::-;20486:13;;-1:-1:-1;;;;;20480:19:0;;;20486:13;;20480:19;20477:198;;;20536:19;;:31;;20560:6;20536:23;:31::i;:::-;20514:19;:53;20477:198;;;20594:13;;-1:-1:-1;;;;;20586:21:0;;;20594:13;;20586:21;20583:92;;;20644:19;;:31;;20668:6;20644:23;:31::i;:::-;20622:19;:53;20583:92;20696:17;20742:11;;20738:83;;20782:27;20805:3;20782:18;:6;20793;20782:10;:18::i;:27::-;20770:39;;20738:83;20833:22;20858:21;:6;20869:9;20858:10;:21::i;:::-;20833:46;;20900:21;20924:28;20935:16;;20924:6;:10;;:28;;;;:::i;:::-;20900:52;;20963:16;20982:36;21001:16;;20982:14;:18;;:36;;;;:::i;:::-;20963:55;;21029:20;21052:31;21066:16;;21052:9;:13;;:31;;;;:::i;:::-;-1:-1:-1;;;;;21125:18:0;;;;;;:12;:18;;;;;;21029:54;;-1:-1:-1;21125:37:0;;21148:13;21125:22;:37::i;:::-;-1:-1:-1;;;;;21104:18:0;;;;;;;:12;:18;;;;;;:58;;;;21192:16;;;;;;;:30;;21213:8;21192:20;:30::i;:::-;-1:-1:-1;;;;;21173:16:0;;;;;;;:12;:16;;;;;;;:49;;;;21248:34;;;;;;;;;;21267:14;9328:25:1;;9316:2;9301:18;;9283:76;21248:34:0;;;;;;;;21306:16;;21303:109;;21388:4;21367:27;;;;:12;:27;;;;;;:45;;21399:12;21367:31;:45::i;:::-;21358:4;21337:27;;;;:12;:27;;;;;:75;21303:109;20375:1045;;;;;;;;;:::o;17605:180::-;17677:42;17694:24;17713:4;17695:12;:7;17703:4;17695:12;:::i;17694:24::-;17677:12;;;:16;:42::i;:::-;17662:12;:57;;;17749:28;;14278:38;14204:14;-1:-1:-1;;14278:38:0;:::i;:::-;14263:54;;-1:-1:-1;;14263:54:0;:::i;17749:28::-;17730:16;:47;-1:-1:-1;17605:180:0:o;21846:528::-;21936:16;;;21950:1;21936:16;;;;;;;;21912:21;;21936:16;;;;;;;;;;-1:-1:-1;21936:16:0;21912:40;;21981:4;21963;21968:1;21963:7;;;;;;-1:-1:-1;;;21963:7:0;;;;;;;;;-1:-1:-1;;;;;21963:23:0;;;:7;;;;;;;;;;:23;;;;22007:15;;:22;;;-1:-1:-1;;;22007:22:0;;;;:15;;;;;:20;;:22;;;;;21963:7;;22007:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21997:4;22002:1;21997:7;;;;;;-1:-1:-1;;;21997:7:0;;;;;;;;;-1:-1:-1;;;;;21997:32:0;;;:7;;;;;;;;;:32;22074:15;;22042:62;;22059:4;;22074:15;22092:11;22042:8;:62::i;:::-;22117:15;;:196;;-1:-1:-1;;;22117:196:0;;-1:-1:-1;;;;;22117:15:0;;;;:66;;:196;;22198:11;;22117:15;;22240:4;;22267;;22287:15;;22117:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22331:35;22348:11;22361:4;22331:35;;;;;;;:::i;:::-;;;;;;;;21846:528;;:::o;21733:105::-;21793:13;;:37;;-1:-1:-1;;;;;21793:13:0;;;;21819:6;;21793:37;;;;21819:6;21793:13;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1376:136;1434:7;1461:43;1465:1;1468;1461:43;;;;;;;;;;;;;;;;;:3;:43::i;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:190::-;1805:6;1858:2;1846:9;1837:7;1833:23;1829:32;1826:2;;;1879:6;1871;1864:22;1826:2;-1:-1:-1;1907:23:1;;1816:120;-1:-1:-1;1816:120:1:o;1941:463::-;1994:3;2032:5;2026:12;2059:6;2054:3;2047:19;2085:4;2114:2;2109:3;2105:12;2098:19;;2151:2;2144:5;2140:14;2172:3;2184:195;2198:6;2195:1;2192:13;2184:195;;;2263:13;;-1:-1:-1;;;;;2259:39:1;2247:52;;2319:12;;;;2354:15;;;;2295:1;2213:9;2184:195;;;-1:-1:-1;2395:3:1;;2002:402;-1:-1:-1;;;;;2002:402:1:o;3478:603::-;3590:4;3619:2;3648;3637:9;3630:21;3680:6;3674:13;3723:6;3718:2;3707:9;3703:18;3696:34;3748:4;3761:140;3775:6;3772:1;3769:13;3761:140;;;3870:14;;;3866:23;;3860:30;3836:17;;;3855:2;3832:26;3825:66;3790:10;;3761:140;;;3919:6;3916:1;3913:13;3910:2;;;3989:4;3984:2;3975:6;3964:9;3960:22;3956:31;3949:45;3910:2;-1:-1:-1;4065:2:1;4044:15;-1:-1:-1;;4040:29:1;4025:45;;;;4072:2;4021:54;;3599:482;-1:-1:-1;;;3599:482:1:o;7658:356::-;7860:2;7842:21;;;7879:18;;;7872:30;7938:34;7933:2;7918:18;;7911:62;8005:2;7990:18;;7832:182::o;9364:332::-;9571:6;9560:9;9553:25;9614:2;9609;9598:9;9594:18;9587:30;9534:4;9634:56;9686:2;9675:9;9671:18;9663:6;9634:56;:::i;:::-;9626:64;9543:153;-1:-1:-1;;;;9543:153:1:o;9701:582::-;10000:6;9989:9;9982:25;10043:6;10038:2;10027:9;10023:18;10016:34;10086:3;10081:2;10070:9;10066:18;10059:31;9963:4;10107:57;10159:3;10148:9;10144:19;10136:6;10107:57;:::i;:::-;-1:-1:-1;;;;;10200:32:1;;;;10195:2;10180:18;;10173:60;-1:-1:-1;10264:3:1;10249:19;10242:35;10099:65;9972:311;-1:-1:-1;;;9972:311:1:o;10477:128::-;10517:3;10548:1;10544:6;10541:1;10538:13;10535:2;;;10554:18;;:::i;:::-;-1:-1:-1;10590:9:1;;10525:80::o;10610:120::-;10650:1;10676;10666:2;;10681:18;;:::i;:::-;-1:-1:-1;10715:9:1;;10656:74::o;10735:168::-;10775:7;10841:1;10837;10833:6;10829:14;10826:1;10823:21;10818:1;10811:9;10804:17;10800:45;10797:2;;;10848:18;;:::i;:::-;-1:-1:-1;10888:9:1;;10787:116::o;10908:125::-;10948:4;10976:1;10973;10970:8;10967:2;;;10981:18;;:::i;:::-;-1:-1:-1;11018:9:1;;10957:76::o;11038:380::-;11117:1;11113:12;;;;11160;;;11181:2;;11235:4;11227:6;11223:17;11213:27;;11181:2;11288;11280:6;11277:14;11257:18;11254:38;11251:2;;;11334:10;11329:3;11325:20;11322:1;11315:31;11369:4;11366:1;11359:15;11397:4;11394:1;11387:15;11251:2;;11093:325;;;:::o;11423:112::-;11455:1;11481;11471:2;;11486:18;;:::i;:::-;-1:-1:-1;11520:9:1;;11461:74::o;11540:127::-;11601:10;11596:3;11592:20;11589:1;11582:31;11632:4;11629:1;11622:15;11656:4;11653:1;11646:15;11672:127;11733:10;11728:3;11724:20;11721:1;11714:31;11764:4;11761:1;11754:15;11788:4;11785:1;11778:15;11804:131;-1:-1:-1;;;;;11879:31:1;;11869:42;;11859:2;;11925:1;11922;11915:12;11859:2;11849:86;:::o

Swarm Source

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