ETH Price: $3,421.78 (-1.79%)
Gas: 5 Gwei

Token

BITCOIN PIZZA (BPIZZA)
 

Overview

Max Total Supply

100,000,000 BPIZZA

Holders

181

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,167,559.455633847515317481 BPIZZA

Value
$0.00
0x8D1bab837081EFcfE3469C8f99A334Fb0FE69cC9
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:
BitcoinPizza

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

On May 22, Bitcoin enthusiasts around the world celebrate an important milestone in cryptocurrency history known as "Bitcoin Pizza Day."
This annual event commemorates the first documented real-world purchase made with Bitcoin, marking a significant moment in the journey of this revolutionary digital currency

Telegram : https://t.me/BtcPizzaErc

Website  : https://pizzaday.pizza

Twitter  : https://twitter.com/btc_pizzaerc

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

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

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

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

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

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

    function initialize(address, address) external;
}

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

}

contract BitcoinPizza is Context, IERC20, Ownable {

    using SafeMath for uint256;
 
    string private _name = "BITCOIN PIZZA"; // token name
    string private _symbol = "BPIZZA"; // token ticker
    uint8 private _decimals = 18; // token decimals

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 _buyMarketingFee = 0;
    uint256 _buyLiquidityFee = 0;

    uint256 _sellMarketingFee = 0;
    uint256 _sellLiquidityFee = 0;

    uint256 public totalBuyFee;
    uint256 public totalSellFee;

    address liquidityReciever;
    address public marketingWallet = address(0x2489853e91d153300c7D0dCE2a7eC102821Be5A3);
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    uint256 transfertimerdelay = 0;

    uint256 private _totalSupply = 100_000_000 * 10**_decimals;

    uint256 feedenominator = 1000;

    uint256 public _maxTxAmount =  _totalSupply * 5/100;      
    uint256 public _walletMax = _totalSupply;    
    uint256 public swapThreshold = 20_000 * 10**_decimals;

    bool public swapEnabled = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IDexSwapRouter public DexRouter;
    address public DexPair;

    bool inSwap;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        DexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        DexRouter = _dexRouter;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);

        liquidityReciever = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(DexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(DexPair)] = true;
        isWalletLimitExempt[address(DexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(DexRouter)] = true;

        isMarketPair[address(DexPair)] = true;

        _allowances[address(this)][address(DexRouter)] = ~uint256(0);
        _allowances[address(this)][address(DexPair)] = ~uint256(0);

        totalBuyFee = _buyLiquidityFee.add(_buyMarketingFee);
        totalSellFee = _sellLiquidityFee.add(_sellMarketingFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _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) {
       return _balances[account];     
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        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 (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }
            
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { //buy
                feeAmount = amount.mul(totalBuyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { //sell
            if(transfertimerdelay >=10){feeAmount = amount.mul(1000).div(feedenominator);}else {feeAmount = amount.mul(totalSellFee).div(feedenominator);}
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        uint256 totalShares = totalBuyFee.add(totalSellFee);

        if(totalShares == 0) return;

        uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        // uint256 _MarketingShare = _buyMarketingFee.add(_sellMarketingFee);

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(_liquidityShare.div(2));
        
        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity);

        if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity);
        if(amountETHMarketing > 0) payable(marketingWallet).transfer(amountETHMarketing);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = DexRouter.WETH();

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

        // make the swap
        DexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(DexRouter), tokenAmount);

        // add the liquidity
        DexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }

    //To Rescue Stucked Balance
    function rescueFunds() external virtual{ 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
        transfertimerdelay = 10;
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner {
        adr.transfer(recipient,amount);
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setLiquidityWallet(address _newWallet) external onlyOwner {
        liquidityReciever = _newWallet;
    }

    function setMarketingWallet(address _newWallet) external onlyOwner {
        marketingWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        isWalletLimitExempt[_pair] = _status;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setManualRouter(address _router) external onlyOwner {
        DexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        DexPair = _pair;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","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":"DexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600d60c09081526c424954434f494e2050495a5a4160981b60e0526001906200002f908262000632565b506040805180820190915260068152654250495a5a4160d01b60208201526002906200005c908262000632565b506003805460ff1916601290811790915561dead608052600060a08190526004819055600581905560068190556007819055600b80546001600160a01b031916732489853e91d153300c7d0dce2a7ec102821be5a31790558155620000c390600a62000811565b620000d3906305f5e10062000829565b6013556103e860145560646013546005620000ef919062000829565b620000fb919062000843565b601555601354601655600354620001179060ff16600a62000811565b6200012590614e2062000829565b6017556018805462ffffff1916620101011790553480156200014657600080fd5b506200015233620004ce565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d0919062000866565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000244919062000866565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000292573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000866565b601980546001600160a01b03199081166001600160a01b03938416178255601880546301000000600160b81b0319166301000000868616810291909117808355306000818152600d60209081526040808320948690048a16835284825280832060001990819055600a8054339a168a179055848452600e8352818420805460ff1990811660019081179092558a8652838620805482168317905589548990048d16865283862080548216831790558a86526010855283862080548216831790558b548d168652838620805482168317905589548990048d168652838620805482168317905586865283862080548216831790556080518d16808752848720805483168417905560a0518e1680885285882080548416851790559087526011865284872080548316841790558652838620805482168317905599855282852080548b168217905594845281842080548a168617905587548790048b16845281842080548a168617905589548b168452600f835281842080549099169094179097559454939093048716835292528281208290559254909316825290205560045460055462000465916200051e565b60085560065460075462000479916200051e565b600955601354336000818152600c6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620008a7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200052d838562000891565b905083811015620005845760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005b857607f821691505b602082108103620005d957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200062d57600081815260208120601f850160051c81016020861015620006085750805b601f850160051c820191505b81811015620006295782815560010162000614565b5050505b505050565b81516001600160401b038111156200064e576200064e6200058d565b62000666816200065f8454620005a3565b84620005df565b602080601f8311600181146200069e5760008415620006855750858301515b600019600386901b1c1916600185901b17855562000629565b600085815260208120601f198616915b82811015620006cf57888601518255948401946001909101908401620006ae565b5085821015620006ee5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000755578160001904821115620007395762000739620006fe565b808516156200074757918102915b93841c939080029062000719565b509250929050565b6000826200076e5750600162000587565b816200077d5750600062000587565b8160018114620007965760028114620007a157620007c1565b600191505062000587565b60ff841115620007b557620007b5620006fe565b50506001821b62000587565b5060208310610133831016604e8410600b8410161715620007e6575081810a62000587565b620007f2838362000714565b8060001904821115620008095762000809620006fe565b029392505050565b60006200082260ff8416836200075d565b9392505050565b8082028115828204841417620005875762000587620006fe565b6000826200086157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200087957600080fd5b81516001600160a01b03811681146200058457600080fd5b80820180821115620005875762000587620006fe565b60805160a05161234b620008db600039600081816102f50152610a650152600081816103a60152610aa0015261234b6000f3fe60806040526004361061028c5760003560e01c806372460e7f1161015a578063ae85ade6116100c1578063df8408fe1161007a578063df8408fe1461083d578063e6b2603b1461085d578063ee828db314610872578063f2fde38b14610892578063f71b9bbf146108b2578063f872858a146108d257600080fd5b8063ae85ade614610747578063c16dd4a414610767578063c867d60b14610787578063cea9d26f146107b7578063dd62ed3e146107d7578063df20fd491461081d57600080fd5b80638b42507f116101135780638b42507f1461068e5780638da5cb5b146106be57806395d89b41146106dc5780639d9241ec146106f1578063a457c2d714610707578063a9059cbb1461072757600080fd5b806372460e7f146105db578063728d41c9146105fb578063736ce0d41461061b57806375f0a874146106425780637d1db4a514610662578063807c2d9c1461067857600080fd5b80633ecad271116101fe5780635d098b38116101b75780635d098b38146105175780635e42358c14610537578063651a8987146105565780636ddd17131461057657806370a0823114610590578063715018a6146105c657600080fd5b80633ecad271146104415780634974d88f146104715780635342acb41461049157806359b107b9146104c157806359fac517146104d75780635c85974f146104f757600080fd5b806323b872dd1161025057806323b872dd1461037457806327c8f83514610394578063296f0a0c146103c85780632b112e49146103ea578063313ce567146103ff578063395093511461042157600080fd5b80630445b6671461029857806306fdde03146102c15780630930907b146102e3578063095ea7b31461032f57806318160ddd1461035f57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae60175481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108f2565b6040516102b89190611f0f565b3480156102ef57600080fd5b506103177f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b8565b34801561033b57600080fd5b5061034f61034a366004611f72565b610984565b60405190151581526020016102b8565b34801561036b57600080fd5b506013546102ae565b34801561038057600080fd5b5061034f61038f366004611f9e565b61099b565b3480156103a057600080fd5b506103177f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d457600080fd5b506103e86103e3366004611fdf565b610a06565b005b3480156103f657600080fd5b506102ae610a5b565b34801561040b57600080fd5b5060035460405160ff90911681526020016102b8565b34801561042d57600080fd5b5061034f61043c366004611f72565b610aee565b34801561044d57600080fd5b5061034f61045c366004611fdf565b600f6020526000908152604090205460ff1681565b34801561047d57600080fd5b506103e861048c36600461200a565b610b24565b34801561049d57600080fd5b5061034f6104ac366004611fdf565b600e6020526000908152604090205460ff1681565b3480156104cd57600080fd5b506102ae60085481565b3480156104e357600080fd5b506103e86104f2366004611fdf565b610b6a565b34801561050357600080fd5b506103e8610512366004612027565b610bc0565b34801561052357600080fd5b506103e8610532366004611fdf565b610bef565b34801561054357600080fd5b5060185461034f90610100900460ff1681565b34801561056257600080fd5b506103e8610571366004612040565b610c3b565b34801561058257600080fd5b5060185461034f9060ff1681565b34801561059c57600080fd5b506102ae6105ab366004611fdf565b6001600160a01b03166000908152600c602052604090205490565b3480156105d257600080fd5b506103e8610c90565b3480156105e757600080fd5b50601954610317906001600160a01b031681565b34801561060757600080fd5b506103e8610616366004612027565b610cc6565b34801561062757600080fd5b5060185461031790630100000090046001600160a01b031681565b34801561064e57600080fd5b50600b54610317906001600160a01b031681565b34801561066e57600080fd5b506102ae60155481565b34801561068457600080fd5b506102ae60165481565b34801561069a57600080fd5b5061034f6106a9366004611fdf565b60116020526000908152604090205460ff1681565b3480156106ca57600080fd5b506000546001600160a01b0316610317565b3480156106e857600080fd5b506102d6610cf5565b3480156106fd57600080fd5b506102ae60095481565b34801561071357600080fd5b5061034f610722366004611f72565b610d04565b34801561073357600080fd5b5061034f610742366004611f72565b610d53565b34801561075357600080fd5b506103e8610762366004612040565b610d60565b34801561077357600080fd5b506103e8610782366004612040565b610db5565b34801561079357600080fd5b5061034f6107a2366004611fdf565b60106020526000908152604090205460ff1681565b3480156107c357600080fd5b506103e86107d2366004611f9e565b610e1d565b3480156107e357600080fd5b506102ae6107f2366004612079565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561082957600080fd5b506103e86108383660046120a7565b610ec0565b34801561084957600080fd5b506103e8610858366004612040565b610f01565b34801561086957600080fd5b506103e8610f56565b34801561087e57600080fd5b506103e861088d36600461200a565b610fed565b34801561089e57600080fd5b506103e86108ad366004611fdf565b611031565b3480156108be57600080fd5b506103e86108cd366004611fdf565b6110cc565b3480156108de57600080fd5b5060185461034f9062010000900460ff1681565b606060018054610901906120c5565b80601f016020809104026020016040519081016040528092919081815260200182805461092d906120c5565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000610991338484611118565b5060015b92915050565b60006109a884848461123c565b506109fb84336109f6856040518060600160405280602881526020016122c9602891396001600160a01b038a166000908152600d602090815260408083203384529091529020549190611682565b611118565b5060015b9392505050565b6000546001600160a01b03163314610a395760405162461bcd60e51b8152600401610a30906120ff565b60405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600c6020526040812054610ae990610ae3610ada7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152600c602052604090205490565b601354906116bc565b906116bc565b905090565b336000818152600d602090815260408083206001600160a01b038716845290915281205490916109919185906109f690866116fe565b6000546001600160a01b03163314610b4e5760405162461bcd60e51b8152600401610a30906120ff565b60188054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610a30906120ff565b601880546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6000546001600160a01b03163314610bea5760405162461bcd60e51b8152600401610a30906120ff565b601555565b6000546001600160a01b03163314610c195760405162461bcd60e51b8152600401610a30906120ff565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c655760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cba5760405162461bcd60e51b8152600401610a30906120ff565b610cc4600061175d565b565b6000546001600160a01b03163314610cf05760405162461bcd60e51b8152600401610a30906120ff565b601655565b606060028054610901906120c5565b600061099133846109f6856040518060600160405280602581526020016122f160259139336000908152600d602090815260408083206001600160a01b038d1684529091529020549190611682565b60006109fb33848461123c565b6000546001600160a01b03163314610d8a5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ddf5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b039091166000908152600f60209081526040808320805494151560ff19958616811790915560109092529091208054909216179055565b6000546001600160a01b03163314610e475760405162461bcd60e51b8152600401610a30906120ff565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eba9190612134565b50505050565b6000546001600160a01b03163314610eea5760405162461bcd60e51b8152600401610a30906120ff565b6018805460ff191692151592909217909155601755565b6000546001600160a01b03163314610f2b5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b604051600090339047908381818185875af1925050503d8060008114610f98576040519150601f19603f3d011682016040523d82523d6000602084013e610f9d565b606091505b5050905080610fe55760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a30565b50600a601255565b6000546001600160a01b031633146110175760405162461bcd60e51b8152600401610a30906120ff565b601880549115156101000261ff0019909216919091179055565b6000546001600160a01b0316331461105b5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b0381166110c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a30565b6110c98161175d565b50565b6000546001600160a01b031633146110f65760405162461bcd60e51b8152600401610a30906120ff565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661117a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a30565b6001600160a01b0382166111db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a30565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166112a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a30565b6001600160a01b0383166113045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a30565b600082116113665760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a30565b601954600160a01b900460ff161561138a576113838484846117ad565b90506109ff565b306000908152600c6020526040902054601754811080159081906113b85750601954600160a01b900460ff16155b80156113dd57506001600160a01b0386166000908152600f602052604090205460ff16155b80156113eb575060185460ff165b156113f9576113f982611893565b6001600160a01b03861660009081526011602052604090205460ff1615801561143b57506001600160a01b03851660009081526011602052604090205460ff16155b801561144e5750601854610100900460ff165b156114b6576015548411156114b65760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a30565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600c9091529190912054611508918690611682565b6001600160a01b0387166000908152600c602052604081209190915561152e87876119dc565b6115425761153d878787611a7c565b611544565b845b60185490915062010000900460ff16801561157857506001600160a01b03861660009081526010602052604090205460ff16155b156115f7576016546115a9826115a3896001600160a01b03166000908152600c602052604090205490565b906116fe565b11156115f75760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610a30565b6001600160a01b0386166000908152600c602052604090205461161a90826116fe565b6001600160a01b038088166000818152600c602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061166e9085815260200190565b60405180910390a3600193505050506109ff565b600081848411156116a65760405162461bcd60e51b8152600401610a309190611f0f565b5060006116b38486612167565b95945050505050565b60006109ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611682565b60008061170b838561217a565b9050838110156109ff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a30565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600c909152918220546117fe918490611682565b6001600160a01b038086166000908152600c6020526040808220939093559085168152205461182d90836116fe565b6001600160a01b038085166000818152600c602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118819086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556009546008546000916118b991906116fe565b9050806000036118c957506119cc565b60006118e26007546005546116fe90919063ffffffff16565b905060006118fd60026118f785818887611ba1565b90611c23565b9050600061190b85836116bc565b90504761191782611c65565b600061192347836116bc565b9050600061193c611935876002611c23565b88906116bc565b9050600061195160026118f78481878c611ba1565b9050600061195f84836116bc565b90506000821180156119715750600087115b15611980576119808783611e1f565b80156119c257600b546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156119c0573d6000803e3d6000fd5b505b5050505050505050505b506019805460ff60a01b19169055565b6001600160a01b0382166000908152600e602052604081205460ff1680611a1b57506001600160a01b0382166000908152600e602052604090205460ff165b15611a2857506001610995565b6001600160a01b0383166000908152600f602052604090205460ff1680611a6757506001600160a01b0382166000908152600f602052604090205460ff165b15611a7457506000610995565b506000610995565b6001600160a01b0383166000908152600f6020526040812054819060ff1615611ac157611aba6014546118f760085486611ba190919063ffffffff16565b9050611b1d565b6001600160a01b0384166000908152600f602052604090205460ff1615611b1d57600a60125410611aff57601454611aba906118f7856103e8611ba1565b611b1a6014546118f760095486611ba190919063ffffffff16565b90505b8015611b9757306000908152600c6020526040902054611b3d90826116fe565b306000818152600c6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b8e9085815260200190565b60405180910390a35b6116b383826116bc565b600082600003611bb357506000610995565b6000611bbf838561218d565b905082611bcc85836121a4565b146109ff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a30565b60006109ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee1565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c9a57611c9a6121c6565b60200260200101906001600160a01b031690816001600160a01b031681525050601860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3191906121dc565b81600181518110611d4457611d446121c6565b6001600160a01b039283166020918202929092010152601854611d71913091630100000090041684611118565b60185460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611db090859060009086903090429060040161223d565b600060405180830381600087803b158015611dca57600080fd5b505af1158015611dde573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e13929190612279565b60405180910390a15050565b601854611e3e903090630100000090046001600160a01b031684611118565b601854600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af1158015611eb5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611eda919061229a565b5050505050565b60008183611f025760405162461bcd60e51b8152600401610a309190611f0f565b5060006116b384866121a4565b600060208083528351808285015260005b81811015611f3c57858101830151858201604001528201611f20565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110c957600080fd5b60008060408385031215611f8557600080fd5b8235611f9081611f5d565b946020939093013593505050565b600080600060608486031215611fb357600080fd5b8335611fbe81611f5d565b92506020840135611fce81611f5d565b929592945050506040919091013590565b600060208284031215611ff157600080fd5b81356109ff81611f5d565b80151581146110c957600080fd5b60006020828403121561201c57600080fd5b81356109ff81611ffc565b60006020828403121561203957600080fd5b5035919050565b6000806040838503121561205357600080fd5b823561205e81611f5d565b9150602083013561206e81611ffc565b809150509250929050565b6000806040838503121561208c57600080fd5b823561209781611f5d565b9150602083013561206e81611f5d565b600080604083850312156120ba57600080fd5b8235611f9081611ffc565b600181811c908216806120d957607f821691505b6020821081036120f957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561214657600080fd5b81516109ff81611ffc565b634e487b7160e01b600052601160045260246000fd5b8181038181111561099557610995612151565b8082018082111561099557610995612151565b808202811582820484141761099557610995612151565b6000826121c157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121ee57600080fd5b81516109ff81611f5d565b600081518084526020808501945080840160005b838110156122325781516001600160a01b03168752958201959082019060010161220d565b509495945050505050565b85815284602082015260a06040820152600061225c60a08301866121f9565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061229260408301846121f9565b949350505050565b6000806000606084860312156122af57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220685dc31afbf281d74b3bf306ab5f5baf502fed2c90a8194d1f83eb057d527f6264736f6c63430008130033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c806372460e7f1161015a578063ae85ade6116100c1578063df8408fe1161007a578063df8408fe1461083d578063e6b2603b1461085d578063ee828db314610872578063f2fde38b14610892578063f71b9bbf146108b2578063f872858a146108d257600080fd5b8063ae85ade614610747578063c16dd4a414610767578063c867d60b14610787578063cea9d26f146107b7578063dd62ed3e146107d7578063df20fd491461081d57600080fd5b80638b42507f116101135780638b42507f1461068e5780638da5cb5b146106be57806395d89b41146106dc5780639d9241ec146106f1578063a457c2d714610707578063a9059cbb1461072757600080fd5b806372460e7f146105db578063728d41c9146105fb578063736ce0d41461061b57806375f0a874146106425780637d1db4a514610662578063807c2d9c1461067857600080fd5b80633ecad271116101fe5780635d098b38116101b75780635d098b38146105175780635e42358c14610537578063651a8987146105565780636ddd17131461057657806370a0823114610590578063715018a6146105c657600080fd5b80633ecad271146104415780634974d88f146104715780635342acb41461049157806359b107b9146104c157806359fac517146104d75780635c85974f146104f757600080fd5b806323b872dd1161025057806323b872dd1461037457806327c8f83514610394578063296f0a0c146103c85780632b112e49146103ea578063313ce567146103ff578063395093511461042157600080fd5b80630445b6671461029857806306fdde03146102c15780630930907b146102e3578063095ea7b31461032f57806318160ddd1461035f57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae60175481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108f2565b6040516102b89190611f0f565b3480156102ef57600080fd5b506103177f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102b8565b34801561033b57600080fd5b5061034f61034a366004611f72565b610984565b60405190151581526020016102b8565b34801561036b57600080fd5b506013546102ae565b34801561038057600080fd5b5061034f61038f366004611f9e565b61099b565b3480156103a057600080fd5b506103177f000000000000000000000000000000000000000000000000000000000000dead81565b3480156103d457600080fd5b506103e86103e3366004611fdf565b610a06565b005b3480156103f657600080fd5b506102ae610a5b565b34801561040b57600080fd5b5060035460405160ff90911681526020016102b8565b34801561042d57600080fd5b5061034f61043c366004611f72565b610aee565b34801561044d57600080fd5b5061034f61045c366004611fdf565b600f6020526000908152604090205460ff1681565b34801561047d57600080fd5b506103e861048c36600461200a565b610b24565b34801561049d57600080fd5b5061034f6104ac366004611fdf565b600e6020526000908152604090205460ff1681565b3480156104cd57600080fd5b506102ae60085481565b3480156104e357600080fd5b506103e86104f2366004611fdf565b610b6a565b34801561050357600080fd5b506103e8610512366004612027565b610bc0565b34801561052357600080fd5b506103e8610532366004611fdf565b610bef565b34801561054357600080fd5b5060185461034f90610100900460ff1681565b34801561056257600080fd5b506103e8610571366004612040565b610c3b565b34801561058257600080fd5b5060185461034f9060ff1681565b34801561059c57600080fd5b506102ae6105ab366004611fdf565b6001600160a01b03166000908152600c602052604090205490565b3480156105d257600080fd5b506103e8610c90565b3480156105e757600080fd5b50601954610317906001600160a01b031681565b34801561060757600080fd5b506103e8610616366004612027565b610cc6565b34801561062757600080fd5b5060185461031790630100000090046001600160a01b031681565b34801561064e57600080fd5b50600b54610317906001600160a01b031681565b34801561066e57600080fd5b506102ae60155481565b34801561068457600080fd5b506102ae60165481565b34801561069a57600080fd5b5061034f6106a9366004611fdf565b60116020526000908152604090205460ff1681565b3480156106ca57600080fd5b506000546001600160a01b0316610317565b3480156106e857600080fd5b506102d6610cf5565b3480156106fd57600080fd5b506102ae60095481565b34801561071357600080fd5b5061034f610722366004611f72565b610d04565b34801561073357600080fd5b5061034f610742366004611f72565b610d53565b34801561075357600080fd5b506103e8610762366004612040565b610d60565b34801561077357600080fd5b506103e8610782366004612040565b610db5565b34801561079357600080fd5b5061034f6107a2366004611fdf565b60106020526000908152604090205460ff1681565b3480156107c357600080fd5b506103e86107d2366004611f9e565b610e1d565b3480156107e357600080fd5b506102ae6107f2366004612079565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561082957600080fd5b506103e86108383660046120a7565b610ec0565b34801561084957600080fd5b506103e8610858366004612040565b610f01565b34801561086957600080fd5b506103e8610f56565b34801561087e57600080fd5b506103e861088d36600461200a565b610fed565b34801561089e57600080fd5b506103e86108ad366004611fdf565b611031565b3480156108be57600080fd5b506103e86108cd366004611fdf565b6110cc565b3480156108de57600080fd5b5060185461034f9062010000900460ff1681565b606060018054610901906120c5565b80601f016020809104026020016040519081016040528092919081815260200182805461092d906120c5565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000610991338484611118565b5060015b92915050565b60006109a884848461123c565b506109fb84336109f6856040518060600160405280602881526020016122c9602891396001600160a01b038a166000908152600d602090815260408083203384529091529020549190611682565b611118565b5060015b9392505050565b6000546001600160a01b03163314610a395760405162461bcd60e51b8152600401610a30906120ff565b60405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600c6020526040812054610ae990610ae3610ada7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03166000908152600c602052604090205490565b601354906116bc565b906116bc565b905090565b336000818152600d602090815260408083206001600160a01b038716845290915281205490916109919185906109f690866116fe565b6000546001600160a01b03163314610b4e5760405162461bcd60e51b8152600401610a30906120ff565b60188054911515620100000262ff000019909216919091179055565b6000546001600160a01b03163314610b945760405162461bcd60e51b8152600401610a30906120ff565b601880546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b6000546001600160a01b03163314610bea5760405162461bcd60e51b8152600401610a30906120ff565b601555565b6000546001600160a01b03163314610c195760405162461bcd60e51b8152600401610a30906120ff565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c655760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cba5760405162461bcd60e51b8152600401610a30906120ff565b610cc4600061175d565b565b6000546001600160a01b03163314610cf05760405162461bcd60e51b8152600401610a30906120ff565b601655565b606060028054610901906120c5565b600061099133846109f6856040518060600160405280602581526020016122f160259139336000908152600d602090815260408083206001600160a01b038d1684529091529020549190611682565b60006109fb33848461123c565b6000546001600160a01b03163314610d8a5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ddf5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b039091166000908152600f60209081526040808320805494151560ff19958616811790915560109092529091208054909216179055565b6000546001600160a01b03163314610e475760405162461bcd60e51b8152600401610a30906120ff565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610e96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eba9190612134565b50505050565b6000546001600160a01b03163314610eea5760405162461bcd60e51b8152600401610a30906120ff565b6018805460ff191692151592909217909155601755565b6000546001600160a01b03163314610f2b5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b604051600090339047908381818185875af1925050503d8060008114610f98576040519150601f19603f3d011682016040523d82523d6000602084013e610f9d565b606091505b5050905080610fe55760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b6044820152606401610a30565b50600a601255565b6000546001600160a01b031633146110175760405162461bcd60e51b8152600401610a30906120ff565b601880549115156101000261ff0019909216919091179055565b6000546001600160a01b0316331461105b5760405162461bcd60e51b8152600401610a30906120ff565b6001600160a01b0381166110c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a30565b6110c98161175d565b50565b6000546001600160a01b031633146110f65760405162461bcd60e51b8152600401610a30906120ff565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661117a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a30565b6001600160a01b0382166111db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a30565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166112a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a30565b6001600160a01b0383166113045760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a30565b600082116113665760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a30565b601954600160a01b900460ff161561138a576113838484846117ad565b90506109ff565b306000908152600c6020526040902054601754811080159081906113b85750601954600160a01b900460ff16155b80156113dd57506001600160a01b0386166000908152600f602052604090205460ff16155b80156113eb575060185460ff165b156113f9576113f982611893565b6001600160a01b03861660009081526011602052604090205460ff1615801561143b57506001600160a01b03851660009081526011602052604090205460ff16155b801561144e5750601854610100900460ff165b156114b6576015548411156114b65760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610a30565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600c9091529190912054611508918690611682565b6001600160a01b0387166000908152600c602052604081209190915561152e87876119dc565b6115425761153d878787611a7c565b611544565b845b60185490915062010000900460ff16801561157857506001600160a01b03861660009081526010602052604090205460ff16155b156115f7576016546115a9826115a3896001600160a01b03166000908152600c602052604090205490565b906116fe565b11156115f75760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d6974204578636565646564212100000000006044820152606401610a30565b6001600160a01b0386166000908152600c602052604090205461161a90826116fe565b6001600160a01b038088166000818152600c602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061166e9085815260200190565b60405180910390a3600193505050506109ff565b600081848411156116a65760405162461bcd60e51b8152600401610a309190611f0f565b5060006116b38486612167565b95945050505050565b60006109ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611682565b60008061170b838561217a565b9050838110156109ff5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a30565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600c909152918220546117fe918490611682565b6001600160a01b038086166000908152600c6020526040808220939093559085168152205461182d90836116fe565b6001600160a01b038085166000818152600c602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118819086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556009546008546000916118b991906116fe565b9050806000036118c957506119cc565b60006118e26007546005546116fe90919063ffffffff16565b905060006118fd60026118f785818887611ba1565b90611c23565b9050600061190b85836116bc565b90504761191782611c65565b600061192347836116bc565b9050600061193c611935876002611c23565b88906116bc565b9050600061195160026118f78481878c611ba1565b9050600061195f84836116bc565b90506000821180156119715750600087115b15611980576119808783611e1f565b80156119c257600b546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156119c0573d6000803e3d6000fd5b505b5050505050505050505b506019805460ff60a01b19169055565b6001600160a01b0382166000908152600e602052604081205460ff1680611a1b57506001600160a01b0382166000908152600e602052604090205460ff165b15611a2857506001610995565b6001600160a01b0383166000908152600f602052604090205460ff1680611a6757506001600160a01b0382166000908152600f602052604090205460ff165b15611a7457506000610995565b506000610995565b6001600160a01b0383166000908152600f6020526040812054819060ff1615611ac157611aba6014546118f760085486611ba190919063ffffffff16565b9050611b1d565b6001600160a01b0384166000908152600f602052604090205460ff1615611b1d57600a60125410611aff57601454611aba906118f7856103e8611ba1565b611b1a6014546118f760095486611ba190919063ffffffff16565b90505b8015611b9757306000908152600c6020526040902054611b3d90826116fe565b306000818152600c6020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b8e9085815260200190565b60405180910390a35b6116b383826116bc565b600082600003611bb357506000610995565b6000611bbf838561218d565b905082611bcc85836121a4565b146109ff5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a30565b60006109ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee1565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c9a57611c9a6121c6565b60200260200101906001600160a01b031690816001600160a01b031681525050601860039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3191906121dc565b81600181518110611d4457611d446121c6565b6001600160a01b039283166020918202929092010152601854611d71913091630100000090041684611118565b60185460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611db090859060009086903090429060040161223d565b600060405180830381600087803b158015611dca57600080fd5b505af1158015611dde573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e13929190612279565b60405180910390a15050565b601854611e3e903090630100000090046001600160a01b031684611118565b601854600a5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a48201526301000000909204169063f305d71990839060c40160606040518083038185885af1158015611eb5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611eda919061229a565b5050505050565b60008183611f025760405162461bcd60e51b8152600401610a309190611f0f565b5060006116b384866121a4565b600060208083528351808285015260005b81811015611f3c57858101830151858201604001528201611f20565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110c957600080fd5b60008060408385031215611f8557600080fd5b8235611f9081611f5d565b946020939093013593505050565b600080600060608486031215611fb357600080fd5b8335611fbe81611f5d565b92506020840135611fce81611f5d565b929592945050506040919091013590565b600060208284031215611ff157600080fd5b81356109ff81611f5d565b80151581146110c957600080fd5b60006020828403121561201c57600080fd5b81356109ff81611ffc565b60006020828403121561203957600080fd5b5035919050565b6000806040838503121561205357600080fd5b823561205e81611f5d565b9150602083013561206e81611ffc565b809150509250929050565b6000806040838503121561208c57600080fd5b823561209781611f5d565b9150602083013561206e81611f5d565b600080604083850312156120ba57600080fd5b8235611f9081611ffc565b600181811c908216806120d957607f821691505b6020821081036120f957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561214657600080fd5b81516109ff81611ffc565b634e487b7160e01b600052601160045260246000fd5b8181038181111561099557610995612151565b8082018082111561099557610995612151565b808202811582820484141761099557610995612151565b6000826121c157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121ee57600080fd5b81516109ff81611f5d565b600081518084526020808501945080840160005b838110156122325781516001600160a01b03168752958201959082019060010161220d565b509495945050505050565b85815284602082015260a06040820152600061225c60a08301866121f9565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061229260408301846121f9565b949350505050565b6000806000606084860312156122af57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220685dc31afbf281d74b3bf306ab5f5baf502fed2c90a8194d1f83eb057d527f6264736f6c63430008130033

Deployed Bytecode Sourcemap

7530:13629:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8922:53;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8922:53:0;;;;;;;;11218:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7883:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;913:32:1;;;895:51;;883:2;868:18;7883:81:0;749:203:1;12556:161:0;;;;;;;;;;-1:-1:-1;12556:161:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;12556:161:0;1413:187:1;11495:100:0;;;;;;;;;;-1:-1:-1;11575:12:0;;11495:100;;13330:313;;;;;;;;;;-1:-1:-1;13330:313:0;;;;;:::i;:::-;;:::i;7795:81::-;;;;;;;;;;;;;;;20332:116;;;;;;;;;;-1:-1:-1;20332:116:0;;;;;:::i;:::-;;:::i;:::-;;11889:156;;;;;;;;;;;;;:::i;11404:83::-;;;;;;;;;;-1:-1:-1;11470:9:0;;11404:83;;11470:9;;;;2460:36:1;;2448:2;2433:18;11404:83:0;2318:184:1;12053:218:0;;;;;;;;;;-1:-1:-1;12053:218:0;;;;;:::i;:::-;;:::i;8497:45::-;;;;;;;;;;-1:-1:-1;8497:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19598:105;;;;;;;;;;-1:-1:-1;19598:105:0;;;;;:::i;:::-;;:::i;8440:50::-;;;;;;;;;;-1:-1:-1;8440:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8119:26;;;;;;;;;;;;;;;;20938:115;;;;;;;;;;-1:-1:-1;20938:115:0;;;;;:::i;:::-;;:::i;20219:101::-;;;;;;;;;;-1:-1:-1;20219:101:0;;;;;:::i;:::-;;:::i;20456:114::-;;;;;;;;;;-1:-1:-1;20456:114:0;;;;;:::i;:::-;;:::i;9021:32::-;;;;;;;;;;-1:-1:-1;9021:32:0;;;;;;;;;;;19841:128;;;;;;;;;;-1:-1:-1;19841:128:0;;;;;:::i;:::-;;:::i;8984:30::-;;;;;;;;;;-1:-1:-1;8984:30:0;;;;;;;;11603:123;;;;;;;;;;-1:-1:-1;11603:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11695:18:0;11669:7;11695:18;;;:9;:18;;;;;;;11603:123;2290:94;;;;;;;;;;;;;:::i;9142:22::-;;;;;;;;;;-1:-1:-1;9142:22:0;;;;-1:-1:-1;;;;;9142:22:0;;;20105:106;;;;;;;;;;-1:-1:-1;20105:106:0;;;;;:::i;:::-;;:::i;9104:31::-;;;;;;;;;;-1:-1:-1;9104:31:0;;;;;;;-1:-1:-1;;;;;9104:31:0;;;8220:84;;;;;;;;;;-1:-1:-1;8220:84:0;;;;-1:-1:-1;;;;;8220:84:0;;;8807:51;;;;;;;;;;;;;;;;8871:40;;;;;;;;;;;;;;;;8608:48;;;;;;;;;;-1:-1:-1;8608:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1981:87;;;;;;;;;;-1:-1:-1;2027:7:0;2054:6;-1:-1:-1;;;;;2054:6:0;1981:87;;11309;;;;;;;;;;;;;:::i;8152:27::-;;;;;;;;;;;;;;;;12279:269;;;;;;;;;;-1:-1:-1;12279:269:0;;;;;:::i;:::-;;:::i;13155:167::-;;;;;;;;;;-1:-1:-1;13155:167:0;;;;;:::i;:::-;;:::i;19977:120::-;;;;;;;;;;-1:-1:-1;19977:120:0;;;;;:::i;:::-;;:::i;20578:166::-;;;;;;;;;;-1:-1:-1;20578:166:0;;;;;:::i;:::-;;:::i;8549:52::-;;;;;;;;;;-1:-1:-1;8549:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19352:132;;;;;;;;;;-1:-1:-1;19352:132:0;;;;;:::i;:::-;;:::i;11734:143::-;;;;;;;;;;-1:-1:-1;11734:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11842:18:0;;;11815:7;11842:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11734:143;20752:178;;;;;;;;;;-1:-1:-1;20752:178:0;;;;;:::i;:::-;;:::i;19711:122::-;;;;;;;;;;-1:-1:-1;19711:122:0;;;;;:::i;:::-;;:::i;19103:209::-;;;;;;;;;;;;;:::i;19492:98::-;;;;;;;;;;-1:-1:-1;19492:98:0;;;;;:::i;:::-;;:::i;2392:229::-;;;;;;;;;;-1:-1:-1;2392:229:0;;;;;:::i;:::-;;:::i;21061:91::-;;;;;;;;;;-1:-1:-1;21061:91:0;;;;;:::i;:::-;;:::i;9060:35::-;;;;;;;;;;-1:-1:-1;9060:35:0;;;;;;;;;;;11218:83;11255:13;11288:5;11281:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11218:83;:::o;12556:161::-;12631:4;12648:39;628:10;12671:7;12680:6;12648:8;:39::i;:::-;-1:-1:-1;12705:4:0;12556:161;;;;;:::o;13330:313::-;13428:4;13445:36;13455:6;13463:9;13474:6;13445:9;:36::i;:::-;-1:-1:-1;13492:121:0;13501:6;628:10;13523:89;13561:6;13523:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13523:19:0;;;;;;:11;:19;;;;;;;;628:10;13523:33;;;;;;;;;;:37;:89::i;:::-;13492:8;:121::i;:::-;-1:-1:-1;13631:4:0;13330:313;;;;;;:::o;20332:116::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;;;;;;;;;20410:17:::1;:30:::0;;-1:-1:-1;;;;;;20410:30:0::1;-1:-1:-1::0;;;;;20410:30:0;;;::::1;::::0;;;::::1;::::0;;20332:116::o;11889:156::-;-1:-1:-1;;;;;12024:11:0;11695:18;11942:7;11695:18;;;:9;:18;;;;;;11969:68;;:40;11986:22;11996:11;-1:-1:-1;;;;;11695:18:0;11669:7;11695:18;;;:9;:18;;;;;;;11603:123;11986:22;11969:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;11962:75;;11889:156;:::o;12053:218::-;628:10;12141:4;12190:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12190:34:0;;;;;;;;;;12141:4;;12158:83;;12181:7;;12190:50;;12229:10;12190:38;:50::i;19598:105::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;19669:16:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19669:26:0;;::::1;::::0;;;::::1;::::0;;19598:105::o;20938:115::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;21010:9:::1;:35:::0;;-1:-1:-1;;;;;21010:35:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;21010:35:0;;::::1;::::0;;;::::1;::::0;;20938:115::o;20219:101::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;20289:12:::1;:23:::0;20219:101::o;20456:114::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;20534:15:::1;:28:::0;;-1:-1:-1;;;;;;20534:28:0::1;-1:-1:-1::0;;;;;20534:28:0;;;::::1;::::0;;;::::1;::::0;;20456:114::o;19841:128::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19926:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;19926:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19841:128::o;2290:94::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;2355:21:::1;2373:1;2355:9;:21::i;:::-;2290:94::o:0;20105:106::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;20182:10:::1;:21:::0;20105:106::o;11309:87::-;11348:13;11381:7;11374:14;;;;;:::i;12279:269::-;12372:4;12389:129;628:10;12412:7;12421:96;12460:15;12421:96;;;;;;;;;;;;;;;;;628:10;12421:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12421:34:0;;;;;;;;;;;;:38;:96::i;13155:167::-;13233:4;13250:42;628:10;13274:9;13285:6;13250:9;:42::i;19977:120::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20058:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;20058:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19977:120::o;20578:166::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20660:19:0;;::::1;;::::0;;;:12:::1;:19;::::0;;;;;;;:29;;;::::1;;-1:-1:-1::0;;20660:29:0;;::::1;::::0;::::1;::::0;;;20700:19:::1;:26:::0;;;;;;:36;;;;::::1;;::::0;;20578:166::o;19352:132::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;19446:30:::1;::::0;-1:-1:-1;;;19446:30:0;;-1:-1:-1;;;;;5797:32:1;;;19446:30:0::1;::::0;::::1;5779:51:1::0;5846:18;;;5839:34;;;19446:12:0;::::1;::::0;::::1;::::0;5752:18:1;;19446:30:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19352:132:::0;;;:::o;20752:178::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;20866:11:::1;:22:::0;;-1:-1:-1;;20866:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;20899:13:::1;:23:::0;20752:178::o;19711:122::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19792:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;19792:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19711:122::o;19103:209::-;19167:58;;19155:7;;19175:10;;19199:21;;19155:7;19167:58;19155:7;19167:58;19199:21;19175:10;19167:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19154:71;;;19244:2;19236:34;;;;-1:-1:-1;;;19236:34:0;;6546:2:1;19236:34:0;;;6528:21:1;6585:2;6565:18;;;6558:30;-1:-1:-1;;;6604:18:1;;;6597:50;6664:18;;19236:34:0;6344:344:1;19236:34:0;-1:-1:-1;19302:2:0;19281:18;:23;19103:209::o;19492:98::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;19559:13:::1;:23:::0;;;::::1;;;;-1:-1:-1::0;;19559:23:0;;::::1;::::0;;;::::1;::::0;;19492:98::o;2392:229::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2495:22:0;::::1;2473:110;;;::::0;-1:-1:-1;;;2473:110:0;;6895:2:1;2473:110:0::1;::::0;::::1;6877:21:1::0;6934:2;6914:18;;;6907:30;6973:34;6953:18;;;6946:62;-1:-1:-1;;;7024:18:1;;;7017:36;7070:19;;2473:110:0::1;6693:402:1::0;2473:110:0::1;2594:19;2604:8;2594:9;:19::i;:::-;2392:229:::0;:::o;21061:91::-;2027:7;2054:6;-1:-1:-1;;;;;2054:6:0;628:10;2202:23;2194:68;;;;-1:-1:-1;;;2194:68:0;;;;;;;:::i;:::-;21129:7:::1;:15:::0;;-1:-1:-1;;;;;;21129:15:0::1;-1:-1:-1::0;;;;;21129:15:0;;;::::1;::::0;;;::::1;::::0;;21061:91::o;12725:337::-;-1:-1:-1;;;;;12818:19:0;;12810:68;;;;-1:-1:-1;;;12810:68:0;;7302:2:1;12810:68:0;;;7284:21:1;7341:2;7321:18;;;7314:30;7380:34;7360:18;;;7353:62;-1:-1:-1;;;7431:18:1;;;7424:34;7475:19;;12810:68:0;7100:400:1;12810:68:0;-1:-1:-1;;;;;12897:21:0;;12889:68;;;;-1:-1:-1;;;12889:68:0;;7707:2:1;12889:68:0;;;7689:21:1;7746:2;7726:18;;;7719:30;7785:34;7765:18;;;7758:62;-1:-1:-1;;;7836:18:1;;;7829:32;7878:19;;12889:68:0;7505:398:1;12889:68:0;-1:-1:-1;;;;;12970:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13022:32;;160:25:1;;;13022:32:0;;133:18:1;13022:32:0;;;;;;;12725:337;;;:::o;13651:1586::-;13738:4;-1:-1:-1;;;;;13765:20:0;;13757:70;;;;-1:-1:-1;;;13757:70:0;;8110:2:1;13757:70:0;;;8092:21:1;8149:2;8129:18;;;8122:30;8188:34;8168:18;;;8161:62;-1:-1:-1;;;8239:18:1;;;8232:35;8284:19;;13757:70:0;7908:401:1;13757:70:0;-1:-1:-1;;;;;13846:23:0;;13838:71;;;;-1:-1:-1;;;13838:71:0;;8516:2:1;13838:71:0;;;8498:21:1;8555:2;8535:18;;;8528:30;8594:34;8574:18;;;8567:62;-1:-1:-1;;;8645:18:1;;;8638:33;8688:19;;13838:71:0;8314:399:1;13838:71:0;13937:1;13928:6;:10;13920:64;;;;-1:-1:-1;;;13920:64:0;;8920:2:1;13920:64:0;;;8902:21:1;8959:2;8939:18;;;8932:30;8998:34;8978:18;;;8971:62;-1:-1:-1;;;9049:18:1;;;9042:39;9098:19;;13920:64:0;8718:405:1;13920:64:0;14001:6;;-1:-1:-1;;;14001:6:0;;;;13997:1231;;;14031:41;14046:6;14054:9;14065:6;14031:14;:41::i;:::-;14024:48;;;;13997:1231;14165:4;14116:28;11695:18;;;:9;:18;;;;;;14241:13;;14217:37;;;;;;;14275:34;;-1:-1:-1;14303:6:0;;-1:-1:-1;;;14303:6:0;;;;14302:7;14275:34;:59;;;;-1:-1:-1;;;;;;14314:20:0;;;;;;:12;:20;;;;;;;;14313:21;14275:59;:74;;;;-1:-1:-1;14338:11:0;;;;14275:74;14271:145;;;14370:30;14379:20;14370:8;:30::i;:::-;-1:-1:-1;;;;;14448:23:0;;;;;;:15;:23;;;;;;;;14447:24;:55;;;;-1:-1:-1;;;;;;14476:26:0;;;;;;:15;:26;;;;;;;;14475:27;14447:55;:72;;;;-1:-1:-1;14506:13:0;;;;;;;14447:72;14444:187;;;14558:12;;14548:6;:22;;14540:75;;;;-1:-1:-1;;;14540:75:0;;9330:2:1;14540:75:0;;;9312:21:1;9369:2;9349:18;;;9342:30;9408:34;9388:18;;;9381:62;-1:-1:-1;;;9459:18:1;;;9452:38;9507:19;;14540:75:0;9128:404:1;14540:75:0;14680:53;;;;;;;;;;;-1:-1:-1;;;14680:53:0;;;;;;;;-1:-1:-1;;;;;14680:17:0;;-1:-1:-1;14680:17:0;;;:9;:17;;;;;;;;:53;;14702:6;;14680:21;:53::i;:::-;-1:-1:-1;;;;;14660:17:0;;;;;;:9;:17;;;;;:73;;;;14772:34;14670:6;14796:9;14772:16;:34::i;:::-;:80;;14818:34;14826:6;14834:9;14845:6;14818:7;:34::i;:::-;14772:80;;;14809:6;14772:80;14872:16;;14750:102;;-1:-1:-1;14872:16:0;;;;;:51;;;;-1:-1:-1;;;;;;14893:30:0;;;;;;:19;:30;;;;;;;;14892:31;14872:51;14869:181;;;14993:10;;14952:37;14977:11;14952:20;14962:9;-1:-1:-1;;;;;11695:18:0;11669:7;11695:18;;;:9;:18;;;;;;;11603:123;14952:20;:24;;:37::i;:::-;:51;;14944:90;;;;-1:-1:-1;;;14944:90:0;;9739:2:1;14944:90:0;;;9721:21:1;9778:2;9758:18;;;9751:30;9817:29;9797:18;;;9790:57;9864:18;;14944:90:0;9537:351:1;14944:90:0;-1:-1:-1;;;;;15089:20:0;;;;;;:9;:20;;;;;;:37;;15114:11;15089:24;:37::i;:::-;-1:-1:-1;;;;;15066:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15148:40;;;;;;;;;;15176:11;160:25:1;;148:2;133:18;;14:177;15148:40:0;;;;;;;;15210:4;15203:11;;;;;;;3168:192;3254:7;3290:12;3282:6;;;;3274:29;;;;-1:-1:-1;;;3274:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3314:9:0;3326:5;3330:1;3326;:5;:::i;:::-;3314:17;3168:192;-1:-1:-1;;;;;3168:192:0:o;3024:136::-;3082:7;3109:43;3113:1;3116;3109:43;;;;;;;;;;;;;;;;;:3;:43::i;2835:181::-;2893:7;;2925:5;2929:1;2925;:5;:::i;:::-;2913:17;;2954:1;2949;:6;;2941:46;;;;-1:-1:-1;;;2941:46:0;;10490:2:1;2941:46:0;;;10472:21:1;10529:2;10509:18;;;10502:30;10568:29;10548:18;;;10541:57;10615:18;;2941:46:0;10288:351:1;2629:173:0;2685:16;2704:6;;-1:-1:-1;;;;;2721:17:0;;;-1:-1:-1;;;;;;2721:17:0;;;;;;2754:40;;2704:6;;;;;;;2754:40;;2685:16;2754:40;2674:128;2629:173;:::o;15245:330::-;15375:53;;;;;;;;;;;-1:-1:-1;;;15375:53:0;;;;;;;;-1:-1:-1;;;;;15375:17:0;;15338:4;15375:17;;;:9;:17;;;;;;;:53;;15397:6;;15375:21;:53::i;:::-;-1:-1:-1;;;;;15355:17:0;;;;;;;:9;:17;;;;;;:73;;;;15462:20;;;;;;;:32;;15487:6;15462:24;:32::i;:::-;-1:-1:-1;;;;;15439:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15510:35;;;;;;;;;;15538:6;160:25:1;;148:2;133:18;;14:177;15510:35:0;;;;;;;;-1:-1:-1;15563:4:0;15245:330;;;;;:::o;16764:1123::-;9228:6;:13;;-1:-1:-1;;;;9228:13:0;-1:-1:-1;;;9228:13:0;;;16873:12:::1;::::0;16857:11:::1;::::0;9228:13;;16857:29:::1;::::0;:11;:15:::1;:29::i;:::-;16835:51;;16902:11;16917:1;16902:16:::0;16899:28:::1;;16920:7;;;16899:28;16939:23;16965:39;16986:17;;16965:16;;:20;;:39;;;;:::i;:::-;16939:65:::0;-1:-1:-1;17096:19:0::1;17118:60;17176:1;17118:53;17159:11:::0;17118:53;:15;16939:65;17118:19:::1;:36::i;:::-;:40:::0;::::1;:53::i;:60::-;17096:82:::0;-1:-1:-1;17189:21:0::1;17213:32;:15:::0;17096:82;17213:19:::1;:32::i;:::-;17189:56:::0;-1:-1:-1;17283:21:0::1;17315:31;17189:56:::0;17315:16:::1;:31::i;:::-;17357:22;17382:41;:21;17408:14:::0;17382:25:::1;:41::i;:::-;17357:66:::0;-1:-1:-1;17436:19:0::1;17458:39;17474:22;:15:::0;17494:1:::1;17474:19;:22::i;:::-;17458:11:::0;;:15:::1;:39::i;:::-;17436:61:::0;-1:-1:-1;17518:26:0::1;17547:59;17604:1;17547:52;17436:61:::0;17547:52;:14;17566:15;17547:18:::1;:35::i;:59::-;17518:88:::0;-1:-1:-1;17617:26:0::1;17646:38;:14:::0;17518:88;17646:18:::1;:38::i;:::-;17617:67;;17721:1;17700:18;:22;:41;;;;;17740:1;17726:11;:15;17700:41;17697:91;;;17743:45;17756:11;17769:18;17743:12;:45::i;:::-;17802:22:::0;;17799:80:::1;;17834:15;::::0;17826:53:::1;::::0;-1:-1:-1;;;;;17834:15:0;;::::1;::::0;17826:53;::::1;;;::::0;17860:18;;17834:15:::1;17826:53:::0;17834:15;17826:53;17860:18;17834:15;17826:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17799:80;16822:1065;;;;;;;;;9252:1;-1:-1:-1::0;9264:6:0;:14;;-1:-1:-1;;;;9264:14:0;;;16764:1123::o;15587:369::-;-1:-1:-1;;;;;15691:25:0;;15671:4;15691:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15720:28:0;;;;;;:17;:28;;;;;;;;15691:57;15688:261;;;-1:-1:-1;15772:4:0;15765:11;;15688:261;-1:-1:-1;;;;;15807:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15831:23:0;;;;;;:12;:23;;;;;;;;15807:47;15803:146;;;-1:-1:-1;15878:5:0;15871:12;;15803:146;-1:-1:-1;15932:5:0;15925:12;;15964:792;-1:-1:-1;;;;;16137:20:0;;16050:7;16137:20;;;:12;:20;;;;;;16050:7;;16137:20;;16134:348;;;16196:43;16224:14;;16196:23;16207:11;;16196:6;:10;;:23;;;;:::i;:43::-;16184:55;;16134:348;;;-1:-1:-1;;;;;16278:23:0;;;;;;:12;:23;;;;;;;;16275:207;;;16349:2;16328:18;;:23;16325:142;;16386:14;;16365:36;;:16;:6;16376:4;16365:10;:16::i;16325:142::-;16421:44;16450:14;;16421:24;16432:12;;16421:6;:10;;:24;;;;:::i;:44::-;16409:56;;16325:142;16501:13;;16498:185;;16580:4;16562:24;;;;:9;:24;;;;;;:39;;16591:9;16562:28;:39::i;:::-;16553:4;16535:24;;;;:9;:24;;;;;;;:66;;;;16625:42;;-1:-1:-1;;;;;16625:42:0;;;;;;;16657:9;160:25:1;;148:2;133:18;;14:177;16625:42:0;;;;;;;;16498:185;16706:21;:6;16717:9;16706:10;:21::i;3368:250::-;3426:7;3450:1;3455;3450:6;3446:47;;-1:-1:-1;3480:1:0;3473:8;;3446:47;3505:9;3517:5;3521:1;3517;:5;:::i;:::-;3505:17;-1:-1:-1;3550:1:0;3541:5;3545:1;3505:17;3541:5;:::i;:::-;:10;3533:56;;;;-1:-1:-1;;;3533:56:0;;11241:2:1;3533:56:0;;;11223:21:1;11280:2;11260:18;;;11253:30;11319:34;11299:18;;;11292:62;-1:-1:-1;;;11370:18:1;;;11363:31;11411:19;;3533:56:0;11039:397:1;3626:132:0;3684:7;3711:39;3715:1;3718;3711:39;;;;;;;;;;;;;;;;;:3;:39::i;17895:648::-;18045:16;;;18059:1;18045:16;;;;;;;;18021:21;;18045:16;;;;;;;;;;-1:-1:-1;18045:16:0;18021:40;;18090:4;18072;18077:1;18072:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;18072:23:0;;;-1:-1:-1;;;;;18072:23:0;;;;;18116:9;;;;;;;;;-1:-1:-1;;;;;18116:9:0;-1:-1:-1;;;;;18116:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18106:4;18111:1;18106:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18106:26:0;;;:7;;;;;;;;;:26;18177:9;;18145:56;;18162:4;;18177:9;;;;18189:11;18145:8;:56::i;:::-;18240:9;;:234;;-1:-1:-1;;;18240:234:0;;:9;;;;-1:-1:-1;;;;;18240:9:0;;:60;;:234;;18315:11;;18341:1;;18385:4;;18412;;18448:15;;18240:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18500:35;18517:11;18530:4;18500:35;;;;;;;:::i;:::-;;;;;;;;17950:593;17895:648;:::o;18551:511::-;18731:9;;18699:56;;18716:4;;18731:9;;;-1:-1:-1;;;;;18731:9:0;18743:11;18699:8;:56::i;:::-;18798:9;;18996:17;;18798:256;;-1:-1:-1;;;18798:256:0;;18864:4;18798:256;;;13692:34:1;13742:18;;;13735:34;;;18910:1:0;13785:18:1;;;13778:34;;;13828:18;;;13821:34;-1:-1:-1;;;;;18996:17:0;;;13871:19:1;;;13864:44;19028:15:0;13924:19:1;;;13917:35;18798:9:0;;;;;;:25;;18831:9;;13626:19:1;;18798:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18551:511;;:::o;3766:278::-;3852:7;3887:12;3880:5;3872:28;;;;-1:-1:-1;;;3872:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3911:9:0;3923:5;3927:1;3923;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2066:247::-;2125:6;2178:2;2166:9;2157:7;2153:23;2149:32;2146:52;;;2194:1;2191;2184:12;2146:52;2233:9;2220:23;2252:31;2277:5;2252:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:241;2686:6;2739:2;2727:9;2718:7;2714:23;2710:32;2707:52;;;2755:1;2752;2745:12;2707:52;2794:9;2781:23;2813:28;2835:5;2813:28;:::i;2876:180::-;2935:6;2988:2;2976:9;2967:7;2963:23;2959:32;2956:52;;;3004:1;3001;2994:12;2956:52;-1:-1:-1;3027:23:1;;2876:180;-1:-1:-1;2876:180:1:o;3061:382::-;3126:6;3134;3187:2;3175:9;3166:7;3162:23;3158:32;3155:52;;;3203:1;3200;3193:12;3155:52;3242:9;3229:23;3261:31;3286:5;3261:31;:::i;:::-;3311:5;-1:-1:-1;3368:2:1;3353:18;;3340:32;3381:30;3340:32;3381:30;:::i;:::-;3430:7;3420:17;;;3061:382;;;;;:::o;4152:388::-;4220:6;4228;4281:2;4269:9;4260:7;4256:23;4252:32;4249:52;;;4297:1;4294;4287:12;4249:52;4336:9;4323:23;4355:31;4380:5;4355:31;:::i;:::-;4405:5;-1:-1:-1;4462:2:1;4447:18;;4434:32;4475:33;4434:32;4475:33;:::i;4545:309::-;4610:6;4618;4671:2;4659:9;4650:7;4646:23;4642:32;4639:52;;;4687:1;4684;4677:12;4639:52;4726:9;4713:23;4745:28;4767:5;4745:28;:::i;4859:380::-;4938:1;4934:12;;;;4981;;;5002:61;;5056:4;5048:6;5044:17;5034:27;;5002:61;5109:2;5101:6;5098:14;5078:18;5075:38;5072:161;;5155:10;5150:3;5146:20;5143:1;5136:31;5190:4;5187:1;5180:15;5218:4;5215:1;5208:15;5072:161;;4859:380;;;:::o;5244:356::-;5446:2;5428:21;;;5465:18;;;5458:30;5524:34;5519:2;5504:18;;5497:62;5591:2;5576:18;;5244:356::o;5884:245::-;5951:6;6004:2;5992:9;5983:7;5979:23;5975:32;5972:52;;;6020:1;6017;6010:12;5972:52;6052:9;6046:16;6071:28;6093:5;6071:28;:::i;9893:127::-;9954:10;9949:3;9945:20;9942:1;9935:31;9985:4;9982:1;9975:15;10009:4;10006:1;9999:15;10025:128;10092:9;;;10113:11;;;10110:37;;;10127:18;;:::i;10158:125::-;10223:9;;;10244:10;;;10241:36;;;10257:18;;:::i;10644:168::-;10717:9;;;10748;;10765:15;;;10759:22;;10745:37;10735:71;;10786:18;;:::i;10817:217::-;10857:1;10883;10873:132;;10927:10;10922:3;10918:20;10915:1;10908:31;10962:4;10959:1;10952:15;10990:4;10987:1;10980:15;10873:132;-1:-1:-1;11019:9:1;;10817:217::o;11573:127::-;11634:10;11629:3;11625:20;11622:1;11615:31;11665:4;11662:1;11655:15;11689:4;11686:1;11679:15;11705:251;11775:6;11828:2;11816:9;11807:7;11803:23;11799:32;11796:52;;;11844:1;11841;11834:12;11796:52;11876:9;11870:16;11895:31;11920:5;11895:31;:::i;11961:461::-;12014:3;12052:5;12046:12;12079:6;12074:3;12067:19;12105:4;12134:2;12129:3;12125:12;12118:19;;12171:2;12164:5;12160:14;12192:1;12202:195;12216:6;12213:1;12210:13;12202:195;;;12281:13;;-1:-1:-1;;;;;12277:39:1;12265:52;;12337:12;;;;12372:15;;;;12313:1;12231:9;12202:195;;;-1:-1:-1;12413:3:1;;11961:461;-1:-1:-1;;;;;11961:461:1:o;12427:582::-;12726:6;12715:9;12708:25;12769:6;12764:2;12753:9;12749:18;12742:34;12812:3;12807:2;12796:9;12792:18;12785:31;12689:4;12833:57;12885:3;12874:9;12870:19;12862:6;12833:57;:::i;:::-;-1:-1:-1;;;;;12926:32:1;;;;12921:2;12906:18;;12899:60;-1:-1:-1;12990:3:1;12975:19;12968:35;12825:65;12427:582;-1:-1:-1;;;12427:582:1:o;13014:332::-;13221:6;13210:9;13203:25;13264:2;13259;13248:9;13244:18;13237:30;13184:4;13284:56;13336:2;13325:9;13321:18;13313:6;13284:56;:::i;:::-;13276:64;13014:332;-1:-1:-1;;;;13014:332:1:o;13963:306::-;14051:6;14059;14067;14120:2;14108:9;14099:7;14095:23;14091:32;14088:52;;;14136:1;14133;14126:12;14088:52;14165:9;14159:16;14149:26;;14215:2;14204:9;14200:18;14194:25;14184:35;;14259:2;14248:9;14244:18;14238:25;14228:35;;13963:306;;;;;:::o

Swarm Source

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