ETH Price: $3,212.15 (-3.39%)
 

Overview

Max Total Supply

103,900,000 SAW

Holders

78

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
SAW

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-06-14
*/

// SPDX-License-Identifier: MIT

//   _________      __      __ 
//  /   _____/____ /  \    /  \
//  \_____  \\__  \\   \/\/   /
//  /        \/ __ \\        / 
// /_______  (____  /\__/\  /  
//         \/     \/      \/.FINANCE 
// 
//  00110001 00110000 00110011 00101100 00111001 00110000 00110000 00101100 00110000 00110000 00110000 00100000 00101101 00100000 01000011 
//  01100001 01101110 00100000 01111001 01101111 01110101 00100000 01100110 01101001 01100111 01110101 01110010 01100101 00100000 01101111 
//  01110101 01110100 00100000 01110100 01101000 01100101 00100000 01100011 01101111 01100100 01100101 00111111 00001010 01010111 01101000 
//  01100001 01110100 00100111 01110011 00100000 01100010 01100101 01101000 01101001 01101110 01100100 00100000 01110100 01101000 01101001 
//  01110011 00100000 01101110 01110101 01101101 01100010 01100101 01110010 00100000 00111111 00100000 00001010 01001100 01100101 01110100 
//  00100000 01110100 01101000 01100101 00100000 01100111 01100001 01101101 01100101 00100000 01100010 01100101 01100111 01101001 01101110 00101110 00100000 
//
//
// www.saw.finance
// https://twitter.com/SawToken?t=d325GtdsIxpd4sG-1Ai-2w&s=09
// https://t.me/Saw_Token
// 
// The intention with SAW is to provide an environment not only beneficial to the holder but also to all communities.

pragma solidity 0.8.13;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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


abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


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


interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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


contract SAW is IERC20, Ownable {

    address private WETH;

    string private constant _name = "SAW";
    string private constant _symbol = "SAW";
    uint8 private constant _decimals = 9;
    
    uint256 _totalSupply = 103900000 * (10 ** _decimals);
    uint256 maxWallet = _totalSupply / 50; // 2%
    uint256 maxTransaction = _totalSupply / 50; // 2%
    uint256 public swapThreshold = _totalSupply / 1000; // Starting at 0.1%

    uint256 public maxBuy = _totalSupply / 50; // 2%
    bool public maxBuyEnabled = true;

    mapping (address => uint256) private _balances;
    mapping (address => mapping(address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWalletExempt;
    mapping (address => bool) public isTxExempt;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    uint[3] taxesCollected = [0, 0, 0];

    uint256 public launchedAt;
    address public liquidityPool = DEAD;

    // All fees are in basis points (100 = 1%)
    uint256 private buyMkt = 200;
    uint256 private sellMkt = 200;
    uint256 private buyLP = 200;
    uint256 private sellLP = 200;
    uint256 private buyDev = 100;
    uint256 private sellDev = 100;

    uint256 _baseBuyFee = buyMkt + buyLP + buyDev;
    uint256 _baseSellFee = sellMkt + sellLP + sellDev;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address public marketingWallet = payable(0x7aB22Cb0299Eab1e488db575D1C8E9b49AE05c87);
    address public devWallet = payable(0x7aB22Cb0299Eab1e488db575D1C8E9b49AE05c87);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;

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

    constructor() {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[owner()] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[address(this)] = true;
        isWalletExempt[owner()] = true;
        isWalletExempt[marketingWallet] = true;
        isWalletExempt[DEAD] = true;
        isTxExempt[owner()] = true;
        isTxExempt[marketingWallet] = true;
        isTxExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;
    
        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function changeIsWalletExempt(address holder, bool exempt) external onlyOwner {
        isWalletExempt[holder] = exempt;
    }

    function changeIsTxExempt(address holder, bool exempt) external onlyOwner {
        isTxExempt[holder] = exempt;
    }

    function launchSequence(uint hold) external onlyOwner {
	    require(launchedAt == 0, "Already launched");
        launchedAt = block.number + hold;
        tradingOpen = true;
    }

    function toggleTrade(bool _switch) external onlyOwner {
	    tradingOpen = _switch;
    }

    function toggleMaxBuy(bool _switch) external onlyOwner {
	    maxBuyEnabled = _switch;
    }

    function changeMaxBuyAmount(uint _amt) external onlyOwner {
	    require(_amt >= (_totalSupply / 200), "Must be at least 0.5%");
	    maxBuy = _amt;
    }

    function changeMaxWallet(uint _amt) external onlyOwner {
        require(_amt >= (_totalSupply / 50), "Must be at least 2%");
        maxWallet = _amt;
    }

    function changeMaxTransaction(uint _amt) external onlyOwner {
        require(_amt >= (_totalSupply / 100), "Must be at least 1%");
        maxTransaction = _amt;
    }

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

    function setDevWallet(address payable newDevWallet) external onlyOwner {
	    devWallet = payable(newDevWallet);
    }

    function setLiquidityPool(address newLiquidityPool) external onlyOwner {
        liquidityPool = newLiquidityPool;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function baseBuyFee() external view returns (uint256) {return _baseBuyFee; }
    function baseSellFee() external view returns (uint256) {return _baseSellFee; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function addTaxCollected(uint mkt, uint lp, uint dev) internal {
        taxesCollected[0] += mkt;
        taxesCollected[1] += lp;
	    taxesCollected[2] += dev;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount < maxTransaction || isTxExempt[sender], "Exceeds Transaction Limit");

        if(recipient != pair) {
            uint256 recipientBalance = _balances[recipient];
            require(recipientBalance + amount < maxWallet || isWalletExempt[recipient]);
        }

	    if(sender == pair && maxBuyEnabled) { require(amount <= maxBuy || isTxExempt[recipient], "Exceeds Max Buy"); }
        if(sender != owner() && recipient != owner()) { require(tradingOpen || isFeeExempt[sender], "Trading not active"); }
        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }
    	if(sender != pair && recipient != pair) { return _basicTransfer(sender, recipient, amount); }
        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }
    	if(sender == pair && block.number < launchedAt) { recipient = DEAD; }

        _balances[sender] = _balances[sender] - amount;
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;

        _balances[recipient] = _balances[recipient] + finalAmount;

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

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 mktTaxB = amount * buyMkt / 10000;
	    uint256 mktTaxS = amount * sellMkt / 10000;
        uint256 lpTaxB = amount * buyLP / 10000;
	    uint256 lpTaxS = amount * sellLP / 10000;
	    uint256 devB = amount * buyDev / 10000;
	    uint256 devS = amount * sellDev / 10000;
        uint256 taxToGet;

	    if(sender == pair && recipient != address(pair) && !isFeeExempt[recipient]) {
            taxToGet = mktTaxB + lpTaxB + devB;
	        addTaxCollected(mktTaxB, lpTaxB, devB);
	    }

	    if(!inSwapAndLiquify && sender != pair && tradingOpen) {
	        taxToGet = mktTaxS + lpTaxS + devS;
	        addTaxCollected(mktTaxS, lpTaxS, devS);
	    }

        _balances[address(this)] = _balances[address(this)] + taxToGet;
        emit Transfer(sender, address(this), taxToGet);

        return amount - taxToGet;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }  

    function updateBuyFees(uint256 newBuyMktFee, uint256 newBuyLpFee, uint256 newBuyDev) public onlyOwner {
	    require(newBuyMktFee + newBuyLpFee + newBuyDev <= 1000, "Fees Too High");
	    buyMkt = newBuyMktFee;
	    buyLP = newBuyLpFee;
        buyDev = newBuyDev;
    }
    
    function updateSellFees(uint256 newSellMktFee,uint256 newSellLpFee, uint256 newSellDev) public onlyOwner {
	    require(newSellMktFee + newSellLpFee + newSellDev <= 1000, "Fees Too High");
	    sellMkt = newSellMktFee;
	    sellLP = newSellLpFee;
	    sellDev = newSellDev;
    }

    function swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityPool,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)];
        uint256 _totalCollected = taxesCollected[0] + taxesCollected[1] + taxesCollected[2];
        uint256 mktShare = taxesCollected[0];
        uint256 lpShare = taxesCollected[1];
	    uint256 devShare = taxesCollected[2];
        uint256 tokensForLiquidity = lpShare / 2;  
        uint256 amountToSwap = tokenBalance - tokensForLiquidity;

        swapTokensForETH(amountToSwap);

        uint256 totalETHBalance = address(this).balance;
        uint256 ETHForMkt = totalETHBalance * mktShare / _totalCollected;
        uint256 ETHForLiquidity = totalETHBalance * lpShare / _totalCollected / 2;
	    uint256 ETHForDev = totalETHBalance * devShare/ _totalCollected;
      
        if (totalETHBalance > 0) {
            payable(marketingWallet).transfer(ETHForMkt);
        }
  
        if (tokensForLiquidity > 0) {
            addLiquidity(tokensForLiquidity, ETHForLiquidity);
        }
	
	    if (ETHForDev > 0) {
	        payable(devWallet).transfer(ETHForDev);
        }

	    delete taxesCollected;
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) { 
            payable(marketingWallet).transfer(contractETHBalance);
    	}
    }

    function clearStuckTokens(address contractAddress) external onlyOwner {
        IERC20 erc20Token = IERC20(contractAddress);
        uint256 balance = erc20Token.balanceOf(address(this));
        erc20Token.transfer(marketingWallet, balance);
    }

    function massDistributeTokens(address[] calldata _airdropAddresses, uint amtPerAddress) external onlyOwner {
	    for (uint i = 0; i < _airdropAddresses.length; i++) {
	        IERC20(address(this)).transfer(_airdropAddresses[i], amtPerAddress);
        }
    }

    function distributeTokensByAmount(address[] calldata _airdropAddresses, uint[] calldata _airdropAmounts) external onlyOwner {
	    for (uint i = 0; i < _airdropAddresses.length; i++) {
	        IERC20(address(this)).transfer(_airdropAddresses[i], _airdropAmounts[i]);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"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":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":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"baseBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint256[]","name":"_airdropAmounts","type":"uint256[]"}],"name":"distributeTokensByAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"hold","type":"uint256"}],"name":"launchSequence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_airdropAddresses","type":"address[]"},{"internalType":"uint256","name":"amtPerAddress","type":"uint256"}],"name":"massDistributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_switch","type":"bool"}],"name":"toggleMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_switch","type":"bool"}],"name":"toggleTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"newBuyMktFee","type":"uint256"},{"internalType":"uint256","name":"newBuyLpFee","type":"uint256"},{"internalType":"uint256","name":"newBuyDev","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellMktFee","type":"uint256"},{"internalType":"uint256","name":"newSellLpFee","type":"uint256"},{"internalType":"uint256","name":"newSellDev","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200064a565b6200002290630631636062000662565b600255603260025462000036919062000684565b60035560326002546200004a919062000684565b6004556103e86002546200005f919062000684565b600555603260025462000073919062000684565b6006556007805460ff19166001179055600d80546001600160a01b031990811661dead17909155600e805490911690556040805160608101825260008082526020820181905291810191909152620000d090600f906003620004d6565b50600d54601380546001600160a01b0319166001600160a01b0390921691909117905560c8601481905560158190556016819055601781905560646018819055601981905590620001229080620006a7565b6200012e9190620006a7565b601a55601954601754601554620001469190620006a7565b620001529190620006a7565b601b55601f80546001600160a01b031916737ab22cb0299eab1e488db575d1c8e9b49ae05c8717905560208054600162ffff0160a01b0319167501007ab22cb0299eab1e488db575d1c8e9b49ae05c87179055348015620001b257600080fd5b50620001be3362000486565b601c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000223573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002499190620006c2565b600180546001600160a01b0319166001600160a01b03928316179055601c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620002a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ce9190620006c2565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000320573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003469190620006c2565b601d80546001600160a01b0319166001600160a01b03928316179055306000818152600960209081526040808320601c548616845282528083206000199055825485168352600a8252808320805460ff199081166001908117909255601f80548816865283862080548316841790559585528285208054821683179055845487168552600b845282852080548216831790558554871685528285208054821683179055600d8054881686528386208054831684179055855488168652600c8552838620805483168417905595548716855282852080548216831790559454861684528184208054909516179093556002548254851683526008825283832081905582549351908152929093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82600381019282156200050c579160200282015b828111156200050c578251829060ff16905591602001919060010190620004ea565b506200051a9291506200051e565b5090565b5b808211156200051a57600081556001016200051f565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200058c57816000190482111562000570576200057062000535565b808516156200057e57918102915b93841c939080029062000550565b509250929050565b600082620005a55750600162000644565b81620005b45750600062000644565b8160018114620005cd5760028114620005d857620005f8565b600191505062000644565b60ff841115620005ec57620005ec62000535565b50506001821b62000644565b5060208310610133831016604e8410600b84101617156200061d575081810a62000644565b6200062983836200054b565b806000190482111562000640576200064062000535565b0290505b92915050565b60006200065b60ff84168362000594565b9392505050565b60008160001904831182151516156200067f576200067f62000535565b500290565b600082620006a257634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620006bd57620006bd62000535565b500190565b600060208284031215620006d557600080fd5b81516001600160a01b03811681146200065b57600080fd5b6123ed80620006fd6000396000f3fe6080604052600436106103035760003560e01c806375f0a87411610190578063c17b5b8c116100dc578063d726b22111610095578063f887ea401161006f578063f887ea401461091f578063f88de0c31461093f578063f8ae277d14610954578063ffb54a991461097457600080fd5b8063d726b221146108a4578063dd62ed3e146108b9578063f2fde38b146108ff57600080fd5b8063c17b5b8c146107df578063c45a0155146107ff578063c821fcb81461081f578063cd73ab021461084f578063d073a01f1461086f578063d120c8cb1461088457600080fd5b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610759578063af06a3f614610779578063bf56b37114610799578063bf8e28b9146107af57600080fd5b806395d89b411461037a578063a3a2e89e14610719578063a8aa1b311461073957600080fd5b806375f0a8741461067b5780638095d5641461069b57806388c5440f146106bb578063893d20e8146106db5780638da5cb5b146106db5780638ea5220f146106f957600080fd5b8063346cc7be1161024f578063571ac8b01161020857806366eb3785116101e257806366eb37851461060557806370a082311461061a57806370db69d614610650578063715018a61461066657600080fd5b8063571ac8b01461058d5780635d098b38146105ad578063665a11ca146105cd57600080fd5b8063346cc7be146104c257806334bfe0df146104e25780633dab5269146105025780633f4218e014610522578063417fd2d6146105525780634a74bb021461056c57600080fd5b80630b006d60116102bc5780631f53ac02116102965780631f53ac021461045157806323b872dd146104715780632b112e4914610491578063313ce567146104a657600080fd5b80630b006d60146103fc57806318160ddd1461041c5780631d5cd5451461043157600080fd5b8063018770201461030f57806302affaf5146103315780630445b6671461035157806306fdde031461037a578063095ea7b3146103ac5780630a37ac95146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032f61032a366004611f38565b610995565b005b34801561033d57600080fd5b5061032f61034c366004611f63565b6109bf565b34801561035d57600080fd5b5061036760055481565b6040519081526020015b60405180910390f35b34801561038657600080fd5b50604080518082018252600381526253415760e81b602082015290516103719190611f9c565b3480156103b857600080fd5b506103cc6103c7366004611ff1565b6109f2565b6040519015158152602001610371565b3480156103e857600080fd5b5061032f6103f7366004611f63565b610a5e565b34801561040857600080fd5b5061032f61041736600461201d565b610a91565b34801561042857600080fd5b50600254610367565b34801561043d57600080fd5b5061032f61044c36600461201d565b610af7565b34801561045d57600080fd5b5061032f61046c366004611f38565b610b5a565b34801561047d57600080fd5b506103cc61048c366004612036565b610b84565b34801561049d57600080fd5b50610367610c19565b3480156104b257600080fd5b5060405160098152602001610371565b3480156104ce57600080fd5b5061032f6104dd366004611f38565b610c6b565b3480156104ee57600080fd5b5061032f6104fd3660046120c3565b610d5f565b34801561050e57600080fd5b5061032f61051d36600461212f565b610e43565b34801561052e57600080fd5b506103cc61053d366004611f38565b600a6020526000908152604090205460ff1681565b34801561055e57600080fd5b506007546103cc9060ff1681565b34801561057857600080fd5b506020546103cc90600160a81b900460ff1681565b34801561059957600080fd5b506103cc6105a8366004611f38565b610e6d565b3480156105b957600080fd5b5061032f6105c8366004611f38565b610e81565b3480156105d957600080fd5b506013546105ed906001600160a01b031681565b6040516001600160a01b039091168152602001610371565b34801561061157600080fd5b5061032f610eab565b34801561062657600080fd5b50610367610635366004611f38565b6001600160a01b031660009081526008602052604090205490565b34801561065c57600080fd5b5061036760065481565b34801561067257600080fd5b5061032f610ebd565b34801561068757600080fd5b50601f546105ed906001600160a01b031681565b3480156106a757600080fd5b5061032f6106b636600461214d565b610ecf565b3480156106c757600080fd5b5061032f6106d6366004612179565b610f3b565b3480156106e757600080fd5b506000546001600160a01b03166105ed565b34801561070557600080fd5b506020546105ed906001600160a01b031681565b34801561072557600080fd5b5061032f610734366004611f63565b610fff565b34801561074557600080fd5b50601d546105ed906001600160a01b031681565b34801561076557600080fd5b506103cc610774366004611ff1565b611032565b34801561078557600080fd5b5061032f6107943660046121c5565b61103f565b3480156107a557600080fd5b5061036760125481565b3480156107bb57600080fd5b506103cc6107ca366004611f38565b600c6020526000908152604090205460ff1681565b3480156107eb57600080fd5b5061032f6107fa36600461214d565b611065565b34801561080b57600080fd5b50601e546105ed906001600160a01b031681565b34801561082b57600080fd5b506103cc61083a366004611f38565b600b6020526000908152604090205460ff1681565b34801561085b57600080fd5b5061032f61086a36600461201d565b6110d1565b34801561087b57600080fd5b50601b54610367565b34801561089057600080fd5b5061032f61089f36600461201d565b611132565b3480156108b057600080fd5b50601a54610367565b3480156108c557600080fd5b506103676108d43660046121e2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561090b57600080fd5b5061032f61091a366004611f38565b6111a0565b34801561092b57600080fd5b50601c546105ed906001600160a01b031681565b34801561094b57600080fd5b5061032f611219565b34801561096057600080fd5b5061032f61096f3660046121c5565b611266565b34801561098057600080fd5b506020546103cc90600160b01b900460ff1681565b61099d611281565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6109c7611281565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a4d9086815260200190565b60405180910390a350600192915050565b610a66611281565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610a99611281565b6032600254610aa89190612226565b811015610af25760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420322560681b60448201526064015b60405180910390fd5b600355565b610aff611281565b60c8600254610b0e9190612226565b811015610b555760405162461bcd60e51b81526020600482015260156024820152744d757374206265206174206c6561737420302e352560581b6044820152606401610ae9565b600655565b610b62611281565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c04576001600160a01b0384166000908152600960209081526040808320338452909152902054610bdf908390612248565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c0f8484846112db565b90505b9392505050565b600e546001600160a01b0316600090815260086020526040812054600d546001600160a01b0316600090815260086020526040902054600254610c5c9190612248565b610c669190612248565b905090565b610c73611281565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce0919061225f565b601f5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d599190612278565b50505050565b610d67611281565b60005b83811015610e3c573063a9059cbb868684818110610d8a57610d8a612295565b9050602002016020810190610d9f9190611f38565b858585818110610db157610db1612295565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190612278565b5080610e34816122ab565b915050610d6a565b5050505050565b610e4b611281565b60208054921515600160a81b0260ff60a81b1990931692909217909155600555565b6000610e7b826000196109f2565b92915050565b610e89611281565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b610eb3611281565b610ebb61181d565b565b610ec5611281565b610ebb60006119a9565b610ed7611281565b6103e881610ee584866122c4565b610eef91906122c4565b1115610f2d5760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601492909255601655601855565b610f43611281565b60005b82811015610d59573063a9059cbb858584818110610f6657610f66612295565b9050602002016020810190610f7b9190611f38565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fec9190612278565b5080610ff7816122ab565b915050610f46565b611007611281565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c123384846112db565b611047611281565b60208054911515600160b01b0260ff60b01b19909216919091179055565b61106d611281565b6103e88161107b84866122c4565b61108591906122c4565b11156110c35760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601592909255601755601955565b6110d9611281565b60646002546110e89190612226565b81101561112d5760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420312560681b6044820152606401610ae9565b600455565b61113a611281565b6012541561117d5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610ae9565b61118781436122c4565b601255506020805460ff60b01b1916600160b01b179055565b6111a8611281565b6001600160a01b03811661120d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae9565b611216816119a9565b50565b611221611281565b47801561121657601f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611262573d6000803e3d6000fd5b5050565b61126e611281565b6007805460ff1916911515919091179055565b6000546001600160a01b03163314610ebb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ae9565b60006001600160a01b0384166113415760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ae9565b6001600160a01b0383166113a35760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ae9565b600082116114055760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ae9565b60045482108061142d57506001600160a01b0384166000908152600c602052604090205460ff165b6114795760405162461bcd60e51b815260206004820152601960248201527f45786365656473205472616e73616374696f6e204c696d6974000000000000006044820152606401610ae9565b601d546001600160a01b038481169116146114e3576001600160a01b0383166000908152600860205260409020546003546114b484836122c4565b10806114d857506001600160a01b0384166000908152600b602052604090205460ff165b6114e157600080fd5b505b601d546001600160a01b038581169116148015611502575060075460ff165b1561156e576006548211158061153057506001600160a01b0383166000908152600c602052604090205460ff165b61156e5760405162461bcd60e51b815260206004820152600f60248201526e45786365656473204d61782042757960881b6044820152606401610ae9565b6000546001600160a01b0385811691161480159061159a57506000546001600160a01b03848116911614155b1561161057602054600160b01b900460ff16806115cf57506001600160a01b0384166000908152600a602052604090205460ff165b6116105760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610ae9565b602054600160a01b900460ff16156116345761162d8484846119f9565b9050610c12565b601d546001600160a01b038581169116148015906116605750601d546001600160a01b03848116911614155b156116705761162d8484846119f9565b601d546001600160a01b031633148015906116955750602054600160a01b900460ff16155b80156116aa5750602054600160a81b900460ff165b80156116c757506005543060009081526008602052604090205410155b156116d4576116d461181d565b601d546001600160a01b0385811691161480156116f2575060125443105b1561170657600d546001600160a01b031692505b6001600160a01b03841660009081526008602052604090205461172a908390612248565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1615801561177a57506001600160a01b0384166000908152600a602052604090205460ff16155b611784578261178f565b61178f858585611ab3565b6001600160a01b0385166000908152600860205260409020549091506117b69082906122c4565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061180a9085815260200190565b60405180910390a3506001949350505050565b6020805460ff60a01b1916600160a01b17815530600090815260089091526040812054601154601054600f5492939261185691906122c4565b61186091906122c4565b600f546010546011549293509091600061187b600284612226565b905060006118898288612248565b905061189481611cda565b476000876118a288846122dc565b6118ac9190612226565b905060006002896118bd89866122dc565b6118c79190612226565b6118d19190612226565b90506000896118e088866122dc565b6118ea9190612226565b9050831561192e57601f546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561192c573d6000803e3d6000fd5b505b851561193e5761193e8683611e39565b8015611980576020546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561197e573d6000803e3d6000fd5b505b6000600f819055601081905560115550506020805460ff60a01b19169055505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260086020526040812054611a1d908390612248565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611a4d9083906122c4565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611aa19086815260200190565b60405180910390a35060019392505050565b60008061271060145484611ac791906122dc565b611ad19190612226565b9050600061271060155485611ae691906122dc565b611af09190612226565b9050600061271060165486611b0591906122dc565b611b0f9190612226565b9050600061271060175487611b2491906122dc565b611b2e9190612226565b9050600061271060185488611b4391906122dc565b611b4d9190612226565b9050600061271060195489611b6291906122dc565b611b6c9190612226565b601d549091506000906001600160a01b038c81169116148015611b9d5750601d546001600160a01b038b8116911614155b8015611bc257506001600160a01b038a166000908152600a602052604090205460ff16155b15611be95782611bd286896122c4565b611bdc91906122c4565b9050611be9878685611ece565b602054600160a01b900460ff16158015611c115750601d546001600160a01b038c8116911614155b8015611c265750602054600160b01b900460ff165b15611c4d5781611c3685886122c4565b611c4091906122c4565b9050611c4d868584611ece565b30600090815260086020526040902054611c689082906122c4565b30600081815260086020526040908190209290925590516001600160a01b038d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb99085815260200190565b60405180910390a3611ccb818a612248565b9b9a5050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d0f57611d0f612295565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8c91906122fb565b81600181518110611d9f57611d9f612295565b60200260200101906001600160a01b031690816001600160a01b031681525050611dc930836109f2565b50601c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e03908590600090869030904290600401612318565b600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b505050505050565b601c5460135460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e3c9190612389565b82600f6000016000828254611ee391906122c4565b90915550829050600f6001016000828254611efe91906122c4565b90915550819050600f6002016000828254611f1991906122c4565b9091555050505050565b6001600160a01b038116811461121657600080fd5b600060208284031215611f4a57600080fd5b8135610c1281611f23565b801515811461121657600080fd5b60008060408385031215611f7657600080fd5b8235611f8181611f23565b91506020830135611f9181611f55565b809150509250929050565b600060208083528351808285015260005b81811015611fc957858101830151858201604001528201611fad565b81811115611fdb576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561200457600080fd5b823561200f81611f23565b946020939093013593505050565b60006020828403121561202f57600080fd5b5035919050565b60008060006060848603121561204b57600080fd5b833561205681611f23565b9250602084013561206681611f23565b929592945050506040919091013590565b60008083601f84011261208957600080fd5b50813567ffffffffffffffff8111156120a157600080fd5b6020830191508360208260051b85010111156120bc57600080fd5b9250929050565b600080600080604085870312156120d957600080fd5b843567ffffffffffffffff808211156120f157600080fd5b6120fd88838901612077565b9096509450602087013591508082111561211657600080fd5b5061212387828801612077565b95989497509550505050565b6000806040838503121561214257600080fd5b823561200f81611f55565b60008060006060848603121561216257600080fd5b505081359360208301359350604090920135919050565b60008060006040848603121561218e57600080fd5b833567ffffffffffffffff8111156121a557600080fd5b6121b186828701612077565b909790965060209590950135949350505050565b6000602082840312156121d757600080fd5b8135610c1281611f55565b600080604083850312156121f557600080fd5b823561220081611f23565b91506020830135611f9181611f23565b634e487b7160e01b600052601160045260246000fd5b60008261224357634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561225a5761225a612210565b500390565b60006020828403121561227157600080fd5b5051919050565b60006020828403121561228a57600080fd5b8151610c1281611f55565b634e487b7160e01b600052603260045260246000fd5b6000600182016122bd576122bd612210565b5060010190565b600082198211156122d7576122d7612210565b500190565b60008160001904831182151516156122f6576122f6612210565b500290565b60006020828403121561230d57600080fd5b8151610c1281611f23565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123685784516001600160a01b031683529383019391830191600101612343565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239e57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f24ffb6ee8b4de64edc67c66281b5951d2f73bd72adc52fa81db87c82ee005e764736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106103035760003560e01c806375f0a87411610190578063c17b5b8c116100dc578063d726b22111610095578063f887ea401161006f578063f887ea401461091f578063f88de0c31461093f578063f8ae277d14610954578063ffb54a991461097457600080fd5b8063d726b221146108a4578063dd62ed3e146108b9578063f2fde38b146108ff57600080fd5b8063c17b5b8c146107df578063c45a0155146107ff578063c821fcb81461081f578063cd73ab021461084f578063d073a01f1461086f578063d120c8cb1461088457600080fd5b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610759578063af06a3f614610779578063bf56b37114610799578063bf8e28b9146107af57600080fd5b806395d89b411461037a578063a3a2e89e14610719578063a8aa1b311461073957600080fd5b806375f0a8741461067b5780638095d5641461069b57806388c5440f146106bb578063893d20e8146106db5780638da5cb5b146106db5780638ea5220f146106f957600080fd5b8063346cc7be1161024f578063571ac8b01161020857806366eb3785116101e257806366eb37851461060557806370a082311461061a57806370db69d614610650578063715018a61461066657600080fd5b8063571ac8b01461058d5780635d098b38146105ad578063665a11ca146105cd57600080fd5b8063346cc7be146104c257806334bfe0df146104e25780633dab5269146105025780633f4218e014610522578063417fd2d6146105525780634a74bb021461056c57600080fd5b80630b006d60116102bc5780631f53ac02116102965780631f53ac021461045157806323b872dd146104715780632b112e4914610491578063313ce567146104a657600080fd5b80630b006d60146103fc57806318160ddd1461041c5780631d5cd5451461043157600080fd5b8063018770201461030f57806302affaf5146103315780630445b6671461035157806306fdde031461037a578063095ea7b3146103ac5780630a37ac95146103dc57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b5061032f61032a366004611f38565b610995565b005b34801561033d57600080fd5b5061032f61034c366004611f63565b6109bf565b34801561035d57600080fd5b5061036760055481565b6040519081526020015b60405180910390f35b34801561038657600080fd5b50604080518082018252600381526253415760e81b602082015290516103719190611f9c565b3480156103b857600080fd5b506103cc6103c7366004611ff1565b6109f2565b6040519015158152602001610371565b3480156103e857600080fd5b5061032f6103f7366004611f63565b610a5e565b34801561040857600080fd5b5061032f61041736600461201d565b610a91565b34801561042857600080fd5b50600254610367565b34801561043d57600080fd5b5061032f61044c36600461201d565b610af7565b34801561045d57600080fd5b5061032f61046c366004611f38565b610b5a565b34801561047d57600080fd5b506103cc61048c366004612036565b610b84565b34801561049d57600080fd5b50610367610c19565b3480156104b257600080fd5b5060405160098152602001610371565b3480156104ce57600080fd5b5061032f6104dd366004611f38565b610c6b565b3480156104ee57600080fd5b5061032f6104fd3660046120c3565b610d5f565b34801561050e57600080fd5b5061032f61051d36600461212f565b610e43565b34801561052e57600080fd5b506103cc61053d366004611f38565b600a6020526000908152604090205460ff1681565b34801561055e57600080fd5b506007546103cc9060ff1681565b34801561057857600080fd5b506020546103cc90600160a81b900460ff1681565b34801561059957600080fd5b506103cc6105a8366004611f38565b610e6d565b3480156105b957600080fd5b5061032f6105c8366004611f38565b610e81565b3480156105d957600080fd5b506013546105ed906001600160a01b031681565b6040516001600160a01b039091168152602001610371565b34801561061157600080fd5b5061032f610eab565b34801561062657600080fd5b50610367610635366004611f38565b6001600160a01b031660009081526008602052604090205490565b34801561065c57600080fd5b5061036760065481565b34801561067257600080fd5b5061032f610ebd565b34801561068757600080fd5b50601f546105ed906001600160a01b031681565b3480156106a757600080fd5b5061032f6106b636600461214d565b610ecf565b3480156106c757600080fd5b5061032f6106d6366004612179565b610f3b565b3480156106e757600080fd5b506000546001600160a01b03166105ed565b34801561070557600080fd5b506020546105ed906001600160a01b031681565b34801561072557600080fd5b5061032f610734366004611f63565b610fff565b34801561074557600080fd5b50601d546105ed906001600160a01b031681565b34801561076557600080fd5b506103cc610774366004611ff1565b611032565b34801561078557600080fd5b5061032f6107943660046121c5565b61103f565b3480156107a557600080fd5b5061036760125481565b3480156107bb57600080fd5b506103cc6107ca366004611f38565b600c6020526000908152604090205460ff1681565b3480156107eb57600080fd5b5061032f6107fa36600461214d565b611065565b34801561080b57600080fd5b50601e546105ed906001600160a01b031681565b34801561082b57600080fd5b506103cc61083a366004611f38565b600b6020526000908152604090205460ff1681565b34801561085b57600080fd5b5061032f61086a36600461201d565b6110d1565b34801561087b57600080fd5b50601b54610367565b34801561089057600080fd5b5061032f61089f36600461201d565b611132565b3480156108b057600080fd5b50601a54610367565b3480156108c557600080fd5b506103676108d43660046121e2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561090b57600080fd5b5061032f61091a366004611f38565b6111a0565b34801561092b57600080fd5b50601c546105ed906001600160a01b031681565b34801561094b57600080fd5b5061032f611219565b34801561096057600080fd5b5061032f61096f3660046121c5565b611266565b34801561098057600080fd5b506020546103cc90600160b01b900460ff1681565b61099d611281565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6109c7611281565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a4d9086815260200190565b60405180910390a350600192915050565b610a66611281565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610a99611281565b6032600254610aa89190612226565b811015610af25760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420322560681b60448201526064015b60405180910390fd5b600355565b610aff611281565b60c8600254610b0e9190612226565b811015610b555760405162461bcd60e51b81526020600482015260156024820152744d757374206265206174206c6561737420302e352560581b6044820152606401610ae9565b600655565b610b62611281565b602080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c04576001600160a01b0384166000908152600960209081526040808320338452909152902054610bdf908390612248565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c0f8484846112db565b90505b9392505050565b600e546001600160a01b0316600090815260086020526040812054600d546001600160a01b0316600090815260086020526040902054600254610c5c9190612248565b610c669190612248565b905090565b610c73611281565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce0919061225f565b601f5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044016020604051808303816000875af1158015610d35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d599190612278565b50505050565b610d67611281565b60005b83811015610e3c573063a9059cbb868684818110610d8a57610d8a612295565b9050602002016020810190610d9f9190611f38565b858585818110610db157610db1612295565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190612278565b5080610e34816122ab565b915050610d6a565b5050505050565b610e4b611281565b60208054921515600160a81b0260ff60a81b1990931692909217909155600555565b6000610e7b826000196109f2565b92915050565b610e89611281565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b610eb3611281565b610ebb61181d565b565b610ec5611281565b610ebb60006119a9565b610ed7611281565b6103e881610ee584866122c4565b610eef91906122c4565b1115610f2d5760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601492909255601655601855565b610f43611281565b60005b82811015610d59573063a9059cbb858584818110610f6657610f66612295565b9050602002016020810190610f7b9190611f38565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af1158015610fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fec9190612278565b5080610ff7816122ab565b915050610f46565b611007611281565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c123384846112db565b611047611281565b60208054911515600160b01b0260ff60b01b19909216919091179055565b61106d611281565b6103e88161107b84866122c4565b61108591906122c4565b11156110c35760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640a8dede4090d2ced609b1b6044820152606401610ae9565b601592909255601755601955565b6110d9611281565b60646002546110e89190612226565b81101561112d5760405162461bcd60e51b81526020600482015260136024820152724d757374206265206174206c6561737420312560681b6044820152606401610ae9565b600455565b61113a611281565b6012541561117d5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610ae9565b61118781436122c4565b601255506020805460ff60b01b1916600160b01b179055565b6111a8611281565b6001600160a01b03811661120d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae9565b611216816119a9565b50565b611221611281565b47801561121657601f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611262573d6000803e3d6000fd5b5050565b61126e611281565b6007805460ff1916911515919091179055565b6000546001600160a01b03163314610ebb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ae9565b60006001600160a01b0384166113415760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ae9565b6001600160a01b0383166113a35760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ae9565b600082116114055760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ae9565b60045482108061142d57506001600160a01b0384166000908152600c602052604090205460ff165b6114795760405162461bcd60e51b815260206004820152601960248201527f45786365656473205472616e73616374696f6e204c696d6974000000000000006044820152606401610ae9565b601d546001600160a01b038481169116146114e3576001600160a01b0383166000908152600860205260409020546003546114b484836122c4565b10806114d857506001600160a01b0384166000908152600b602052604090205460ff165b6114e157600080fd5b505b601d546001600160a01b038581169116148015611502575060075460ff165b1561156e576006548211158061153057506001600160a01b0383166000908152600c602052604090205460ff165b61156e5760405162461bcd60e51b815260206004820152600f60248201526e45786365656473204d61782042757960881b6044820152606401610ae9565b6000546001600160a01b0385811691161480159061159a57506000546001600160a01b03848116911614155b1561161057602054600160b01b900460ff16806115cf57506001600160a01b0384166000908152600a602052604090205460ff165b6116105760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610ae9565b602054600160a01b900460ff16156116345761162d8484846119f9565b9050610c12565b601d546001600160a01b038581169116148015906116605750601d546001600160a01b03848116911614155b156116705761162d8484846119f9565b601d546001600160a01b031633148015906116955750602054600160a01b900460ff16155b80156116aa5750602054600160a81b900460ff165b80156116c757506005543060009081526008602052604090205410155b156116d4576116d461181d565b601d546001600160a01b0385811691161480156116f2575060125443105b1561170657600d546001600160a01b031692505b6001600160a01b03841660009081526008602052604090205461172a908390612248565b6001600160a01b038516600090815260086020908152604080832093909355600a90529081205460ff1615801561177a57506001600160a01b0384166000908152600a602052604090205460ff16155b611784578261178f565b61178f858585611ab3565b6001600160a01b0385166000908152600860205260409020549091506117b69082906122c4565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061180a9085815260200190565b60405180910390a3506001949350505050565b6020805460ff60a01b1916600160a01b17815530600090815260089091526040812054601154601054600f5492939261185691906122c4565b61186091906122c4565b600f546010546011549293509091600061187b600284612226565b905060006118898288612248565b905061189481611cda565b476000876118a288846122dc565b6118ac9190612226565b905060006002896118bd89866122dc565b6118c79190612226565b6118d19190612226565b90506000896118e088866122dc565b6118ea9190612226565b9050831561192e57601f546040516001600160a01b039091169084156108fc029085906000818181858888f1935050505015801561192c573d6000803e3d6000fd5b505b851561193e5761193e8683611e39565b8015611980576020546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561197e573d6000803e3d6000fd5b505b6000600f819055601081905560115550506020805460ff60a01b19169055505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260086020526040812054611a1d908390612248565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611a4d9083906122c4565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611aa19086815260200190565b60405180910390a35060019392505050565b60008061271060145484611ac791906122dc565b611ad19190612226565b9050600061271060155485611ae691906122dc565b611af09190612226565b9050600061271060165486611b0591906122dc565b611b0f9190612226565b9050600061271060175487611b2491906122dc565b611b2e9190612226565b9050600061271060185488611b4391906122dc565b611b4d9190612226565b9050600061271060195489611b6291906122dc565b611b6c9190612226565b601d549091506000906001600160a01b038c81169116148015611b9d5750601d546001600160a01b038b8116911614155b8015611bc257506001600160a01b038a166000908152600a602052604090205460ff16155b15611be95782611bd286896122c4565b611bdc91906122c4565b9050611be9878685611ece565b602054600160a01b900460ff16158015611c115750601d546001600160a01b038c8116911614155b8015611c265750602054600160b01b900460ff165b15611c4d5781611c3685886122c4565b611c4091906122c4565b9050611c4d868584611ece565b30600090815260086020526040902054611c689082906122c4565b30600081815260086020526040908190209290925590516001600160a01b038d16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb99085815260200190565b60405180910390a3611ccb818a612248565b9b9a5050505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d0f57611d0f612295565b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8c91906122fb565b81600181518110611d9f57611d9f612295565b60200260200101906001600160a01b031690816001600160a01b031681525050611dc930836109f2565b50601c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611e03908590600090869030904290600401612318565b600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b505050505050565b601c5460135460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611ea9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e3c9190612389565b82600f6000016000828254611ee391906122c4565b90915550829050600f6001016000828254611efe91906122c4565b90915550819050600f6002016000828254611f1991906122c4565b9091555050505050565b6001600160a01b038116811461121657600080fd5b600060208284031215611f4a57600080fd5b8135610c1281611f23565b801515811461121657600080fd5b60008060408385031215611f7657600080fd5b8235611f8181611f23565b91506020830135611f9181611f55565b809150509250929050565b600060208083528351808285015260005b81811015611fc957858101830151858201604001528201611fad565b81811115611fdb576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561200457600080fd5b823561200f81611f23565b946020939093013593505050565b60006020828403121561202f57600080fd5b5035919050565b60008060006060848603121561204b57600080fd5b833561205681611f23565b9250602084013561206681611f23565b929592945050506040919091013590565b60008083601f84011261208957600080fd5b50813567ffffffffffffffff8111156120a157600080fd5b6020830191508360208260051b85010111156120bc57600080fd5b9250929050565b600080600080604085870312156120d957600080fd5b843567ffffffffffffffff808211156120f157600080fd5b6120fd88838901612077565b9096509450602087013591508082111561211657600080fd5b5061212387828801612077565b95989497509550505050565b6000806040838503121561214257600080fd5b823561200f81611f55565b60008060006060848603121561216257600080fd5b505081359360208301359350604090920135919050565b60008060006040848603121561218e57600080fd5b833567ffffffffffffffff8111156121a557600080fd5b6121b186828701612077565b909790965060209590950135949350505050565b6000602082840312156121d757600080fd5b8135610c1281611f55565b600080604083850312156121f557600080fd5b823561220081611f23565b91506020830135611f9181611f23565b634e487b7160e01b600052601160045260246000fd5b60008261224357634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561225a5761225a612210565b500390565b60006020828403121561227157600080fd5b5051919050565b60006020828403121561228a57600080fd5b8151610c1281611f55565b634e487b7160e01b600052603260045260246000fd5b6000600182016122bd576122bd612210565b5060010190565b600082198211156122d7576122d7612210565b500190565b60008160001904831182151516156122f6576122f6612210565b500290565b60006020828403121561230d57600080fd5b8151610c1281611f23565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123685784516001600160a01b031683529383019391830191600101612343565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561239e57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220f24ffb6ee8b4de64edc67c66281b5951d2f73bd72adc52fa81db87c82ee005e764736f6c634300080d0033

Deployed Bytecode Sourcemap

5089:13280:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9467:122;;;;;;;;;;-1:-1:-1;9467:122:0;;;;;:::i;:::-;;:::i;:::-;;8013:128;;;;;;;;;;-1:-1:-1;8013:128:0;;;;;:::i;:::-;;:::i;5462:50::-;;;;;;;;;;;;;;;;;;;1058:25:1;;;1046:2;1031:18;5462:50:0;;;;;;;;10218:80;;;;;;;;;;-1:-1:-1;10290:5:0;;;;;;;;;;;-1:-1:-1;;;10290:5:0;;;;10218:80;;;;10290:5;10218:80;:::i;10808:216::-;;;;;;;;;;-1:-1:-1;10808:216:0;;;;;:::i;:::-;;:::i;:::-;;;2181:14:1;;2174:22;2156:41;;2144:2;2129:18;10808:216:0;2016:187:1;8149:120:0;;;;;;;;;;-1:-1:-1;8149:120:0;;;;;:::i;:::-;;:::i;8837:160::-;;;;;;;;;;-1:-1:-1;8837:160:0;;;;;:::i;:::-;;:::i;9948:88::-;;;;;;;;;;-1:-1:-1;10021:12:0;;9948:88;;8672:157;;;;;;;;;;-1:-1:-1;8672:157:0;;;;;:::i;:::-;;:::i;9339:120::-;;;;;;;;;;-1:-1:-1;9339:120:0;;;;;:::i;:::-;;:::i;11502:337::-;;;;;;;;;;-1:-1:-1;11502:337:0;;;;;:::i;:::-;;:::i;9804:136::-;;;;;;;;;;;;;:::i;10042:80::-;;;;;;;;;;-1:-1:-1;10042:80:0;;5284:1;3256:36:1;;3244:2;3229:18;10042:80:0;3114:184:1;17546:252:0;;;;;;;;;;-1:-1:-1;17546:252:0;;;;;:::i;:::-;;:::i;18079:287::-;;;;;;;;;;-1:-1:-1;18079:287:0;;;;;:::i;:::-;;:::i;9597:199::-;;;;;;;;;;-1:-1:-1;9597:199:0;;;;;:::i;:::-;;:::i;5764:44::-;;;;;;;;;;-1:-1:-1;5764:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5595:32;;;;;;;;;;-1:-1:-1;5595:32:0;;;;;;;;6833:40;;;;;;;;;;-1:-1:-1;6833:40:0;;;;-1:-1:-1;;;6833:40:0;;;;;;11032:122;;;;;;;;;;-1:-1:-1;11032:122:0;;;;;:::i;:::-;;:::i;9184:147::-;;;;;;;;;;-1:-1:-1;9184:147:0;;;;;:::i;:::-;;:::i;6126:35::-;;;;;;;;;;-1:-1:-1;6126:35:0;;;;-1:-1:-1;;;;;6126:35:0;;;;;;-1:-1:-1;;;;;4931:32:1;;;4913:51;;4901:2;4886:18;6126:35:0;4767:203:1;17228:74:0;;;;;;;;;;;;;:::i;10390:105::-;;;;;;;;;;-1:-1:-1;10390:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10474:18:0;10456:7;10474:18;;;:9;:18;;;;;;;10390:105;5541:41;;;;;;;;;;;;;;;;3090:103;;;;;;;;;;;;;:::i;6627:84::-;;;;;;;;;;-1:-1:-1;6627:84:0;;;;-1:-1:-1;;;;;6627:84:0;;;14758:275;;;;;;;;;;-1:-1:-1;14758:275:0;;;;;:::i;:::-;;:::i;17806:265::-;;;;;;;;;;-1:-1:-1;17806:265:0;;;;;:::i;:::-;;:::i;10304:80::-;;;;;;;;;;-1:-1:-1;10356:7:0;2928:6;-1:-1:-1;;;;;2928:6:0;10304:80;9804:136;6718:78;;;;;;;;;;-1:-1:-1;6718:78:0;;;;-1:-1:-1;;;;;6718:78:0;;;7883:122;;;;;;;;;;-1:-1:-1;7883:122:0;;;;;:::i;:::-;;:::i;6572:19::-;;;;;;;;;;-1:-1:-1;6572:19:0;;;;-1:-1:-1;;;;;6572:19:0;;;11342:152;;;;;;;;;;-1:-1:-1;11342:152:0;;;;;:::i;:::-;;:::i;8471:91::-;;;;;;;;;;-1:-1:-1;8471:91:0;;;;;:::i;:::-;;:::i;6094:25::-;;;;;;;;;;;;;;;;5869:43;;;;;;;;;;-1:-1:-1;5869:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15045:284;;;;;;;;;;-1:-1:-1;15045:284:0;;;;;:::i;:::-;;:::i;6598:22::-;;;;;;;;;;-1:-1:-1;6598:22:0;;;;-1:-1:-1;;;;;6598:22:0;;;5815:47;;;;;;;;;;-1:-1:-1;5815:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9005:171;;;;;;;;;;-1:-1:-1;9005:171:0;;;;;:::i;:::-;;:::i;10722:78::-;;;;;;;;;;-1:-1:-1;10785:12:0;;10722:78;;8277:186;;;;;;;;;;-1:-1:-1;8277:186:0;;;;;:::i;:::-;;:::i;10640:76::-;;;;;;;;;;-1:-1:-1;10702:11:0;;10640:76;;10501:133;;;;;;;;;;-1:-1:-1;10501:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10603:19:0;;;10585:7;10603:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10501:133;3201:201;;;;;;;;;;-1:-1:-1;3201:201:0;;;;;:::i;:::-;;:::i;6541:24::-;;;;;;;;;;-1:-1:-1;6541:24:0;;;;-1:-1:-1;;;;;6541:24:0;;;17310:228;;;;;;;;;;;;;:::i;8570:94::-;;;;;;;;;;-1:-1:-1;8570:94:0;;;;;:::i;:::-;;:::i;6880:31::-;;;;;;;;;;-1:-1:-1;6880:31:0;;;;-1:-1:-1;;;6880:31:0;;;;;;9467:122;2814:13;:11;:13::i;:::-;9549::::1;:32:::0;;-1:-1:-1;;;;;;9549:32:0::1;-1:-1:-1::0;;;;;9549:32:0;;;::::1;::::0;;;::::1;::::0;;9467:122::o;8013:128::-;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;8102:22:0;;;::::1;;::::0;;;:14:::1;:22;::::0;;;;:31;;-1:-1:-1;;8102:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8013:128::o;10808:216::-;10912:10;10883:4;10900:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10900:32:0;;;;;;;;;;:41;;;10957:37;10883:4;;10900:32;;10957:37;;;;10935:6;1058:25:1;;1046:2;1031:18;;912:177;10957:37:0;;;;;;;;-1:-1:-1;11012:4:0;10808:216;;;;:::o;8149:120::-;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;8234:18:0;;;::::1;;::::0;;;:10:::1;:18;::::0;;;;:27;;-1:-1:-1;;8234:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8149:120::o;8837:160::-;2814:13;:11;:13::i;:::-;8935:2:::1;8920:12;;:17;;;;:::i;:::-;8911:4;:27;;8903:59;;;::::0;-1:-1:-1;;;8903:59:0;;7227:2:1;8903:59:0::1;::::0;::::1;7209:21:1::0;7266:2;7246:18;;;7239:30;-1:-1:-1;;;7285:18:1;;;7278:49;7344:18;;8903:59:0::1;;;;;;;;;8973:9;:16:::0;8837:160::o;8672:157::-;2814:13;:11;:13::i;:::-;8770:3:::1;8755:12;;:18;;;;:::i;:::-;8746:4;:28;;8738:62;;;::::0;-1:-1:-1;;;8738:62:0;;7575:2:1;8738:62:0::1;::::0;::::1;7557:21:1::0;7614:2;7594:18;;;7587:30;-1:-1:-1;;;7633:18:1;;;7626:51;7694:18;;8738:62:0::1;7373:345:1::0;8738:62:0::1;8808:6;:13:::0;8672:157::o;9339:120::-;2814:13;:11;:13::i;:::-;9418:9:::1;:33:::0;;-1:-1:-1;;;;;;9418:33:0::1;-1:-1:-1::0;;;;;9418:33:0;;;::::1;::::0;;;::::1;::::0;;9339:120::o;11502:337::-;-1:-1:-1;;;;;11622:19:0;;11602:4;11622:19;;;:11;:19;;;;;;;;11642:10;11622:31;;;;;;;;-1:-1:-1;;11622:52:0;11619:157;;-1:-1:-1;;;;;11724:19:0;;;;;;:11;:19;;;;;;;;11744:10;11724:31;;;;;;;;:40;;11758:6;;11724:40;:::i;:::-;-1:-1:-1;;;;;11690:19:0;;;;;;:11;:19;;;;;;;;11710:10;11690:31;;;;;;;:74;11619:157;11795:36;11805:6;11813:9;11824:6;11795:9;:36::i;:::-;11788:43;;11502:337;;;;;;:::o;9804:136::-;9927:4;;-1:-1:-1;;;;;9927:4:0;9857:7;10474:18;;;:9;:18;;;;;;9909:4;;-1:-1:-1;;;;;9909:4:0;10456:7;10474:18;;;:9;:18;;;;;;9884:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;9877:55;;9804:136;:::o;17546:252::-;2814:13;:11;:13::i;:::-;17699:35:::1;::::0;-1:-1:-1;;;17699:35:0;;17728:4:::1;17699:35;::::0;::::1;4913:51:1::0;17654:15:0;;17627:17:::1;::::0;-1:-1:-1;;;;;17699:20:0;::::1;::::0;::::1;::::0;4886:18:1;;17699:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17765:15;::::0;17745:45:::1;::::0;-1:-1:-1;;;17745:45:0;;-1:-1:-1;;;;;17765:15:0;;::::1;17745:45;::::0;::::1;8216:51:1::0;8283:18;;;8276:34;;;17681:53:0;;-1:-1:-1;17745:19:0;::::1;::::0;::::1;::::0;8189:18:1;;17745:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17616:182;;17546:252:::0;:::o;18079:287::-;2814:13;:11;:13::i;:::-;18216:6:::1;18211:148;18228:28:::0;;::::1;18211:148;;;18290:4;18275:30;18306:17:::0;;18324:1;18306:20;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18328:15;;18344:1;18328:18;;;;;;;:::i;:::-;18275:72;::::0;-1:-1:-1;;;;;;18275:72:0::1;::::0;;;;;;-1:-1:-1;;;;;8234:32:1;;;18275:72:0::1;::::0;::::1;8216:51:1::0;18328:18:0::1;;::::0;;;::::1;;8283::1::0;;;8276:34;-1:-1:-1;8189:18:1;;18275:72:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;18258:3:0;::::1;::::0;::::1;:::i;:::-;;;;18211:148;;;;18079:287:::0;;;;:::o;9597:199::-;2814:13;:11;:13::i;:::-;9706:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;9706:39:0::1;-1:-1:-1::0;;;;9706:39:0;;::::1;::::0;;;::::1;::::0;;;9756:13:::1;:32:::0;9597:199::o;11032:122::-;11087:4;11111:35;11119:7;-1:-1:-1;;11111:7:0;:35::i;:::-;11104:42;11032:122;-1:-1:-1;;11032:122:0:o;9184:147::-;2814:13;:11;:13::i;:::-;9278:15:::1;:45:::0;;-1:-1:-1;;;;;;9278:45:0::1;-1:-1:-1::0;;;;;9278:45:0;;;::::1;::::0;;;::::1;::::0;;9184:147::o;17228:74::-;2814:13;:11;:13::i;:::-;17284:10:::1;:8;:10::i;:::-;17228:74::o:0;3090:103::-;2814:13;:11;:13::i;:::-;3155:30:::1;3182:1;3155:18;:30::i;14758:275::-:0;2814:13;:11;:13::i;:::-;14918:4:::1;14905:9:::0;14876:26:::1;14891:11:::0;14876:12;:26:::1;:::i;:::-;:38;;;;:::i;:::-;:46;;14868:72;;;::::0;-1:-1:-1;;;14868:72:0;;9178:2:1;14868:72:0::1;::::0;::::1;9160:21:1::0;9217:2;9197:18;;;9190:30;-1:-1:-1;;;9236:18:1;;;9229:43;9289:18;;14868:72:0::1;8976:337:1::0;14868:72:0::1;14948:6;:21:::0;;;;14977:5:::1;:19:::0;15007:6:::1;:18:::0;14758:275::o;17806:265::-;2814:13;:11;:13::i;:::-;17926:6:::1;17921:143;17938:28:::0;;::::1;17921:143;;;18000:4;17985:30;18016:17:::0;;18034:1;18016:20;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17985:67;::::0;-1:-1:-1;;;;;;17985:67:0::1;::::0;;;;;;-1:-1:-1;;;;;8234:32:1;;;17985:67:0::1;::::0;::::1;8216:51:1::0;8283:18;;;8276:34;;;8189:18;;17985:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;17968:3:0;::::1;::::0;::::1;:::i;:::-;;;;17921:143;;7883:122:::0;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;7969:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;7969:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7883:122::o;11342:152::-;11422:4;11446:40;11456:10;11468:9;11479:6;11446:9;:40::i;8471:91::-;2814:13;:11;:13::i;:::-;8533:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;8533:21:0::1;-1:-1:-1::0;;;;8533:21:0;;::::1;::::0;;;::::1;::::0;;8471:91::o;15045:284::-;2814:13;:11;:13::i;:::-;15211:4:::1;15197:10:::0;15166:28:::1;15182:12:::0;15166:13;:28:::1;:::i;:::-;:41;;;;:::i;:::-;:49;;15158:75;;;::::0;-1:-1:-1;;;15158:75:0;;9178:2:1;15158:75:0::1;::::0;::::1;9160:21:1::0;9217:2;9197:18;;;9190:30;-1:-1:-1;;;9236:18:1;;;9229:43;9289:18;;15158:75:0::1;8976:337:1::0;15158:75:0::1;15241:7;:23:::0;;;;15272:6:::1;:21:::0;15301:7:::1;:20:::0;15045:284::o;9005:171::-;2814:13;:11;:13::i;:::-;9108:3:::1;9093:12;;:18;;;;:::i;:::-;9084:4;:28;;9076:60;;;::::0;-1:-1:-1;;;9076:60:0;;9520:2:1;9076:60:0::1;::::0;::::1;9502:21:1::0;9559:2;9539:18;;;9532:30;-1:-1:-1;;;9578:18:1;;;9571:49;9637:18;;9076:60:0::1;9318:343:1::0;9076:60:0::1;9147:14;:21:::0;9005:171::o;8277:186::-;2814:13;:11;:13::i;:::-;8347:10:::1;::::0;:15;8339:44:::1;;;::::0;-1:-1:-1;;;8339:44:0;;9868:2:1;8339:44:0::1;::::0;::::1;9850:21:1::0;9907:2;9887:18;;;9880:30;-1:-1:-1;;;9926:18:1;;;9919:46;9982:18;;8339:44:0::1;9666:340:1::0;8339:44:0::1;8407:19;8422:4:::0;8407:12:::1;:19;:::i;:::-;8394:10;:32:::0;-1:-1:-1;8437:11:0::1;:18:::0;;-1:-1:-1;;;;8437:18:0::1;-1:-1:-1::0;;;8437:18:0::1;::::0;;8277:186::o;3201:201::-;2814:13;:11;:13::i;:::-;-1:-1:-1;;;;;3290:22:0;::::1;3282:73;;;::::0;-1:-1:-1;;;3282:73:0;;10213:2:1;3282:73:0::1;::::0;::::1;10195:21:1::0;10252:2;10232:18;;;10225:30;10291:34;10271:18;;;10264:62;-1:-1:-1;;;10342:18:1;;;10335:36;10388:19;;3282:73:0::1;10011:402:1::0;3282:73:0::1;3366:28;3385:8;3366:18;:28::i;:::-;3201:201:::0;:::o;17310:228::-;2814:13;:11;:13::i;:::-;17394:21:::1;17429:22:::0;;17426:105:::1;;17477:15;::::0;17469:53:::1;::::0;-1:-1:-1;;;;;17477:15:0;;::::1;::::0;17469:53;::::1;;;::::0;17503:18;;17477:15:::1;17469:53:::0;17477:15;17469:53;17503:18;17477:15;17469:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17354:184;17310:228::o:0;8570:94::-;2814:13;:11;:13::i;:::-;8633::::1;:23:::0;;-1:-1:-1;;8633:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8570:94::o;2950:132::-;2901:7;2928:6;-1:-1:-1;;;;;2928:6:0;2406:10;3014:23;3006:68;;;;-1:-1:-1;;;3006:68:0;;10620:2:1;3006:68:0;;;10602:21:1;;;10639:18;;;10632:30;10698:34;10678:18;;;10671:62;10750:18;;3006:68:0;10418:356:1;11847:1619:0;11935:4;-1:-1:-1;;;;;11960:20:0;;11952:70;;;;-1:-1:-1;;;11952:70:0;;10981:2:1;11952:70:0;;;10963:21:1;11020:2;11000:18;;;10993:30;11059:34;11039:18;;;11032:62;-1:-1:-1;;;11110:18:1;;;11103:35;11155:19;;11952:70:0;10779:401:1;11952:70:0;-1:-1:-1;;;;;12041:23:0;;12033:71;;;;-1:-1:-1;;;12033:71:0;;11387:2:1;12033:71:0;;;11369:21:1;11426:2;11406:18;;;11399:30;11465:34;11445:18;;;11438:62;-1:-1:-1;;;11516:18:1;;;11509:33;11559:19;;12033:71:0;11185:399:1;12033:71:0;12132:1;12123:6;:10;12115:64;;;;-1:-1:-1;;;12115:64:0;;11791:2:1;12115:64:0;;;11773:21:1;11830:2;11810:18;;;11803:30;11869:34;11849:18;;;11842:62;-1:-1:-1;;;11920:18:1;;;11913:39;11969:19;;12115:64:0;11589:405:1;12115:64:0;12207:14;;12198:6;:23;:45;;;-1:-1:-1;;;;;;12225:18:0;;;;;;:10;:18;;;;;;;;12198:45;12190:83;;;;-1:-1:-1;;;12190:83:0;;12201:2:1;12190:83:0;;;12183:21:1;12240:2;12220:18;;;12213:30;12279:27;12259:18;;;12252:55;12324:18;;12190:83:0;11999:349:1;12190:83:0;12302:4;;-1:-1:-1;;;;;12289:17:0;;;12302:4;;12289:17;12286:186;;-1:-1:-1;;;;;12350:20:0;;12323:24;12350:20;;;:9;:20;;;;;;12421:9;;12393:25;12412:6;12350:20;12393:25;:::i;:::-;:37;:66;;;-1:-1:-1;;;;;;12434:25:0;;;;;;:14;:25;;;;;;;;12393:66;12385:75;;;;;;12308:164;12286:186;12494:4;;-1:-1:-1;;;;;12484:14:0;;;12494:4;;12484:14;:31;;;;-1:-1:-1;12502:13:0;;;;12484:31;12481:110;;;12537:6;;12527;:16;;:41;;;-1:-1:-1;;;;;;12547:21:0;;;;;;:10;:21;;;;;;;;12527:41;12519:69;;;;-1:-1:-1;;;12519:69:0;;12555:2:1;12519:69:0;;;12537:21:1;12594:2;12574:18;;;12567:30;-1:-1:-1;;;12613:18:1;;;12606:45;12668:18;;12519:69:0;12353:339:1;12519:69:0;2901:7;2928:6;-1:-1:-1;;;;;12604:17:0;;;2928:6;;12604:17;;;;:41;;-1:-1:-1;2901:7:0;2928:6;-1:-1:-1;;;;;12625:20:0;;;2928:6;;12625:20;;12604:41;12601:116;;;12657:11;;-1:-1:-1;;;12657:11:0;;;;;:34;;-1:-1:-1;;;;;;12672:19:0;;;;;;:11;:19;;;;;;;;12657:34;12649:65;;;;-1:-1:-1;;;12649:65:0;;12899:2:1;12649:65:0;;;12881:21:1;12938:2;12918:18;;;12911:30;-1:-1:-1;;;12957:18:1;;;12950:48;13015:18;;12649:65:0;12697:342:1;12649:65:0;12730:16;;-1:-1:-1;;;12730:16:0;;;;12727:73;;;12756:41;12771:6;12779:9;12790:6;12756:14;:41::i;:::-;12749:48;;;;12727:73;12820:4;;-1:-1:-1;;;;;12810:14:0;;;12820:4;;12810:14;;;;:35;;-1:-1:-1;12841:4:0;;-1:-1:-1;;;;;12828:17:0;;;12841:4;;12828:17;;12810:35;12807:93;;;12856:41;12871:6;12879:9;12890:6;12856:14;:41::i;12807:93::-;12927:4;;-1:-1:-1;;;;;12927:4:0;12913:10;:18;;;;:39;;-1:-1:-1;12936:16:0;;-1:-1:-1;;;12936:16:0;;;;12935:17;12913:39;:64;;;;-1:-1:-1;12956:21:0;;-1:-1:-1;;;12956:21:0;;;;12913:64;:109;;;;-1:-1:-1;13009:13:0;;12999:4;12981:24;;;;:9;:24;;;;;;:41;;12913:109;12910:128;;;13025:10;:8;:10::i;:::-;13058:4;;-1:-1:-1;;;;;13048:14:0;;;13058:4;;13048:14;:43;;;;;13081:10;;13066:12;:25;13048:43;13045:69;;;13107:4;;-1:-1:-1;;;;;13107:4:0;;-1:-1:-1;13045:69:0;-1:-1:-1;;;;;13146:17:0;;;;;;:9;:17;;;;;;:26;;13166:6;;13146:26;:::i;:::-;-1:-1:-1;;;;;13126:17:0;;;;;;:9;:17;;;;;;;;:46;;;;13216:11;:19;;;;;;;;13215:20;:47;;;;-1:-1:-1;;;;;;13240:22:0;;;;;;:11;:22;;;;;;;;13239:23;13215:47;:93;;13302:6;13215:93;;;13265:34;13273:6;13281:9;13292:6;13265:7;:34::i;:::-;-1:-1:-1;;;;;13344:20:0;;;;;;:9;:20;;;;;;13193:115;;-1:-1:-1;13344:34:0;;13193:115;;13344:34;:::i;:::-;-1:-1:-1;;;;;13321:20:0;;;;;;;:9;:20;;;;;;;:57;;;;13396:40;;;;;;;;;;13424:11;1058:25:1;;1046:2;1031:18;;912:177;13396:40:0;;;;;;;;-1:-1:-1;13454:4:0;;11847:1619;-1:-1:-1;;;;11847:1619:0:o;16069:1151::-;6952:16;:23;;-1:-1:-1;;;;6952:23:0;-1:-1:-1;;;6952:23:0;;;16168:4:::1;-1:-1:-1::0;16150:24:0;;;:9:::1;:24:::0;;;;;;;16251:17;;16231;;16251:14:::1;16211:17:::0;16150:24;;-1:-1:-1;16211:37:0::1;::::0;16231:17;16211:37:::1;:::i;:::-;:57;;;;:::i;:::-;16298:14;:17:::0;16344;;16388;;16185:83;;-1:-1:-1;16298:17:0;;16279:16:::1;16445:11;16403:1;16344:17:::0;16445:11:::1;:::i;:::-;16416:40:::0;-1:-1:-1;16469:20:0::1;16492:33;16416:40:::0;16492:12;:33:::1;:::i;:::-;16469:56;;16538:30;16555:12;16538:16;:30::i;:::-;16607:21;16581:23;16688:15:::0;16659:26:::1;16677:8:::0;16607:21;16659:26:::1;:::i;:::-;:44;;;;:::i;:::-;16639:64:::0;-1:-1:-1;16714:23:0::1;16786:1;16768:15:::0;16740:25:::1;16758:7:::0;16740:15;:25:::1;:::i;:::-;:43;;;;:::i;:::-;:47;;;;:::i;:::-;16714:73:::0;-1:-1:-1;16795:17:0::1;16843:15:::0;16815:26:::1;16833:8:::0;16815:15;:26:::1;:::i;:::-;:43;;;;:::i;:::-;16795:63:::0;-1:-1:-1;16881:19:0;;16877:96:::1;;16925:15;::::0;16917:44:::1;::::0;-1:-1:-1;;;;;16925:15:0;;::::1;::::0;16917:44;::::1;;;::::0;16951:9;;16925:15:::1;16917:44:::0;16925:15;16917:44;16951:9;16925:15;16917:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16877:96;16991:22:::0;;16987:104:::1;;17030:49;17043:18;17063:15;17030:12;:49::i;:::-;17105:13:::0;;17101:81:::1;;17140:9;::::0;17132:38:::1;::::0;-1:-1:-1;;;;;17140:9:0;;::::1;::::0;17132:38;::::1;;;::::0;17160:9;;17140::::1;17132:38:::0;17140:9;17132:38;17160:9;17140;17132:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17101:81;17198:14;;-1:-1:-1::0;;;;;;;;;;;6998:16:0;:24;;-1:-1:-1;;;;6998:24:0;;;-1:-1:-1;;;;;;;;;16069:1151:0:o;3410:191::-;3484:16;3503:6;;-1:-1:-1;;;;;3520:17:0;;;-1:-1:-1;;;;;;3520:17:0;;;;;;3553:40;;3503:6;;;;;;;3553:40;;3484:16;3553:40;3473:128;3410:191;:::o;14448:300::-;-1:-1:-1;;;;;14578:17:0;;14541:4;14578:17;;;:9;:17;;;;;;:26;;14598:6;;14578:26;:::i;:::-;-1:-1:-1;;;;;14558:17:0;;;;;;;:9;:17;;;;;;:46;;;;14638:20;;;;;;;:29;;14661:6;;14638:29;:::i;:::-;-1:-1:-1;;;;;14615:20:0;;;;;;;:9;:20;;;;;;;:52;;;;14683:35;;;;;;;;;;14711:6;1058:25:1;;1046:2;1031:18;;912:177;14683:35:0;;;;;;;;-1:-1:-1;14736:4:0;14448:300;;;;;:::o;13476:964::-;13562:7;13592:15;13628:5;13619:6;;13610;:15;;;;:::i;:::-;:23;;;;:::i;:::-;13592:41;;13641:15;13678:5;13668:7;;13659:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;13641:42;;13694:14;13728:5;13720;;13711:6;:14;;;;:::i;:::-;:22;;;;:::i;:::-;13694:39;;13741:14;13776:5;13767:6;;13758;:15;;;;:::i;:::-;:23;;;;:::i;:::-;13741:40;;13789:12;13822:5;13813:6;;13804;:15;;;;:::i;:::-;:23;;;;:::i;:::-;13789:38;;13835:12;13869:5;13859:7;;13850:6;:16;;;;:::i;:::-;:24;;;;:::i;:::-;13924:4;;13835:39;;-1:-1:-1;13885:16:0;;-1:-1:-1;;;;;13914:14:0;;;13924:4;;13914:14;:44;;;;-1:-1:-1;13953:4:0;;-1:-1:-1;;;;;13932:26:0;;;13953:4;;13932:26;;13914:44;:71;;;;-1:-1:-1;;;;;;13963:22:0;;;;;;:11;:22;;;;;;;;13962:23;13914:71;13911:184;;;14032:4;14013:16;14023:6;14013:7;:16;:::i;:::-;:23;;;;:::i;:::-;14002:34;;14048:38;14064:7;14073:6;14081:4;14048:15;:38::i;:::-;14108:16;;-1:-1:-1;;;14108:16:0;;;;14107:17;:35;;;;-1:-1:-1;14138:4:0;;-1:-1:-1;;;;;14128:14:0;;;14138:4;;14128:14;;14107:35;:50;;;;-1:-1:-1;14146:11:0;;-1:-1:-1;;;14146:11:0;;;;14107:50;14104:160;;;14201:4;14182:16;14192:6;14182:7;:16;:::i;:::-;:23;;;;:::i;:::-;14171:34;;14217:38;14233:7;14242:6;14250:4;14217:15;:38::i;:::-;14321:4;14303:24;;;;:9;:24;;;;;;:35;;14330:8;;14303:35;:::i;:::-;14294:4;14276:24;;;;:9;:24;;;;;;;:62;;;;14354:41;;-1:-1:-1;;;;;14354:41:0;;;;;;;14386:8;1058:25:1;;1046:2;1031:18;;912:177;14354:41:0;;;;;;;;14415:17;14424:8;14415:6;:17;:::i;:::-;14408:24;13476:964;-1:-1:-1;;;;;;;;;;;13476:964:0:o;15337:432::-;15429:16;;;15443:1;15429:16;;;;;;;;15405:21;;15429:16;;;;;;;;;;-1:-1:-1;15429:16:0;15405:40;;15474:4;15456;15461:1;15456:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15456:23:0;;;:7;;;;;;;;;;:23;;;;15500:6;;:13;;;-1:-1:-1;;;15500:13:0;;;;:6;;;;;:11;;:13;;;;;15456:7;;15500:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15490:4;15495:1;15490:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15490:23:0;;;-1:-1:-1;;;;;15490:23:0;;;;;15526:35;15542:4;15549:11;15526:7;:35::i;:::-;-1:-1:-1;15574:6:0;;:187;;-1:-1:-1;;;15574:187:0;;-1:-1:-1;;;;;15574:6:0;;;;:57;;:187;;15646:11;;15574:6;;15688:4;;15715;;15735:15;;15574:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15392:377;15337:432;:::o;15777:284::-;15858:6;;15999:13;;15858:195;;-1:-1:-1;;;15858:195:0;;15921:4;15858:195;;;14931:34:1;14981:18;;;14974:34;;;15858:6:0;15024:18:1;;;15017:34;;;15067:18;;;15060:34;-1:-1:-1;;;;;15999:13:0;;;15110:19:1;;;15103:44;16027:15:0;15163:19:1;;;15156:35;15858:6:0;;;:22;;15888:9;;14865:19:1;;15858:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11162:172::-;11257:3;11236:14;11251:1;11236:17;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;11292:2:0;;-1:-1:-1;11271:14:0;11286:1;11271:17;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;11323:3:0;;-1:-1:-1;11302:14:0;11317:1;11302:17;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;11162:172:0:o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:118::-;488:5;481:13;474:21;467:5;464:32;454:60;;510:1;507;500:12;525:382;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:30;804:32;845:30;:::i;:::-;894:7;884:17;;;525:382;;;;;:::o;1094:597::-;1206:4;1235:2;1264;1253:9;1246:21;1296:6;1290:13;1339:6;1334:2;1323:9;1319:18;1312:34;1364:1;1374:140;1388:6;1385:1;1382:13;1374:140;;;1483:14;;;1479:23;;1473:30;1449:17;;;1468:2;1445:26;1438:66;1403:10;;1374:140;;;1532:6;1529:1;1526:13;1523:91;;;1602:1;1597:2;1588:6;1577:9;1573:22;1569:31;1562:42;1523:91;-1:-1:-1;1675:2:1;1654:15;-1:-1:-1;;1650:29:1;1635:45;;;;1682:2;1631:54;;1094:597;-1:-1:-1;;;1094:597:1:o;1696:315::-;1764:6;1772;1825:2;1813:9;1804:7;1800:23;1796:32;1793:52;;;1841:1;1838;1831:12;1793:52;1880:9;1867:23;1899:31;1924:5;1899:31;:::i;:::-;1949:5;2001:2;1986:18;;;;1973:32;;-1:-1:-1;;;1696:315:1:o;2208:180::-;2267:6;2320:2;2308:9;2299:7;2295:23;2291:32;2288:52;;;2336:1;2333;2326:12;2288:52;-1:-1:-1;2359:23:1;;2208:180;-1:-1:-1;2208:180:1:o;2653:456::-;2730:6;2738;2746;2799:2;2787:9;2778:7;2774:23;2770:32;2767:52;;;2815:1;2812;2805:12;2767:52;2854:9;2841:23;2873:31;2898:5;2873:31;:::i;:::-;2923:5;-1:-1:-1;2980:2:1;2965:18;;2952:32;2993:33;2952:32;2993:33;:::i;:::-;2653:456;;3045:7;;-1:-1:-1;;;3099:2:1;3084:18;;;;3071:32;;2653:456::o;3303:367::-;3366:8;3376:6;3430:3;3423:4;3415:6;3411:17;3407:27;3397:55;;3448:1;3445;3438:12;3397:55;-1:-1:-1;3471:20:1;;3514:18;3503:30;;3500:50;;;3546:1;3543;3536:12;3500:50;3583:4;3575:6;3571:17;3559:29;;3643:3;3636:4;3626:6;3623:1;3619:14;3611:6;3607:27;3603:38;3600:47;3597:67;;;3660:1;3657;3650:12;3597:67;3303:367;;;;;:::o;3675:773::-;3797:6;3805;3813;3821;3874:2;3862:9;3853:7;3849:23;3845:32;3842:52;;;3890:1;3887;3880:12;3842:52;3930:9;3917:23;3959:18;4000:2;3992:6;3989:14;3986:34;;;4016:1;4013;4006:12;3986:34;4055:70;4117:7;4108:6;4097:9;4093:22;4055:70;:::i;:::-;4144:8;;-1:-1:-1;4029:96:1;-1:-1:-1;4232:2:1;4217:18;;4204:32;;-1:-1:-1;4248:16:1;;;4245:36;;;4277:1;4274;4267:12;4245:36;;4316:72;4380:7;4369:8;4358:9;4354:24;4316:72;:::i;:::-;3675:773;;;;-1:-1:-1;4407:8:1;-1:-1:-1;;;;3675:773:1:o;4453:309::-;4518:6;4526;4579:2;4567:9;4558:7;4554:23;4550:32;4547:52;;;4595:1;4592;4585:12;4547:52;4634:9;4621:23;4653:28;4675:5;4653:28;:::i;4975:316::-;5052:6;5060;5068;5121:2;5109:9;5100:7;5096:23;5092:32;5089:52;;;5137:1;5134;5127:12;5089:52;-1:-1:-1;;5160:23:1;;;5230:2;5215:18;;5202:32;;-1:-1:-1;5281:2:1;5266:18;;;5253:32;;4975:316;-1:-1:-1;4975:316:1:o;5296:505::-;5391:6;5399;5407;5460:2;5448:9;5439:7;5435:23;5431:32;5428:52;;;5476:1;5473;5466:12;5428:52;5516:9;5503:23;5549:18;5541:6;5538:30;5535:50;;;5581:1;5578;5571:12;5535:50;5620:70;5682:7;5673:6;5662:9;5658:22;5620:70;:::i;:::-;5709:8;;5594:96;;-1:-1:-1;5791:2:1;5776:18;;;;5763:32;;5296:505;-1:-1:-1;;;;5296:505:1:o;5806:241::-;5862:6;5915:2;5903:9;5894:7;5890:23;5886:32;5883:52;;;5931:1;5928;5921:12;5883:52;5970:9;5957:23;5989:28;6011:5;5989:28;:::i;6052:388::-;6120:6;6128;6181:2;6169:9;6160:7;6156:23;6152:32;6149:52;;;6197:1;6194;6187:12;6149:52;6236:9;6223:23;6255:31;6280:5;6255:31;:::i;:::-;6305:5;-1:-1:-1;6362:2:1;6347:18;;6334:32;6375:33;6334:32;6375:33;:::i;6671:127::-;6732:10;6727:3;6723:20;6720:1;6713:31;6763:4;6760:1;6753:15;6787:4;6784:1;6777:15;6803:217;6843:1;6869;6859:132;;6913:10;6908:3;6904:20;6901:1;6894:31;6948:4;6945:1;6938:15;6976:4;6973:1;6966:15;6859:132;-1:-1:-1;7005:9:1;;6803:217::o;7723:125::-;7763:4;7791:1;7788;7785:8;7782:34;;;7796:18;;:::i;:::-;-1:-1:-1;7833:9:1;;7723:125::o;7853:184::-;7923:6;7976:2;7964:9;7955:7;7951:23;7947:32;7944:52;;;7992:1;7989;7982:12;7944:52;-1:-1:-1;8015:16:1;;7853:184;-1:-1:-1;7853:184:1:o;8321:245::-;8388:6;8441:2;8429:9;8420:7;8416:23;8412:32;8409:52;;;8457:1;8454;8447:12;8409:52;8489:9;8483:16;8508:28;8530:5;8508:28;:::i;8571:127::-;8632:10;8627:3;8623:20;8620:1;8613:31;8663:4;8660:1;8653:15;8687:4;8684:1;8677:15;8703:135;8742:3;8763:17;;;8760:43;;8783:18;;:::i;:::-;-1:-1:-1;8830:1:1;8819:13;;8703:135::o;8843:128::-;8883:3;8914:1;8910:6;8907:1;8904:13;8901:39;;;8920:18;;:::i;:::-;-1:-1:-1;8956:9:1;;8843:128::o;13044:168::-;13084:7;13150:1;13146;13142:6;13138:14;13135:1;13132:21;13127:1;13120:9;13113:17;13109:45;13106:71;;;13157:18;;:::i;:::-;-1:-1:-1;13197:9:1;;13044:168::o;13349:251::-;13419:6;13472:2;13460:9;13451:7;13447:23;13443:32;13440:52;;;13488:1;13485;13478:12;13440:52;13520:9;13514:16;13539:31;13564:5;13539:31;:::i;13605:980::-;13867:4;13915:3;13904:9;13900:19;13946:6;13935:9;13928:25;13972:2;14010:6;14005:2;13994:9;13990:18;13983:34;14053:3;14048:2;14037:9;14033:18;14026:31;14077:6;14112;14106:13;14143:6;14135;14128:22;14181:3;14170:9;14166:19;14159:26;;14220:2;14212:6;14208:15;14194:29;;14241:1;14251:195;14265:6;14262:1;14259:13;14251:195;;;14330:13;;-1:-1:-1;;;;;14326:39:1;14314:52;;14421:15;;;;14386:12;;;;14362:1;14280:9;14251:195;;;-1:-1:-1;;;;;;;14502:32:1;;;;14497:2;14482:18;;14475:60;-1:-1:-1;;;14566:3:1;14551:19;14544:35;14463:3;13605:980;-1:-1:-1;;;13605:980:1:o;15202:306::-;15290:6;15298;15306;15359:2;15347:9;15338:7;15334:23;15330:32;15327:52;;;15375:1;15372;15365:12;15327:52;15404:9;15398:16;15388:26;;15454:2;15443:9;15439:18;15433:25;15423:35;;15498:2;15487:9;15483:18;15477:25;15467:35;;15202:306;;;;;:::o

Swarm Source

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