ETH Price: $3,458.77 (+1.77%)

Token

Firelord (Kaho)
 

Overview

Max Total Supply

992,502.393256009 Kaho

Holders

86

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
williamwallet.eth
Balance
1,820.978320807 Kaho

Value
$0.00
0xe12d731750e222ec53b001e00d978901b134cfc9
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:
FirelordSmartContract

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: NOLICENSE

/**
Name: Firelord
Ticker: Kaho
Supply: 1,000,000

Telegram: https://t.me/FireLordKAHO 
Twitter: https://twitter.com/firelorderc20
Website: https://firelordkaho.com/

Token allocation: 100% for UNISWAP LIQUIDITY 

Tax: 7/7 buy and sell. Tax is hard coded. 
UPON LAUNCH, NO CODE AND NO FUNCTION TO CHANGE, ALTER OR UPDATE TAXES IN ANY WAY.

Tokenomics: 
1% AUTO BURN. 
1% AUTO BUYBACK&BURN. 
1% AUTO LIQUIDITY. 
2% MANUAL BUY BACK AND BURN.
2% DEV. 

BURNING FEATURES:
1. AUTO BURN. Auto burn mechanism is activated upon project launch.     
    In each and every buy and sell transactions, native tokens are deleted automatically 
    in existence and in token supply. 

2. AUTO BUY BACK AND BURN. This will be activated once a milestone is hit by the community.
    In every sell transaction, Firelord automatically buys native token in Uniswap and burns it via dead wallet. 
    The burned tokens are forever removed in the token supply. 

3. MANUAL BUY BACK AND BURN. This will be done manually via marketing funds. This will also be done per project milestone.
    CA marketing wallet will buy native token in Uniswap. Then through the metamask wallet it will burn the token in the dead address.
    The burned tokens are removed directly from token supply.    
    
     **Please refer to our official Telegram account for the Project Milestone*** 
     
AUTO LIQUIDITY FEATURES:
Auto liquidity pool generation. This part of tokenomics taxes buyers and sellers 1% each transaction. 
50% of this transaction is used to buy kaho and the remaining half is used to buy weth. 
This kaho and weth will be paired together and then directly added to the liquidity pool of the Firelord Project. 
This will create more volume in LP and attract more whale apes. 


***DISCLAIMER: 
Smart Contract is encoded by cryptosurge.io for the FirelordProject. 
Cryptosurge.io is not affiliated with the Firelord Project. 
For contract development and other crypto services: goto https://t.me/CryptoSurgeIO or visit https://t.me/cryptosurgeofficialchannel****
*/

pragma solidity ^0.8.4;

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    
    function 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);
}

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

    mapping (address => uint256) private _tOwned;    
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWalletSize;

    string private constant _name = "Firelord";
    string private constant _symbol = "Kaho";
    uint8 private constant _decimals = 9;

    uint256 public buyAutoBurnFee = 100;
    uint256 public buyAutoBuyBackandBurnFee = 100;
    uint256 public buyAutoLiquidityFee = 100;
    uint256 public buyMarketingFee = 200;
    uint256 public buyDevFee = 200;
    uint256 public totalBuyFees;

    uint256 public sellAutoBurnFee = 100;
    uint256 public sellAutoBuyBackandBurnFee = 100;
    uint256 public sellAutoLiquidityFee = 100;
    uint256 public sellMarketingFee = 200;
    uint256 public sellDevFee = 200;
    uint256 public totalSellFees;

    uint256 public tokensForAutoBurn;  
    uint256 public tokensForAutoBuyBackandBurn;
    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForMarketing;
    uint256 public tokensForDev;
    uint16 public masterTaxDivisor = 10000;
    
    uint256 public autoBurnFeeRatio = (buyAutoBurnFee + sellAutoBurnFee) / 2;
    uint256 public autoAutoBuyBackandBurnRatio = (buyAutoBuyBackandBurnFee + sellAutoBuyBackandBurnFee) / 2;
    uint256 public autoLiquidityRatio = (buyAutoLiquidityFee + sellAutoLiquidityFee) / 2;
    uint256 public MarketingRatio = (buyMarketingFee + sellMarketingFee) / 2;
    uint256 public devFeeRatio = (buyDevFee + sellDevFee) / 2;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private burnMode = false;
    uint256 private _tTotal = 1000000 * 10**9; // 1M
    uint256 private maxWalletAmount = 10001 * 10**9; //1%
    uint256 private maxTxAmount = 10001 * 10**9; // 1%%
    address payable private feeAddrWallet;
    address payable private marketingAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0xF71a14Ff26f3A9387a2D81a3A104fd50aFc4D6BA); 
        marketingAddrWallet = payable(0xdcaf8eb8086A674AF898BE94AA1D53eCCd18549E);
        _tOwned[owner()] = _tTotal;  
        
        uint256 _buyAutoBurnFee = 100;
        uint256 _buyAutoBuyBackandBurnFee = 100;
        uint256 _buyAutoLiquidityFee = 100;
        uint256 _buyMarketingFee = 200;
        uint256 _buyDevFee = 200;
        uint256 _sellAutoBurnFee = 100;
        uint256 _sellAutoBuyBackandBurnFee = 100;
        uint256 _sellAutoLiquidityFee = 100;
        uint256 _sellMarketingFee = 200;
        uint256 _sellDevFee = 200;
        
        buyAutoBurnFee = _buyAutoBurnFee;
        buyAutoBuyBackandBurnFee = _buyAutoBuyBackandBurnFee;
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyMarketingFee = _buyMarketingFee;
        buyDevFee = _buyDevFee;
        totalBuyFees =  buyAutoBurnFee + buyAutoBuyBackandBurnFee + buyAutoLiquidityFee + buyMarketingFee + buyDevFee;
        
        sellAutoBurnFee = _sellAutoBurnFee;
        sellAutoBuyBackandBurnFee = _sellAutoBuyBackandBurnFee;
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellMarketingFee = _sellMarketingFee;
        sellDevFee = _sellDevFee;
        totalSellFees = sellAutoBurnFee + sellAutoBuyBackandBurnFee + sellAutoLiquidityFee + sellMarketingFee + sellDevFee;   

        
        autoBurnFeeRatio = (buyAutoBurnFee + sellAutoBurnFee) / 2;
        autoAutoBuyBackandBurnRatio = (buyAutoBuyBackandBurnFee + sellAutoBuyBackandBurnFee) / 2;
        autoLiquidityRatio = (buyAutoLiquidityFee + sellAutoLiquidityFee) / 2;
        MarketingRatio = (buyMarketingFee + sellMarketingFee) / 2;
        devFeeRatio = (buyDevFee + sellDevFee) / 2;   

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        _isExcludedFromFee[marketingAddrWallet] = true;
        _isExcludedFromMaxWalletSize[owner()] = true;
        _isExcludedFromMaxWalletSize[address(this)] = true;
        _isExcludedFromMaxWalletSize[feeAddrWallet] = true; 
        _isExcludedFromMaxWalletSize[marketingAddrWallet] = true; 
    
        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; }
    function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }
    function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the maxTxAmount.");
        }

      if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) {             
                require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        uint256 totalFee = autoBurnFeeRatio + autoAutoBuyBackandBurnRatio + autoLiquidityRatio + MarketingRatio + devFeeRatio;
        
        if (totalFee == 0)
            return;

        uint256 tokensToAddLiquidityWith = (tokenAmount * autoLiquidityRatio) / (totalFee);
        uint256 toSwapForEth = tokenAmount - tokensToAddLiquidityWith; 
        uint256 initialBalance = address(this).balance;

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

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            toSwapForEth, //swapamount 
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
        
        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 ethValuePerToken = deltaBalance / toSwapForEth;
        uint256 ethToAddLiquidityWith = ethValuePerToken * tokensToAddLiquidityWith;
      
        if(tokensToAddLiquidityWith > 0){
            uniswapV2Router.addLiquidityETH{value: ethToAddLiquidityWith}(
                address(this),
                ethToAddLiquidityWith,
                0,
                0,
                owner(),
                block.timestamp
            );
            emit AutoLiquify(ethToAddLiquidityWith, ethToAddLiquidityWith);
        }

        uint autobuybackandburnbalance = (deltaBalance * autoAutoBuyBackandBurnRatio) / totalFee;       
        if(burnMode && (autobuybackandburnbalance>0)){
            _buybackandburn(autobuybackandburnbalance);
        }
        
        uint marketingbalance = (deltaBalance * MarketingRatio) / totalFee;        
        if (marketingbalance>0){
            payable(marketingAddrWallet).transfer(marketingbalance);
        }

        uint devBalance = (deltaBalance * devFeeRatio) / totalFee;        
        if (devBalance>0){
            payable(feeAddrWallet).transfer(devBalance);
        }
    }

    function _buybackandburn(uint amount) private {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        
        try uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            DEAD,
            block.timestamp
        ){}
        catch{}
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        uint256 amountReceived;
        if(recipient == DEAD){
            amountReceived = amount;
            _tOwned[sender] -= amountReceived;
            _tTotal = _tTotal - amountReceived;
            _tTotal = totalSupply();
        }else{
            _tOwned[sender] -= amount;
            amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
            _tOwned[recipient] += amountReceived;
        }        

        emit Transfer(sender, recipient, amountReceived);    
    }
    
    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) {           
            tokensForAutoBurn = amount * buyAutoBurnFee / masterTaxDivisor;   
            tokensForAutoBuyBackandBurn = amount * buyAutoBuyBackandBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * buyAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor;
            tokensForDev = amount * buyDevFee / masterTaxDivisor;      
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoBurn = amount * sellAutoBurnFee / masterTaxDivisor;
            tokensForAutoBuyBackandBurn = amount * sellAutoBuyBackandBurnFee / masterTaxDivisor;
            tokensForAutoLiquidity = amount * sellAutoLiquidityFee / masterTaxDivisor;
            tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor;
            tokensForDev = amount * sellDevFee / masterTaxDivisor;   
        }
        
        _tOwned[DEAD] += tokensForAutoBurn;
        _tTotal = _tTotal - tokensForAutoBurn;
        _tTotal = totalSupply();
        emit Transfer(from, DEAD, tokensForAutoBurn);
        
        _tOwned[address(this)] += tokensForAutoBuyBackandBurn;
        emit Transfer(from, address(this), tokensForAutoBuyBackandBurn);

        _tOwned[address(this)] += tokensForAutoLiquidity;
        emit Transfer(from, address(this), tokensForAutoLiquidity);
                
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);
        
        _tOwned[address(this)] += tokensForDev;
        emit Transfer(from, address(this), tokensForDev);

        uint256 feeAmount = tokensForAutoBurn + tokensForAutoBuyBackandBurn + tokensForAutoLiquidity + tokensForMarketing + tokensForDev;
        return amount - feeAmount;
    }
    
    function setWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function turnOnTheBurn() public onlyOwner {
        burnMode = true;
    }

    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");        
        swapEnabled = true;
        maxWalletAmount = 10001 * 10**9; // 1%
        maxTxAmount = 10001 * 10**9; // 1%
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    receive() external payable{
    }

}

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":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingRatio","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":[],"name":"autoAutoBuyBackandBurnRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoBurnFeeRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBuyBackandBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFeeRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoBuyBackandBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"setWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoBuyBackandBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"turnOnTheBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260646005556064600655606460075560c860085560c86009556064600b556064600c556064600d5560c8600e5560c8600f55612710601660006101000a81548161ffff021916908361ffff1602179055506002600b5460055462000069919062000e01565b62000075919062000e5e565b6017556002600c546006546200008c919062000e01565b62000098919062000e5e565b6018556002600d54600754620000af919062000e01565b620000bb919062000e5e565b6019556002600e54600854620000d2919062000e01565b620000de919062000e5e565b601a556002600f54600954620000f5919062000e01565b62000101919062000e5e565b601b556000601e60156101000a81548160ff0219169083151502179055506000601e60166101000a81548160ff0219169083151502179055506000601e60176101000a81548160ff02191690831515021790555066038d7ea4c68000601f556509188a0d6a006020556509188a0d6a006021553480156200018157600080fd5b50620001a26200019662000c5d60201b60201c565b62000c6560201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024357600080fd5b505afa15801562000258573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027e919062000d69565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e157600080fd5b505afa158015620002f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031c919062000d69565b6040518363ffffffff1660e01b81526004016200033b92919062000db7565b602060405180830381600087803b1580156200035657600080fd5b505af11580156200036b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000391919062000d69565b601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041857600080fd5b505afa1580156200042d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000453919062000d69565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004b657600080fd5b505afa158015620004cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f1919062000d69565b6040518363ffffffff1660e01b81526004016200051092919062000db7565b60206040518083038186803b1580156200052957600080fd5b505afa1580156200053e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000564919062000d69565b601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f71a14ff26f3a9387a2d81a3a104fd50afc4d6ba602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dcaf8eb8086a674af898be94aa1d53eccd18549e602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f54600160006200066562000d2960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060649050600060649050600060649050600060c89050600060c89050600060649050600060649050600060649050600060c89050600060c8905089600581905550886006819055508760078190555086600881905550856009819055506009546008546007546006546005546200071d919062000e01565b62000729919062000e01565b62000735919062000e01565b62000741919062000e01565b600a8190555084600b8190555083600c8190555082600d8190555081600e8190555080600f81905550600f54600e54600d54600c54600b5462000785919062000e01565b62000791919062000e01565b6200079d919062000e01565b620007a9919062000e01565b6010819055506002600b54600554620007c3919062000e01565b620007cf919062000e5e565b6017819055506002600c54600654620007e9919062000e01565b620007f5919062000e5e565b6018819055506002600d546007546200080f919062000e01565b6200081b919062000e5e565b6019819055506002600e5460085462000835919062000e01565b62000841919062000e5e565b601a819055506002600f546009546200085b919062000e01565b62000867919062000e5e565b601b819055506001600360006200088362000d2960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600062000a3662000d2960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000be362000d2960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601f5460405162000c44919062000de4565b60405180910390a3505050505050505050505062000f4c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000d638162000f32565b92915050565b60006020828403121562000d7c57600080fd5b600062000d8c8482850162000d52565b91505092915050565b62000da08162000e96565b82525050565b62000db18162000eca565b82525050565b600060408201905062000dce600083018562000d95565b62000ddd602083018462000d95565b9392505050565b600060208201905062000dfb600083018462000da6565b92915050565b600062000e0e8262000eca565b915062000e1b8362000eca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e535762000e5262000ed4565b5b828201905092915050565b600062000e6b8262000eca565b915062000e788362000eca565b92508262000e8b5762000e8a62000f03565b5b828204905092915050565b600062000ea38262000eaa565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b62000f3d8162000e96565b811462000f4957600080fd5b50565b613d588062000f5c6000396000f3fe60806040526004361061023f5760003560e01c80637bce5a041161012e578063b9e93700116100ab578063d0a398141161006f578063d0a3981414610836578063dd2afc4114610861578063dd62ed3e1461088c578063f239eab8146108c9578063f2fde38b146108f457610246565b8063b9e9370014610775578063c24ad66c146107a0578063c9567bf9146107c9578063c99f2fed146107e0578063cc70acee1461080b57610246565b80639c3b4fdc116100f25780639c3b4fdc1461068c5780639fccce32146106b7578063a0d82dc5146106e2578063a8b089821461070d578063a9059cbb1461073857610246565b80637bce5a04146105b55780638da5cb5b146105e0578063921369131461060b57806395d89b41146106365780639740a9461461066157610246565b806340b58552116101bc5780636c288791116101805780636c288791146104e05780636cce46fc1461050b57806370a0823114610536578063711806f214610573578063715018a61461059e57610246565b806340b585521461041d57806347afcbfe146104485780635217488014610473578063527f87121461049e5780635dbc2fe1146104c957610246565b80631d6167ac116102035780631d6167ac146103345780631e26e8b81461035f5780631f3fed8f1461038a57806323b872dd146103b5578063313ce567146103f257610246565b806303fd2a451461024b57806306fdde0314610276578063095ea7b3146102a15780630b298e11146102de57806318160ddd1461030957610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061091d565b60405161026d91906131d1565b60405180910390f35b34801561028257600080fd5b5061028b610923565b60405161029891906132dd565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c39190612e02565b610960565b6040516102d59190613276565b60405180910390f35b3480156102ea57600080fd5b506102f361097e565b60405161030091906134ba565b60405180910390f35b34801561031557600080fd5b5061031e610984565b60405161032b91906134ba565b60405180910390f35b34801561034057600080fd5b5061034961098e565b604051610356919061349f565b60405180910390f35b34801561036b57600080fd5b506103746109a2565b60405161038191906134ba565b60405180910390f35b34801561039657600080fd5b5061039f6109a8565b6040516103ac91906134ba565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612db3565b6109ae565b6040516103e99190613276565b60405180910390f35b3480156103fe57600080fd5b50610407610aaf565b6040516104149190613558565b60405180910390f35b34801561042957600080fd5b50610432610ab8565b60405161043f91906134ba565b60405180910390f35b34801561045457600080fd5b5061045d610abe565b60405161046a91906134ba565b60405180910390f35b34801561047f57600080fd5b50610488610ac4565b60405161049591906134ba565b60405180910390f35b3480156104aa57600080fd5b506104b3610aca565b6040516104c091906134ba565b60405180910390f35b3480156104d557600080fd5b506104de610ad0565b005b3480156104ec57600080fd5b506104f5610b69565b60405161050291906134ba565b60405180910390f35b34801561051757600080fd5b50610520610b6f565b60405161052d91906134ba565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190612d25565b610b75565b60405161056a91906134ba565b60405180910390f35b34801561057f57600080fd5b50610588610bbe565b60405161059591906134ba565b60405180910390f35b3480156105aa57600080fd5b506105b3610bc4565b005b3480156105c157600080fd5b506105ca610c4c565b6040516105d791906134ba565b60405180910390f35b3480156105ec57600080fd5b506105f5610c52565b60405161060291906131d1565b60405180910390f35b34801561061757600080fd5b50610620610c7b565b60405161062d91906134ba565b60405180910390f35b34801561064257600080fd5b5061064b610c81565b60405161065891906132dd565b60405180910390f35b34801561066d57600080fd5b50610676610cbe565b60405161068391906134ba565b60405180910390f35b34801561069857600080fd5b506106a1610cc4565b6040516106ae91906134ba565b60405180910390f35b3480156106c357600080fd5b506106cc610cca565b6040516106d991906134ba565b60405180910390f35b3480156106ee57600080fd5b506106f7610cd0565b60405161070491906134ba565b60405180910390f35b34801561071957600080fd5b50610722610cd6565b60405161072f91906131d1565b60405180910390f35b34801561074457600080fd5b5061075f600480360381019061075a9190612e02565b610cfc565b60405161076c9190613276565b60405180910390f35b34801561078157600080fd5b5061078a610d1a565b60405161079791906134ba565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c29190612e67565b610d20565b005b3480156107d557600080fd5b506107de610dde565b005b3480156107ec57600080fd5b506107f5610fee565b60405161080291906134ba565b60405180910390f35b34801561081757600080fd5b50610820610ff4565b60405161082d91906134ba565b60405180910390f35b34801561084257600080fd5b5061084b610ffa565b60405161085891906134ba565b60405180910390f35b34801561086d57600080fd5b50610876611000565b60405161088391906134ba565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae9190612d77565b611006565b6040516108c091906134ba565b60405180910390f35b3480156108d557600080fd5b506108de61108d565b6040516108eb91906134ba565b60405180910390f35b34801561090057600080fd5b5061091b60048036038101906109169190612d25565b611093565b005b61dead81565b60606040518060400160405280600881526020017f466972656c6f7264000000000000000000000000000000000000000000000000815250905090565b600061097461096d61118b565b8484611193565b6001905092915050565b60175481565b6000601f54905090565b601660009054906101000a900461ffff1681565b60125481565b60145481565b60006109bb84848461135e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0661118b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7d9061339f565b60405180910390fd5b610aa385610a9261118b565b8584610a9e919061381a565b611193565b60019150509392505050565b60006009905090565b60185481565b600b5481565b600c5481565b60195481565b610ad861118b565b73ffffffffffffffffffffffffffffffffffffffff16610af6610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b43906133bf565b60405180910390fd5b6001601e60176101000a81548160ff021916908315150217905550565b601b5481565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b610bcc61118b565b73ffffffffffffffffffffffffffffffffffffffff16610bea610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906133bf565b60405180910390fd5b610c4a60006119e5565b565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600481526020017f4b61686f00000000000000000000000000000000000000000000000000000000815250905090565b60135481565b60095481565b60155481565b600f5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d10610d0961118b565b848461135e565b6001905092915050565b600a5481565b610d2861118b565b73ffffffffffffffffffffffffffffffffffffffff16610d46610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d93906133bf565b60405180910390fd5b6009600a610daa91906136a2565b82610db591906137c0565b6021819055506009600a610dc991906136a2565b81610dd491906137c0565b6020819055505050565b610de661118b565b73ffffffffffffffffffffffffffffffffffffffff16610e04610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e51906133bf565b60405180910390fd5b601e60149054906101000a900460ff1615610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea19061343f565b60405180910390fd5b6001601e60166101000a81548160ff0219169083151502179055506509188a0d6a006020819055506509188a0d6a006021819055506001601e60146101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f999291906131ec565b602060405180830381600087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190612e3e565b50565b60055481565b60115481565b60105481565b60065481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b61109b61118b565b73ffffffffffffffffffffffffffffffffffffffff166110b9610c52565b73ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611106906133bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061333f565b60405180910390fd5b611188816119e5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa9061341f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a9061335f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135191906134ba565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906133ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906132ff565b60405180910390fd5b60008111611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906133df565b60405180910390fd5b61148a83610b75565b8111156114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061331f565b60405180910390fd5b601e60149054906101000a900460ff16806115305750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115845750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba9061345f565b60405180910390fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561166e5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116c45750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561170f5760215481111561170e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117059061347f565b60405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117ba5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118105750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186e5760205461182183610b75565b8261182c91906135c8565b111561186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118649061337f565b60405180910390fd5b5b600061187930610b75565b9050601e60159054906101000a900460ff161580156118e65750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118fe5750601e60169054906101000a900460ff165b801561190a5750600081115b156119325761191881611aa9565b600047905060008111156119305761192f476120c8565b5b505b6119df848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119d95750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612134565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601e60156101000a81548160ff0219169083151502179055506000601b54601a54601954601854601754611adf91906135c8565b611ae991906135c8565b611af391906135c8565b611afd91906135c8565b90506000811415611b0e57506120aa565b60008160195484611b1f91906137c0565b611b29919061361e565b905060008184611b39919061381a565b905060004790506000600267ffffffffffffffff811115611b83577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611bb15781602001602082028036833780820191505090505b5090503081600081518110611bef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9157600080fd5b505afa158015611ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc99190612d4e565b81600181518110611d03577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d6a30601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688611193565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611dce9594939291906134d5565b600060405180830381600087803b158015611de857600080fd5b505af1158015611dfc573d6000803e3d6000fd5b5050505060008247611e0e919061381a565b905060008482611e1e919061361e565b905060008682611e2e91906137c0565b90506000871115611f3657601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823084600080611e85610c52565b426040518863ffffffff1660e01b8152600401611ea796959493929190613215565b6060604051808303818588803b158015611ec057600080fd5b505af1158015611ed4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ef99190612ea3565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068182604051611f2d92919061352f565b60405180910390a15b60008860185485611f4791906137c0565b611f51919061361e565b9050601e60179054906101000a900460ff168015611f6f5750600081115b15611f7e57611f7d8161231e565b5b600089601a5486611f8f91906137c0565b611f99919061361e565b9050600081111561200e57602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561200c573d6000803e3d6000fd5b505b60008a601b548761201f91906137c0565b612029919061361e565b9050600081111561209e57602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561209c573d6000803e3d6000fd5b505b50505050505050505050505b6000601e60156101000a81548160ff02191690831515021790555050565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612130573d6000803e3d6000fd5b5050565b600061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156121ec5782905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121be919061381a565b9250508190555080601f546121d3919061381a565b601f819055506121e1610984565b601f819055506122b2565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461223b919061381a565b925050819055508161224d5782612259565b6122588585856125b9565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122aa91906135c8565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161230f91906134ba565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612361577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561238f5781602001602082028036833780820191505090505b509050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123fa57600080fd5b505afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190612d4e565b8160008151811061246c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106124e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead426040518663ffffffff1660e01b81526004016125809493929190613291565b6000604051808303818588803b15801561259957600080fd5b505af1935050505080156125ab575060015b6125b4576125b5565b5b5050565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561261a57506000600a54115b1561272357601660009054906101000a900461ffff1661ffff166005548361264291906137c0565b61264c919061361e565b601181905550601660009054906101000a900461ffff1661ffff166006548361267591906137c0565b61267f919061361e565b601281905550601660009054906101000a900461ffff1661ffff16600754836126a891906137c0565b6126b2919061361e565b601381905550601660009054906101000a900461ffff1661ffff16600854836126db91906137c0565b6126e5919061361e565b601481905550601660009054906101000a900461ffff1661ffff166009548361270e91906137c0565b612718919061361e565b601581905550612888565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561278257506000601054115b1561288757601660009054906101000a900461ffff1661ffff16600b54836127aa91906137c0565b6127b4919061361e565b601181905550601660009054906101000a900461ffff1661ffff16600c54836127dd91906137c0565b6127e7919061361e565b601281905550601660009054906101000a900461ffff1661ffff16600d548361281091906137c0565b61281a919061361e565b601381905550601660009054906101000a900461ffff1661ffff16600e548361284391906137c0565b61284d919061361e565b601481905550601660009054906101000a900461ffff1661ffff16600f548361287691906137c0565b612880919061361e565b6015819055505b5b6011546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128db91906135c8565b92505081905550601154601f546128f2919061381a565b601f81905550612900610984565b601f8190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60115460405161296791906134ba565b60405180910390a3601254600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129c091906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601254604051612a2691906134ba565b60405180910390a3601354600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a7f91906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051612ae591906134ba565b60405180910390a3601454600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b3e91906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601454604051612ba491906134ba565b60405180910390a3601554600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bfd91906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601554604051612c6391906134ba565b60405180910390a36000601554601454601354601254601154612c8691906135c8565b612c9091906135c8565b612c9a91906135c8565b612ca491906135c8565b90508083612cb2919061381a565b9150509392505050565b600081359050612ccb81613cdd565b92915050565b600081519050612ce081613cdd565b92915050565b600081519050612cf581613cf4565b92915050565b600081359050612d0a81613d0b565b92915050565b600081519050612d1f81613d0b565b92915050565b600060208284031215612d3757600080fd5b6000612d4584828501612cbc565b91505092915050565b600060208284031215612d6057600080fd5b6000612d6e84828501612cd1565b91505092915050565b60008060408385031215612d8a57600080fd5b6000612d9885828601612cbc565b9250506020612da985828601612cbc565b9150509250929050565b600080600060608486031215612dc857600080fd5b6000612dd686828701612cbc565b9350506020612de786828701612cbc565b9250506040612df886828701612cfb565b9150509250925092565b60008060408385031215612e1557600080fd5b6000612e2385828601612cbc565b9250506020612e3485828601612cfb565b9150509250929050565b600060208284031215612e5057600080fd5b6000612e5e84828501612ce6565b91505092915050565b60008060408385031215612e7a57600080fd5b6000612e8885828601612cfb565b9250506020612e9985828601612cfb565b9150509250929050565b600080600060608486031215612eb857600080fd5b6000612ec686828701612d10565b9350506020612ed786828701612d10565b9250506040612ee886828701612d10565b9150509250925092565b6000612efe8383612f0a565b60208301905092915050565b612f138161384e565b82525050565b612f228161384e565b82525050565b6000612f3382613583565b612f3d81856135a6565b9350612f4883613573565b8060005b83811015612f79578151612f608882612ef2565b9750612f6b83613599565b925050600181019050612f4c565b5085935050505092915050565b612f8f81613860565b82525050565b612f9e816138b1565b82525050565b6000612faf8261358e565b612fb981856135b7565b9350612fc98185602086016138c3565b612fd281613954565b840191505092915050565b6000612fea6023836135b7565b9150612ff582613972565b604082019050919050565b600061300d6031836135b7565b9150613018826139c1565b604082019050919050565b60006130306026836135b7565b915061303b82613a10565b604082019050919050565b60006130536022836135b7565b915061305e82613a5f565b604082019050919050565b60006130766022836135b7565b915061308182613aae565b604082019050919050565b60006130996028836135b7565b91506130a482613afd565b604082019050919050565b60006130bc6020836135b7565b91506130c782613b4c565b602082019050919050565b60006130df6029836135b7565b91506130ea82613b75565b604082019050919050565b60006131026025836135b7565b915061310d82613bc4565b604082019050919050565b60006131256024836135b7565b915061313082613c13565b604082019050919050565b60006131486017836135b7565b915061315382613c62565b602082019050919050565b600061316b6017836135b7565b915061317682613c8b565b602082019050919050565b600061318e6018836135b7565b915061319982613cb4565b602082019050919050565b6131ad8161386c565b82525050565b6131bc8161389a565b82525050565b6131cb816138a4565b82525050565b60006020820190506131e66000830184612f19565b92915050565b60006040820190506132016000830185612f19565b61320e60208301846131b3565b9392505050565b600060c08201905061322a6000830189612f19565b61323760208301886131b3565b6132446040830187612f95565b6132516060830186612f95565b61325e6080830185612f19565b61326b60a08301846131b3565b979650505050505050565b600060208201905061328b6000830184612f86565b92915050565b60006080820190506132a66000830187612f95565b81810360208301526132b88186612f28565b90506132c76040830185612f19565b6132d460608301846131b3565b95945050505050565b600060208201905081810360008301526132f78184612fa4565b905092915050565b6000602082019050818103600083015261331881612fdd565b9050919050565b6000602082019050818103600083015261333881613000565b9050919050565b6000602082019050818103600083015261335881613023565b9050919050565b6000602082019050818103600083015261337881613046565b9050919050565b6000602082019050818103600083015261339881613069565b9050919050565b600060208201905081810360008301526133b88161308c565b9050919050565b600060208201905081810360008301526133d8816130af565b9050919050565b600060208201905081810360008301526133f8816130d2565b9050919050565b60006020820190508181036000830152613418816130f5565b9050919050565b6000602082019050818103600083015261343881613118565b9050919050565b600060208201905081810360008301526134588161313b565b9050919050565b600060208201905081810360008301526134788161315e565b9050919050565b6000602082019050818103600083015261349881613181565b9050919050565b60006020820190506134b460008301846131a4565b92915050565b60006020820190506134cf60008301846131b3565b92915050565b600060a0820190506134ea60008301886131b3565b6134f76020830187612f95565b81810360408301526135098186612f28565b90506135186060830185612f19565b61352560808301846131b3565b9695505050505050565b600060408201905061354460008301856131b3565b61355160208301846131b3565b9392505050565b600060208201905061356d60008301846131c2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135d38261389a565b91506135de8361389a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613613576136126138f6565b5b828201905092915050565b60006136298261389a565b91506136348361389a565b92508261364457613643613925565b5b828204905092915050565b6000808291508390505b600185111561369957808604811115613675576136746138f6565b5b60018516156136845780820291505b808102905061369285613965565b9450613659565b94509492505050565b60006136ad8261389a565b91506136b8836138a4565b92506136e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846136ed565b905092915050565b6000826136fd57600190506137b9565b8161370b57600090506137b9565b8160018114613721576002811461372b5761375a565b60019150506137b9565b60ff84111561373d5761373c6138f6565b5b8360020a915084821115613754576137536138f6565b5b506137b9565b5060208310610133831016604e8410600b841016171561378f5782820a90508381111561378a576137896138f6565b5b6137b9565b61379c848484600161364f565b925090508184048111156137b3576137b26138f6565b5b81810290505b9392505050565b60006137cb8261389a565b91506137d68361389a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561380f5761380e6138f6565b5b828202905092915050565b60006138258261389a565b91506138308361389a565b925082821015613843576138426138f6565b5b828203905092915050565b60006138598261387a565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006138bc8261389a565b9050919050565b60005b838110156138e15780820151818401526020810190506138c6565b838111156138f0576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b613ce68161384e565b8114613cf157600080fd5b50565b613cfd81613860565b8114613d0857600080fd5b50565b613d148161389a565b8114613d1f57600080fd5b5056fea2646970667358221220a1b73e00306b6deffe40ca90988f4dfb8906887081e46e93317fc08db7ff8f0164736f6c63430008040033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80637bce5a041161012e578063b9e93700116100ab578063d0a398141161006f578063d0a3981414610836578063dd2afc4114610861578063dd62ed3e1461088c578063f239eab8146108c9578063f2fde38b146108f457610246565b8063b9e9370014610775578063c24ad66c146107a0578063c9567bf9146107c9578063c99f2fed146107e0578063cc70acee1461080b57610246565b80639c3b4fdc116100f25780639c3b4fdc1461068c5780639fccce32146106b7578063a0d82dc5146106e2578063a8b089821461070d578063a9059cbb1461073857610246565b80637bce5a04146105b55780638da5cb5b146105e0578063921369131461060b57806395d89b41146106365780639740a9461461066157610246565b806340b58552116101bc5780636c288791116101805780636c288791146104e05780636cce46fc1461050b57806370a0823114610536578063711806f214610573578063715018a61461059e57610246565b806340b585521461041d57806347afcbfe146104485780635217488014610473578063527f87121461049e5780635dbc2fe1146104c957610246565b80631d6167ac116102035780631d6167ac146103345780631e26e8b81461035f5780631f3fed8f1461038a57806323b872dd146103b5578063313ce567146103f257610246565b806303fd2a451461024b57806306fdde0314610276578063095ea7b3146102a15780630b298e11146102de57806318160ddd1461030957610246565b3661024657005b600080fd5b34801561025757600080fd5b5061026061091d565b60405161026d91906131d1565b60405180910390f35b34801561028257600080fd5b5061028b610923565b60405161029891906132dd565b60405180910390f35b3480156102ad57600080fd5b506102c860048036038101906102c39190612e02565b610960565b6040516102d59190613276565b60405180910390f35b3480156102ea57600080fd5b506102f361097e565b60405161030091906134ba565b60405180910390f35b34801561031557600080fd5b5061031e610984565b60405161032b91906134ba565b60405180910390f35b34801561034057600080fd5b5061034961098e565b604051610356919061349f565b60405180910390f35b34801561036b57600080fd5b506103746109a2565b60405161038191906134ba565b60405180910390f35b34801561039657600080fd5b5061039f6109a8565b6040516103ac91906134ba565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d79190612db3565b6109ae565b6040516103e99190613276565b60405180910390f35b3480156103fe57600080fd5b50610407610aaf565b6040516104149190613558565b60405180910390f35b34801561042957600080fd5b50610432610ab8565b60405161043f91906134ba565b60405180910390f35b34801561045457600080fd5b5061045d610abe565b60405161046a91906134ba565b60405180910390f35b34801561047f57600080fd5b50610488610ac4565b60405161049591906134ba565b60405180910390f35b3480156104aa57600080fd5b506104b3610aca565b6040516104c091906134ba565b60405180910390f35b3480156104d557600080fd5b506104de610ad0565b005b3480156104ec57600080fd5b506104f5610b69565b60405161050291906134ba565b60405180910390f35b34801561051757600080fd5b50610520610b6f565b60405161052d91906134ba565b60405180910390f35b34801561054257600080fd5b5061055d60048036038101906105589190612d25565b610b75565b60405161056a91906134ba565b60405180910390f35b34801561057f57600080fd5b50610588610bbe565b60405161059591906134ba565b60405180910390f35b3480156105aa57600080fd5b506105b3610bc4565b005b3480156105c157600080fd5b506105ca610c4c565b6040516105d791906134ba565b60405180910390f35b3480156105ec57600080fd5b506105f5610c52565b60405161060291906131d1565b60405180910390f35b34801561061757600080fd5b50610620610c7b565b60405161062d91906134ba565b60405180910390f35b34801561064257600080fd5b5061064b610c81565b60405161065891906132dd565b60405180910390f35b34801561066d57600080fd5b50610676610cbe565b60405161068391906134ba565b60405180910390f35b34801561069857600080fd5b506106a1610cc4565b6040516106ae91906134ba565b60405180910390f35b3480156106c357600080fd5b506106cc610cca565b6040516106d991906134ba565b60405180910390f35b3480156106ee57600080fd5b506106f7610cd0565b60405161070491906134ba565b60405180910390f35b34801561071957600080fd5b50610722610cd6565b60405161072f91906131d1565b60405180910390f35b34801561074457600080fd5b5061075f600480360381019061075a9190612e02565b610cfc565b60405161076c9190613276565b60405180910390f35b34801561078157600080fd5b5061078a610d1a565b60405161079791906134ba565b60405180910390f35b3480156107ac57600080fd5b506107c760048036038101906107c29190612e67565b610d20565b005b3480156107d557600080fd5b506107de610dde565b005b3480156107ec57600080fd5b506107f5610fee565b60405161080291906134ba565b60405180910390f35b34801561081757600080fd5b50610820610ff4565b60405161082d91906134ba565b60405180910390f35b34801561084257600080fd5b5061084b610ffa565b60405161085891906134ba565b60405180910390f35b34801561086d57600080fd5b50610876611000565b60405161088391906134ba565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae9190612d77565b611006565b6040516108c091906134ba565b60405180910390f35b3480156108d557600080fd5b506108de61108d565b6040516108eb91906134ba565b60405180910390f35b34801561090057600080fd5b5061091b60048036038101906109169190612d25565b611093565b005b61dead81565b60606040518060400160405280600881526020017f466972656c6f7264000000000000000000000000000000000000000000000000815250905090565b600061097461096d61118b565b8484611193565b6001905092915050565b60175481565b6000601f54905090565b601660009054906101000a900461ffff1681565b60125481565b60145481565b60006109bb84848461135e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a0661118b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7d9061339f565b60405180910390fd5b610aa385610a9261118b565b8584610a9e919061381a565b611193565b60019150509392505050565b60006009905090565b60185481565b600b5481565b600c5481565b60195481565b610ad861118b565b73ffffffffffffffffffffffffffffffffffffffff16610af6610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b43906133bf565b60405180910390fd5b6001601e60176101000a81548160ff021916908315150217905550565b601b5481565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b610bcc61118b565b73ffffffffffffffffffffffffffffffffffffffff16610bea610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906133bf565b60405180910390fd5b610c4a60006119e5565b565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600481526020017f4b61686f00000000000000000000000000000000000000000000000000000000815250905090565b60135481565b60095481565b60155481565b600f5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d10610d0961118b565b848461135e565b6001905092915050565b600a5481565b610d2861118b565b73ffffffffffffffffffffffffffffffffffffffff16610d46610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d93906133bf565b60405180910390fd5b6009600a610daa91906136a2565b82610db591906137c0565b6021819055506009600a610dc991906136a2565b81610dd491906137c0565b6020819055505050565b610de661118b565b73ffffffffffffffffffffffffffffffffffffffff16610e04610c52565b73ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e51906133bf565b60405180910390fd5b601e60149054906101000a900460ff1615610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea19061343f565b60405180910390fd5b6001601e60166101000a81548160ff0219169083151502179055506509188a0d6a006020819055506509188a0d6a006021819055506001601e60146101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f999291906131ec565b602060405180830381600087803b158015610fb357600080fd5b505af1158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190612e3e565b50565b60055481565b60115481565b60105481565b60065481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b61109b61118b565b73ffffffffffffffffffffffffffffffffffffffff166110b9610c52565b73ffffffffffffffffffffffffffffffffffffffff161461110f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611106906133bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061333f565b60405180910390fd5b611188816119e5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa9061341f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a9061335f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135191906134ba565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c5906133ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561143e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611435906132ff565b60405180910390fd5b60008111611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906133df565b60405180910390fd5b61148a83610b75565b8111156114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061331f565b60405180910390fd5b601e60149054906101000a900460ff16806115305750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115845750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba9061345f565b60405180910390fd5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561166e5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116c45750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561170f5760215481111561170e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117059061347f565b60405180910390fd5b5b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117ba5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118105750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561186e5760205461182183610b75565b8261182c91906135c8565b111561186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118649061337f565b60405180910390fd5b5b600061187930610b75565b9050601e60159054906101000a900460ff161580156118e65750601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118fe5750601e60169054906101000a900460ff165b801561190a5750600081115b156119325761191881611aa9565b600047905060008111156119305761192f476120c8565b5b505b6119df848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119d95750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612134565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601e60156101000a81548160ff0219169083151502179055506000601b54601a54601954601854601754611adf91906135c8565b611ae991906135c8565b611af391906135c8565b611afd91906135c8565b90506000811415611b0e57506120aa565b60008160195484611b1f91906137c0565b611b29919061361e565b905060008184611b39919061381a565b905060004790506000600267ffffffffffffffff811115611b83577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611bb15781602001602082028036833780820191505090505b5090503081600081518110611bef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c9157600080fd5b505afa158015611ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc99190612d4e565b81600181518110611d03577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d6a30601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688611193565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611dce9594939291906134d5565b600060405180830381600087803b158015611de857600080fd5b505af1158015611dfc573d6000803e3d6000fd5b5050505060008247611e0e919061381a565b905060008482611e1e919061361e565b905060008682611e2e91906137c0565b90506000871115611f3657601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823084600080611e85610c52565b426040518863ffffffff1660e01b8152600401611ea796959493929190613215565b6060604051808303818588803b158015611ec057600080fd5b505af1158015611ed4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ef99190612ea3565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068182604051611f2d92919061352f565b60405180910390a15b60008860185485611f4791906137c0565b611f51919061361e565b9050601e60179054906101000a900460ff168015611f6f5750600081115b15611f7e57611f7d8161231e565b5b600089601a5486611f8f91906137c0565b611f99919061361e565b9050600081111561200e57602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561200c573d6000803e3d6000fd5b505b60008a601b548761201f91906137c0565b612029919061361e565b9050600081111561209e57602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561209c573d6000803e3d6000fd5b505b50505050505050505050505b6000601e60156101000a81548160ff02191690831515021790555050565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612130573d6000803e3d6000fd5b5050565b600061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156121ec5782905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121be919061381a565b9250508190555080601f546121d3919061381a565b601f819055506121e1610984565b601f819055506122b2565b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461223b919061381a565b925050819055508161224d5782612259565b6122588585856125b9565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122aa91906135c8565b925050819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161230f91906134ba565b60405180910390a35050505050565b6000600267ffffffffffffffff811115612361577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561238f5781602001602082028036833780820191505090505b509050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156123fa57600080fd5b505afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190612d4e565b8160008151811061246c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030816001815181106124e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008461dead426040518663ffffffff1660e01b81526004016125809493929190613291565b6000604051808303818588803b15801561259957600080fd5b505af1935050505080156125ab575060015b6125b4576125b5565b5b5050565b6000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561261a57506000600a54115b1561272357601660009054906101000a900461ffff1661ffff166005548361264291906137c0565b61264c919061361e565b601181905550601660009054906101000a900461ffff1661ffff166006548361267591906137c0565b61267f919061361e565b601281905550601660009054906101000a900461ffff1661ffff16600754836126a891906137c0565b6126b2919061361e565b601381905550601660009054906101000a900461ffff1661ffff16600854836126db91906137c0565b6126e5919061361e565b601481905550601660009054906101000a900461ffff1661ffff166009548361270e91906137c0565b612718919061361e565b601581905550612888565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561278257506000601054115b1561288757601660009054906101000a900461ffff1661ffff16600b54836127aa91906137c0565b6127b4919061361e565b601181905550601660009054906101000a900461ffff1661ffff16600c54836127dd91906137c0565b6127e7919061361e565b601281905550601660009054906101000a900461ffff1661ffff16600d548361281091906137c0565b61281a919061361e565b601381905550601660009054906101000a900461ffff1661ffff16600e548361284391906137c0565b61284d919061361e565b601481905550601660009054906101000a900461ffff1661ffff16600f548361287691906137c0565b612880919061361e565b6015819055505b5b6011546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128db91906135c8565b92505081905550601154601f546128f2919061381a565b601f81905550612900610984565b601f8190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60115460405161296791906134ba565b60405180910390a3601254600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129c091906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601254604051612a2691906134ba565b60405180910390a3601354600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a7f91906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051612ae591906134ba565b60405180910390a3601454600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b3e91906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601454604051612ba491906134ba565b60405180910390a3601554600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bfd91906135c8565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601554604051612c6391906134ba565b60405180910390a36000601554601454601354601254601154612c8691906135c8565b612c9091906135c8565b612c9a91906135c8565b612ca491906135c8565b90508083612cb2919061381a565b9150509392505050565b600081359050612ccb81613cdd565b92915050565b600081519050612ce081613cdd565b92915050565b600081519050612cf581613cf4565b92915050565b600081359050612d0a81613d0b565b92915050565b600081519050612d1f81613d0b565b92915050565b600060208284031215612d3757600080fd5b6000612d4584828501612cbc565b91505092915050565b600060208284031215612d6057600080fd5b6000612d6e84828501612cd1565b91505092915050565b60008060408385031215612d8a57600080fd5b6000612d9885828601612cbc565b9250506020612da985828601612cbc565b9150509250929050565b600080600060608486031215612dc857600080fd5b6000612dd686828701612cbc565b9350506020612de786828701612cbc565b9250506040612df886828701612cfb565b9150509250925092565b60008060408385031215612e1557600080fd5b6000612e2385828601612cbc565b9250506020612e3485828601612cfb565b9150509250929050565b600060208284031215612e5057600080fd5b6000612e5e84828501612ce6565b91505092915050565b60008060408385031215612e7a57600080fd5b6000612e8885828601612cfb565b9250506020612e9985828601612cfb565b9150509250929050565b600080600060608486031215612eb857600080fd5b6000612ec686828701612d10565b9350506020612ed786828701612d10565b9250506040612ee886828701612d10565b9150509250925092565b6000612efe8383612f0a565b60208301905092915050565b612f138161384e565b82525050565b612f228161384e565b82525050565b6000612f3382613583565b612f3d81856135a6565b9350612f4883613573565b8060005b83811015612f79578151612f608882612ef2565b9750612f6b83613599565b925050600181019050612f4c565b5085935050505092915050565b612f8f81613860565b82525050565b612f9e816138b1565b82525050565b6000612faf8261358e565b612fb981856135b7565b9350612fc98185602086016138c3565b612fd281613954565b840191505092915050565b6000612fea6023836135b7565b9150612ff582613972565b604082019050919050565b600061300d6031836135b7565b9150613018826139c1565b604082019050919050565b60006130306026836135b7565b915061303b82613a10565b604082019050919050565b60006130536022836135b7565b915061305e82613a5f565b604082019050919050565b60006130766022836135b7565b915061308182613aae565b604082019050919050565b60006130996028836135b7565b91506130a482613afd565b604082019050919050565b60006130bc6020836135b7565b91506130c782613b4c565b602082019050919050565b60006130df6029836135b7565b91506130ea82613b75565b604082019050919050565b60006131026025836135b7565b915061310d82613bc4565b604082019050919050565b60006131256024836135b7565b915061313082613c13565b604082019050919050565b60006131486017836135b7565b915061315382613c62565b602082019050919050565b600061316b6017836135b7565b915061317682613c8b565b602082019050919050565b600061318e6018836135b7565b915061319982613cb4565b602082019050919050565b6131ad8161386c565b82525050565b6131bc8161389a565b82525050565b6131cb816138a4565b82525050565b60006020820190506131e66000830184612f19565b92915050565b60006040820190506132016000830185612f19565b61320e60208301846131b3565b9392505050565b600060c08201905061322a6000830189612f19565b61323760208301886131b3565b6132446040830187612f95565b6132516060830186612f95565b61325e6080830185612f19565b61326b60a08301846131b3565b979650505050505050565b600060208201905061328b6000830184612f86565b92915050565b60006080820190506132a66000830187612f95565b81810360208301526132b88186612f28565b90506132c76040830185612f19565b6132d460608301846131b3565b95945050505050565b600060208201905081810360008301526132f78184612fa4565b905092915050565b6000602082019050818103600083015261331881612fdd565b9050919050565b6000602082019050818103600083015261333881613000565b9050919050565b6000602082019050818103600083015261335881613023565b9050919050565b6000602082019050818103600083015261337881613046565b9050919050565b6000602082019050818103600083015261339881613069565b9050919050565b600060208201905081810360008301526133b88161308c565b9050919050565b600060208201905081810360008301526133d8816130af565b9050919050565b600060208201905081810360008301526133f8816130d2565b9050919050565b60006020820190508181036000830152613418816130f5565b9050919050565b6000602082019050818103600083015261343881613118565b9050919050565b600060208201905081810360008301526134588161313b565b9050919050565b600060208201905081810360008301526134788161315e565b9050919050565b6000602082019050818103600083015261349881613181565b9050919050565b60006020820190506134b460008301846131a4565b92915050565b60006020820190506134cf60008301846131b3565b92915050565b600060a0820190506134ea60008301886131b3565b6134f76020830187612f95565b81810360408301526135098186612f28565b90506135186060830185612f19565b61352560808301846131b3565b9695505050505050565b600060408201905061354460008301856131b3565b61355160208301846131b3565b9392505050565b600060208201905061356d60008301846131c2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135d38261389a565b91506135de8361389a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613613576136126138f6565b5b828201905092915050565b60006136298261389a565b91506136348361389a565b92508261364457613643613925565b5b828204905092915050565b6000808291508390505b600185111561369957808604811115613675576136746138f6565b5b60018516156136845780820291505b808102905061369285613965565b9450613659565b94509492505050565b60006136ad8261389a565b91506136b8836138a4565b92506136e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846136ed565b905092915050565b6000826136fd57600190506137b9565b8161370b57600090506137b9565b8160018114613721576002811461372b5761375a565b60019150506137b9565b60ff84111561373d5761373c6138f6565b5b8360020a915084821115613754576137536138f6565b5b506137b9565b5060208310610133831016604e8410600b841016171561378f5782820a90508381111561378a576137896138f6565b5b6137b9565b61379c848484600161364f565b925090508184048111156137b3576137b26138f6565b5b81810290505b9392505050565b60006137cb8261389a565b91506137d68361389a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561380f5761380e6138f6565b5b828202905092915050565b60006138258261389a565b91506138308361389a565b925082821015613843576138426138f6565b5b828203905092915050565b60006138598261387a565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006138bc8261389a565b9050919050565b60005b838110156138e15780820151818401526020810190506138c6565b838111156138f0576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b7f4578636565647320746865206d61785478416d6f756e742e0000000000000000600082015250565b613ce68161384e565b8114613cf157600080fd5b50565b613cfd81613860565b8114613d0857600080fd5b50565b613d148161389a565b8114613d1f57600080fd5b5056fea2646970667358221220a1b73e00306b6deffe40ca90988f4dfb8906887081e46e93317fc08db7ff8f0164736f6c63430008040033

Deployed Bytecode Sourcemap

6374:14433:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8081:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11638:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12348:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11867:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7605:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7438:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7531:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12494:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11792:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7735:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7134:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7177:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7845:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20219:76;;;;;;;;;;;;;:::i;:::-;;8015:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7230:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11954:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7936:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4834:94;;;;;;;;;;;;;:::i;:::-;;7018:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4611:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7278:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11713:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7487:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7061:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7571:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7322:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8161:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12063:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7098:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19994:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20410:350;;;;;;;;;;;;;:::i;:::-;;6877:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7397:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7360:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12213:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6971:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4936:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8081:73;8112:42;8081:73;:::o;11638:69::-;11675:13;11699:5;;;;;;;;;;;;;;;;;11692:12;;11638:69;:::o;12348:138::-;12423:4;12431:39;12440:12;:10;:12::i;:::-;12454:7;12463:6;12431:8;:39::i;:::-;12479:4;12472:11;;12348:138;;;;:::o;7656:72::-;;;;:::o;11867:81::-;11920:7;11938;;11931:14;;11867:81;:::o;7605:38::-;;;;;;;;;;;;;:::o;7438:42::-;;;;:::o;7531:33::-;;;;:::o;12494:420::-;12600:4;12617:36;12627:6;12635:9;12646:6;12617:9;:36::i;:::-;12666:24;12693:11;:19;12705:6;12693:19;;;;;;;;;;;;;;;:33;12713:12;:10;:12::i;:::-;12693:33;;;;;;;;;;;;;;;;12666:60;;12765:6;12745:16;:26;;12737:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12827:57;12836:6;12844:12;:10;:12::i;:::-;12877:6;12858:16;:25;;;;:::i;:::-;12827:8;:57::i;:::-;12902:4;12895:11;;;12494:420;;;;;:::o;11792:69::-;11833:5;6867:1;11842:16;;11792:69;:::o;7735:103::-;;;;:::o;7134:36::-;;;;:::o;7177:46::-;;;;:::o;7845:84::-;;;;:::o;20219:76::-;4757:12;:10;:12::i;:::-;4746:23;;:7;:5;:7::i;:::-;:23;;;4738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20283:4:::1;20272:8;;:15;;;;;;;;;;;;;;;;;;20219:76::o:0;8015:57::-;;;;:::o;7230:41::-;;;;:::o;11954:103::-;12020:7;12038;:16;12046:7;12038:16;;;;;;;;;;;;;;;;12031:23;;11954:103;;;:::o;7936:72::-;;;;:::o;4834:94::-;4757:12;:10;:12::i;:::-;4746:23;;:7;:5;:7::i;:::-;:23;;;4738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4899:21:::1;4917:1;4899:9;:21::i;:::-;4834:94::o:0;7018:36::-;;;;:::o;4611:87::-;4657:7;4684:6;;;;;;;;;;;4677:13;;4611:87;:::o;7278:37::-;;;;:::o;11713:73::-;11752:13;11776:7;;;;;;;;;;;;;;;;;11769:14;;11713:73;:::o;7487:37::-;;;;:::o;7061:30::-;;;;:::o;7571:27::-;;;;:::o;7322:31::-;;;;:::o;8161:26::-;;;;;;;;;;;;;:::o;12063:144::-;12141:4;12149:42;12159:12;:10;:12::i;:::-;12173:9;12184:6;12149:9;:42::i;:::-;12200:4;12193:11;;12063:144;;;;:::o;7098:27::-;;;;:::o;19994:217::-;4757:12;:10;:12::i;:::-;4746:23;;:7;:5;:7::i;:::-;:23;;;4738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6867:1:::1;20129:2;:14;;;;:::i;:::-;20114:12;:29;;;;:::i;:::-;20100:11;:43;;;;6867:1;20189:2;:14;;;;:::i;:::-;20172;:31;;;;:::i;:::-;20154:15;:49;;;;19994:217:::0;;:::o;20410:350::-;4757:12;:10;:12::i;:::-;4746:23;;:7;:5;:7::i;:::-;:23;;;4738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20474:11:::1;;;;;;;;;;;20473:12;20465:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;20545:4;20531:11;;:18;;;;;;;;;;;;;;;;;;20578:13;20560:15;:31;;;;20622:13;20608:11;:27;;;;20666:4;20652:11;;:18;;;;;;;;;;;;;;;;;;20688:13;;;;;;;;;;;20681:29;;;20719:15;;;;;;;;;;;20737:14;20681:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20410:350::o:0;6877:35::-;;;;:::o;7397:32::-;;;;:::o;7360:28::-;;;;:::o;6919:45::-;;;;:::o;12213:129::-;12294:7;12312:11;:18;12324:5;12312:18;;;;;;;;;;;;;;;:27;12331:7;12312:27;;;;;;;;;;;;;;;;12305:34;;12213:129;;;;:::o;6971:40::-;;;;:::o;4936:192::-;4757:12;:10;:12::i;:::-;4746:23;;:7;:5;:7::i;:::-;:23;;;4738:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5045:1:::1;5025:22;;:8;:22;;;;5017:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5101:19;5111:8;5101:9;:19::i;:::-;4936:192:::0;:::o;4032:98::-;4085:7;4112:10;4105:17;;4032:98;:::o;12922:335::-;13032:1;13015:19;;:5;:19;;;;13007:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13113:1;13094:21;;:7;:21;;;;13086:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13195:6;13165:11;:18;13177:5;13165:18;;;;;;;;;;;;;;;:27;13184:7;13165:27;;;;;;;;;;;;;;;:36;;;;13233:7;13217:32;;13226:5;13217:32;;;13242:6;13217:32;;;;;;:::i;:::-;;;;;;;;12922:335;;;:::o;13265:1476::-;13369:1;13353:18;;:4;:18;;;;13345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13446:1;13432:16;;:2;:16;;;;13424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13516:1;13507:6;:10;13499:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13592:15;13602:4;13592:9;:15::i;:::-;13582:6;:25;;13574:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;13683:11;;;;;;;;;;;:39;;;;13698:18;:24;13717:4;13698:24;;;;;;;;;;;;;;;;;;;;;;;;;13683:39;:65;;;;13726:18;:22;13745:2;13726:22;;;;;;;;;;;;;;;;;;;;;;;;;13683:65;13675:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;13801:13;;;;;;;;;;;13793:21;;:4;:21;;;:55;;;;;13832:15;;;;;;;;;;;13818:30;;:2;:30;;;;13793:55;:83;;;;;13854:18;:22;13873:2;13854:22;;;;;;;;;;;;;;;;;;;;;;;;;13852:24;13793:83;13789:178;;;13915:11;;13905:6;:21;;13897:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13789:178;13989:13;;;;;;;;;;;13981:21;;:4;:21;;;:55;;;;;14020:15;;;;;;;;;;;14006:30;;:2;:30;;;;13981:55;:93;;;;;14042:28;:32;14071:2;14042:32;;;;;;;;;;;;;;;;;;;;;;;;;14040:34;13981:93;13977:231;;;14142:15;;14125:13;14135:2;14125:9;:13::i;:::-;14116:6;:22;;;;:::i;:::-;:41;;14108:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13977:231;14220:28;14251:24;14269:4;14251:9;:24::i;:::-;14220:55;;14295:6;;;;;;;;;;;14294:7;:32;;;;;14313:13;;;;;;;;;;;14305:21;;:4;:21;;;;14294:32;:47;;;;;14330:11;;;;;;;;;;;14294:47;:73;;;;;14366:1;14345:20;:22;14294:73;14290:344;;;14388:38;14405:20;14388:16;:38::i;:::-;14445:26;14474:21;14445:50;;14538:1;14517:18;:22;14514:105;;;14564:35;14577:21;14564:12;:35::i;:::-;14514:105;14290:344;;14646:87;14661:4;14667:2;14671:6;14681:18;:24;14700:4;14681:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;14709:18;:22;14728:2;14709:22;;;;;;;;;;;;;;;;;;;;;;;;;14681:50;14679:53;14646:14;:87::i;:::-;13265:1476;;;;:::o;5136:173::-;5192:16;5211:6;;;;;;;;;;;5192:25;;5237:8;5228:6;;:17;;;;;;;;;;;;;;;;;;5292:8;5261:40;;5282:8;5261:40;;;;;;;;;;;;5136:173;;:::o;14749:2204::-;8865:4;8856:6;;:13;;;;;;;;;;;;;;;;;;14827:16:::1;14933:11;;14916:14;;14895:18;;14865:27;;14846:16;;:46;;;;:::i;:::-;:67;;;;:::i;:::-;:84;;;;:::i;:::-;:98;;;;:::i;:::-;14827:117;;14981:1;14969:8;:13;14965:39;;;14997:7;;;14965:39;15016:32;15089:8;15066:18;;15052:11;:32;;;;:::i;:::-;15051:47;;;;:::i;:::-;15016:82;;15109:20;15146:24;15132:11;:38;;;;:::i;:::-;15109:61;;15182:22;15207:21;15182:46;;15241:21;15279:1;15265:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15241:40;;15310:4;15292;15297:1;15292:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;15336:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15326:4;15331:1;15326:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;15371:62;15388:4;15403:15;;;;;;;;;;;15421:11;15371:8;:62::i;:::-;15454:15;;;;;;;;;;;:66;;;15535:12;15576:1;15620:4;15647;15667:15;15454:239;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15714:20;15761:14;15737:21;:38;;;;:::i;:::-;15714:61;;15786:24;15828:12;15813;:27;;;;:::i;:::-;15786:54;;15851:29;15902:24;15883:16;:43;;;;:::i;:::-;15851:75;;15975:1;15948:24;:28;15945:384;;;15992:15;;;;;;;;;;;:31;;;16031:21;16080:4;16104:21;16144:1;16164::::0;16184:7:::1;:5;:7::i;:::-;16210:15;15992:248;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16260:57;16272:21;16295;16260:57;;;;;;;:::i;:::-;;;;;;;;15945:384;16341:30;16421:8;16390:27;;16375:12;:42;;;;:::i;:::-;16374:55;;;;:::i;:::-;16341:88;;16450:8;;;;;;;;;;;:41;;;;;16489:1;16463:25;:27;16450:41;16447:114;;;16507:42;16523:25;16507:15;:42::i;:::-;16447:114;16581:21;16639:8;16621:14;;16606:12;:29;;;;:::i;:::-;16605:42;;;;:::i;:::-;16581:66;;16687:1;16670:16;:18;16666:105;;;16712:19;;;;;;;;;;;16704:37;;:55;16742:16;16704:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16666:105;16783:15;16832:8;16817:11;;16802:12;:26;;;;:::i;:::-;16801:39;;;;:::i;:::-;16783:57;;16874:1;16863:10;:12;16859:87;;;16899:13;;;;;;;;;;;16891:31;;:43;16923:10;16891:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16859:87;8880:1;;;;;;;;;;;;8901:5:::0;8892:6;;:14;;;;;;;;;;;;;;;;;;14749:2204;:::o;20303:95::-;20360:13;;;;;;;;;;;:22;;:30;20383:6;20360:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20303:95;:::o;17370:623::-;17478:22;8112:42;17514:17;;:9;:17;;;17511:402;;;17564:6;17547:23;;17604:14;17585:7;:15;17593:6;17585:15;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;17653:14;17643:7;;:24;;;;:::i;:::-;17633:7;:34;;;;17692:13;:11;:13::i;:::-;17682:7;:23;;;;17511:402;;;17755:6;17736:7;:15;17744:6;17736:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;17794:7;17793:57;;17844:6;17793:57;;;17805:36;17815:6;17823:9;17834:6;17805:9;:36::i;:::-;17793:57;17776:74;;17887:14;17865:7;:18;17873:9;17865:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;17511:402;17955:9;17938:43;;17947:6;17938:43;;;17966:14;17938:43;;;;;;:::i;:::-;;;;;;;;17370:623;;;;;:::o;16961:401::-;17018:21;17056:1;17042:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17018:40;;17079:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17069:4;17074:1;17069:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;17130:4;17112;17117:1;17112:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;17160:15;;;;;;;;;;;:66;;;17234:6;17256:1;17272:4;8112:42;17310:15;17160:176;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17156:199;;;;;;16961:401;;:::o;18005:1977::-;18084:7;18115:13;;;;;;;;;;;18107:21;;:4;:21;;;:41;;;;;18147:1;18132:12;;:16;18107:41;18104:968;;;18223:16;;;;;;;;;;;18197:42;;18206:14;;18197:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;18177:17;:62;;;;18323:16;;;;;;;;;;;18287:52;;18296:24;;18287:6;:33;;;;:::i;:::-;:52;;;;:::i;:::-;18257:27;:82;;;;18410:16;;;;;;;;;;;18379:47;;18388:19;;18379:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;18354:22;:72;;;;18489:16;;;;;;;;;;;18462:43;;18471:15;;18462:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;18441:18;:64;;;;18556:16;;;;;;;;;;;18535:37;;18544:9;;18535:6;:18;;;;:::i;:::-;:37;;;;:::i;:::-;18520:12;:52;;;;18104:968;;;18606:13;;;;;;;;;;;18600:19;;:2;:19;;;:41;;;;;18640:1;18624:13;;:17;18600:41;18596:476;;;18707:16;;;;;;;;;;;18680:43;;18689:15;;18680:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;18660:17;:63;;;;18805:16;;;;;;;;;;;18768:53;;18777:25;;18768:6;:34;;;;:::i;:::-;:53;;;;:::i;:::-;18738:27;:83;;;;18893:16;;;;;;;;;;;18861:48;;18870:20;;18861:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;18836:22;:73;;;;18973:16;;;;;;;;;;;18945:44;;18954:16;;18945:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;18924:18;:65;;;;19041:16;;;;;;;;;;;19019:38;;19028:10;;19019:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;19004:12;:53;;;;18596:476;18104:968;19109:17;;19092:7;:13;8112:42;19092:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;19157:17;;19147:7;;:27;;;;:::i;:::-;19137:7;:37;;;;19195:13;:11;:13::i;:::-;19185:7;:23;;;;8112:42;19224:39;;19233:4;19224:39;;;19245:17;;19224:39;;;;;;:::i;:::-;;;;;;;;19310:27;;19284:7;:22;19300:4;19284:22;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;19376:4;19353:58;;19362:4;19353:58;;;19383:27;;19353:58;;;;;;:::i;:::-;;;;;;;;19450:22;;19424:7;:22;19440:4;19424:22;;;;;;;;;;;;;;;;:48;;;;;;;:::i;:::-;;;;;;;;19511:4;19488:53;;19497:4;19488:53;;;19518:22;;19488:53;;;;;;:::i;:::-;;;;;;;;19596:18;;19570:7;:22;19586:4;19570:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;19653:4;19630:49;;19639:4;19630:49;;;19660:18;;19630:49;;;;;;:::i;:::-;;;;;;;;19726:12;;19700:7;:22;19716:4;19700:22;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;19777:4;19754:43;;19763:4;19754:43;;;19784:12;;19754:43;;;;;;:::i;:::-;;;;;;;;19810:17;19926:12;;19905:18;;19880:22;;19850:27;;19830:17;;:47;;;;:::i;:::-;:72;;;;:::i;:::-;:93;;;;:::i;:::-;:108;;;;:::i;:::-;19810:128;;19965:9;19956:6;:18;;;;:::i;:::-;19949:25;;;18005:1977;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;361:77;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;496:87;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;652:80;;;;:::o;738:262::-;797:6;846:2;834:9;825:7;821:23;817:32;814:2;;;862:1;859;852:12;814:2;905:1;930:53;975:7;966:6;955:9;951:22;930:53;:::i;:::-;920:63;;876:117;804:196;;;;:::o;1006:284::-;1076:6;1125:2;1113:9;1104:7;1100:23;1096:32;1093:2;;;1141:1;1138;1131:12;1093:2;1184:1;1209:64;1265:7;1256:6;1245:9;1241:22;1209:64;:::i;:::-;1199:74;;1155:128;1083:207;;;;:::o;1296:407::-;1364:6;1372;1421:2;1409:9;1400:7;1396:23;1392:32;1389:2;;;1437:1;1434;1427:12;1389:2;1480:1;1505:53;1550:7;1541:6;1530:9;1526:22;1505:53;:::i;:::-;1495:63;;1451:117;1607:2;1633:53;1678:7;1669:6;1658:9;1654:22;1633:53;:::i;:::-;1623:63;;1578:118;1379:324;;;;;:::o;1709:552::-;1786:6;1794;1802;1851:2;1839:9;1830:7;1826:23;1822:32;1819:2;;;1867:1;1864;1857:12;1819:2;1910:1;1935:53;1980:7;1971:6;1960:9;1956:22;1935:53;:::i;:::-;1925:63;;1881:117;2037:2;2063:53;2108:7;2099:6;2088:9;2084:22;2063:53;:::i;:::-;2053:63;;2008:118;2165:2;2191:53;2236:7;2227:6;2216:9;2212:22;2191:53;:::i;:::-;2181:63;;2136:118;1809:452;;;;;:::o;2267:407::-;2335:6;2343;2392:2;2380:9;2371:7;2367:23;2363:32;2360:2;;;2408:1;2405;2398:12;2360:2;2451:1;2476:53;2521:7;2512:6;2501:9;2497:22;2476:53;:::i;:::-;2466:63;;2422:117;2578:2;2604:53;2649:7;2640:6;2629:9;2625:22;2604:53;:::i;:::-;2594:63;;2549:118;2350:324;;;;;:::o;2680:278::-;2747:6;2796:2;2784:9;2775:7;2771:23;2767:32;2764:2;;;2812:1;2809;2802:12;2764:2;2855:1;2880:61;2933:7;2924:6;2913:9;2909:22;2880:61;:::i;:::-;2870:71;;2826:125;2754:204;;;;:::o;2964:407::-;3032:6;3040;3089:2;3077:9;3068:7;3064:23;3060:32;3057:2;;;3105:1;3102;3095:12;3057:2;3148:1;3173:53;3218:7;3209:6;3198:9;3194:22;3173:53;:::i;:::-;3163:63;;3119:117;3275:2;3301:53;3346:7;3337:6;3326:9;3322:22;3301:53;:::i;:::-;3291:63;;3246:118;3047:324;;;;;:::o;3377:596::-;3465:6;3473;3481;3530:2;3518:9;3509:7;3505:23;3501:32;3498:2;;;3546:1;3543;3536:12;3498:2;3589:1;3614:64;3670:7;3661:6;3650:9;3646:22;3614:64;:::i;:::-;3604:74;;3560:128;3727:2;3753:64;3809:7;3800:6;3789:9;3785:22;3753:64;:::i;:::-;3743:74;;3698:129;3866:2;3892:64;3948:7;3939:6;3928:9;3924:22;3892:64;:::i;:::-;3882:74;;3837:129;3488:485;;;;;:::o;3979:179::-;4048:10;4069:46;4111:3;4103:6;4069:46;:::i;:::-;4147:4;4142:3;4138:14;4124:28;;4059:99;;;;:::o;4164:108::-;4241:24;4259:5;4241:24;:::i;:::-;4236:3;4229:37;4219:53;;:::o;4278:118::-;4365:24;4383:5;4365:24;:::i;:::-;4360:3;4353:37;4343:53;;:::o;4432:732::-;4551:3;4580:54;4628:5;4580:54;:::i;:::-;4650:86;4729:6;4724:3;4650:86;:::i;:::-;4643:93;;4760:56;4810:5;4760:56;:::i;:::-;4839:7;4870:1;4855:284;4880:6;4877:1;4874:13;4855:284;;;4956:6;4950:13;4983:63;5042:3;5027:13;4983:63;:::i;:::-;4976:70;;5069:60;5122:6;5069:60;:::i;:::-;5059:70;;4915:224;4902:1;4899;4895:9;4890:14;;4855:284;;;4859:14;5155:3;5148:10;;4556:608;;;;;;;:::o;5170:109::-;5251:21;5266:5;5251:21;:::i;:::-;5246:3;5239:34;5229:50;;:::o;5285:147::-;5380:45;5419:5;5380:45;:::i;:::-;5375:3;5368:58;5358:74;;:::o;5438:364::-;5526:3;5554:39;5587:5;5554:39;:::i;:::-;5609:71;5673:6;5668:3;5609:71;:::i;:::-;5602:78;;5689:52;5734:6;5729:3;5722:4;5715:5;5711:16;5689:52;:::i;:::-;5766:29;5788:6;5766:29;:::i;:::-;5761:3;5757:39;5750:46;;5530:272;;;;;:::o;5808:366::-;5950:3;5971:67;6035:2;6030:3;5971:67;:::i;:::-;5964:74;;6047:93;6136:3;6047:93;:::i;:::-;6165:2;6160:3;6156:12;6149:19;;5954:220;;;:::o;6180:366::-;6322:3;6343:67;6407:2;6402:3;6343:67;:::i;:::-;6336:74;;6419:93;6508:3;6419:93;:::i;:::-;6537:2;6532:3;6528:12;6521:19;;6326:220;;;:::o;6552:366::-;6694:3;6715:67;6779:2;6774:3;6715:67;:::i;:::-;6708:74;;6791:93;6880:3;6791:93;:::i;:::-;6909:2;6904:3;6900:12;6893:19;;6698:220;;;:::o;6924:366::-;7066:3;7087:67;7151:2;7146:3;7087:67;:::i;:::-;7080:74;;7163:93;7252:3;7163:93;:::i;:::-;7281:2;7276:3;7272:12;7265:19;;7070:220;;;:::o;7296:366::-;7438:3;7459:67;7523:2;7518:3;7459:67;:::i;:::-;7452:74;;7535:93;7624:3;7535:93;:::i;:::-;7653:2;7648:3;7644:12;7637:19;;7442:220;;;:::o;7668:366::-;7810:3;7831:67;7895:2;7890:3;7831:67;:::i;:::-;7824:74;;7907:93;7996:3;7907:93;:::i;:::-;8025:2;8020:3;8016:12;8009:19;;7814:220;;;:::o;8040:366::-;8182:3;8203:67;8267:2;8262:3;8203:67;:::i;:::-;8196:74;;8279:93;8368:3;8279:93;:::i;:::-;8397:2;8392:3;8388:12;8381:19;;8186:220;;;:::o;8412:366::-;8554:3;8575:67;8639:2;8634:3;8575:67;:::i;:::-;8568:74;;8651:93;8740:3;8651:93;:::i;:::-;8769:2;8764:3;8760:12;8753:19;;8558:220;;;:::o;8784:366::-;8926:3;8947:67;9011:2;9006:3;8947:67;:::i;:::-;8940:74;;9023:93;9112:3;9023:93;:::i;:::-;9141:2;9136:3;9132:12;9125:19;;8930:220;;;:::o;9156:366::-;9298:3;9319:67;9383:2;9378:3;9319:67;:::i;:::-;9312:74;;9395:93;9484:3;9395:93;:::i;:::-;9513:2;9508:3;9504:12;9497:19;;9302:220;;;:::o;9528:366::-;9670:3;9691:67;9755:2;9750:3;9691:67;:::i;:::-;9684:74;;9767:93;9856:3;9767:93;:::i;:::-;9885:2;9880:3;9876:12;9869:19;;9674:220;;;:::o;9900:366::-;10042:3;10063:67;10127:2;10122:3;10063:67;:::i;:::-;10056:74;;10139:93;10228:3;10139:93;:::i;:::-;10257:2;10252:3;10248:12;10241:19;;10046:220;;;:::o;10272:366::-;10414:3;10435:67;10499:2;10494:3;10435:67;:::i;:::-;10428:74;;10511:93;10600:3;10511:93;:::i;:::-;10629:2;10624:3;10620:12;10613:19;;10418:220;;;:::o;10644:115::-;10729:23;10746:5;10729:23;:::i;:::-;10724:3;10717:36;10707:52;;:::o;10765:118::-;10852:24;10870:5;10852:24;:::i;:::-;10847:3;10840:37;10830:53;;:::o;10889:112::-;10972:22;10988:5;10972:22;:::i;:::-;10967:3;10960:35;10950:51;;:::o;11007:222::-;11100:4;11138:2;11127:9;11123:18;11115:26;;11151:71;11219:1;11208:9;11204:17;11195:6;11151:71;:::i;:::-;11105:124;;;;:::o;11235:332::-;11356:4;11394:2;11383:9;11379:18;11371:26;;11407:71;11475:1;11464:9;11460:17;11451:6;11407:71;:::i;:::-;11488:72;11556:2;11545:9;11541:18;11532:6;11488:72;:::i;:::-;11361:206;;;;;:::o;11573:807::-;11822:4;11860:3;11849:9;11845:19;11837:27;;11874:71;11942:1;11931:9;11927:17;11918:6;11874:71;:::i;:::-;11955:72;12023:2;12012:9;12008:18;11999:6;11955:72;:::i;:::-;12037:80;12113:2;12102:9;12098:18;12089:6;12037:80;:::i;:::-;12127;12203:2;12192:9;12188:18;12179:6;12127:80;:::i;:::-;12217:73;12285:3;12274:9;12270:19;12261:6;12217:73;:::i;:::-;12300;12368:3;12357:9;12353:19;12344:6;12300:73;:::i;:::-;11827:553;;;;;;;;;:::o;12386:210::-;12473:4;12511:2;12500:9;12496:18;12488:26;;12524:65;12586:1;12575:9;12571:17;12562:6;12524:65;:::i;:::-;12478:118;;;;:::o;12602:720::-;12837:4;12875:3;12864:9;12860:19;12852:27;;12889:79;12965:1;12954:9;12950:17;12941:6;12889:79;:::i;:::-;13015:9;13009:4;13005:20;13000:2;12989:9;12985:18;12978:48;13043:108;13146:4;13137:6;13043:108;:::i;:::-;13035:116;;13161:72;13229:2;13218:9;13214:18;13205:6;13161:72;:::i;:::-;13243;13311:2;13300:9;13296:18;13287:6;13243:72;:::i;:::-;12842:480;;;;;;;:::o;13328:313::-;13441:4;13479:2;13468:9;13464:18;13456:26;;13528:9;13522:4;13518:20;13514:1;13503:9;13499:17;13492:47;13556:78;13629:4;13620:6;13556:78;:::i;:::-;13548:86;;13446:195;;;;:::o;13647:419::-;13813:4;13851:2;13840:9;13836:18;13828:26;;13900:9;13894:4;13890:20;13886:1;13875:9;13871:17;13864:47;13928:131;14054:4;13928:131;:::i;:::-;13920:139;;13818:248;;;:::o;14072:419::-;14238:4;14276:2;14265:9;14261:18;14253:26;;14325:9;14319:4;14315:20;14311:1;14300:9;14296:17;14289:47;14353:131;14479:4;14353:131;:::i;:::-;14345:139;;14243:248;;;:::o;14497:419::-;14663:4;14701:2;14690:9;14686:18;14678:26;;14750:9;14744:4;14740:20;14736:1;14725:9;14721:17;14714:47;14778:131;14904:4;14778:131;:::i;:::-;14770:139;;14668:248;;;:::o;14922:419::-;15088:4;15126:2;15115:9;15111:18;15103:26;;15175:9;15169:4;15165:20;15161:1;15150:9;15146:17;15139:47;15203:131;15329:4;15203:131;:::i;:::-;15195:139;;15093:248;;;:::o;15347:419::-;15513:4;15551:2;15540:9;15536:18;15528:26;;15600:9;15594:4;15590:20;15586:1;15575:9;15571:17;15564:47;15628:131;15754:4;15628:131;:::i;:::-;15620:139;;15518:248;;;:::o;15772:419::-;15938:4;15976:2;15965:9;15961:18;15953:26;;16025:9;16019:4;16015:20;16011:1;16000:9;15996:17;15989:47;16053:131;16179:4;16053:131;:::i;:::-;16045:139;;15943:248;;;:::o;16197:419::-;16363:4;16401:2;16390:9;16386:18;16378:26;;16450:9;16444:4;16440:20;16436:1;16425:9;16421:17;16414:47;16478:131;16604:4;16478:131;:::i;:::-;16470:139;;16368:248;;;:::o;16622:419::-;16788:4;16826:2;16815:9;16811:18;16803:26;;16875:9;16869:4;16865:20;16861:1;16850:9;16846:17;16839:47;16903:131;17029:4;16903:131;:::i;:::-;16895:139;;16793:248;;;:::o;17047:419::-;17213:4;17251:2;17240:9;17236:18;17228:26;;17300:9;17294:4;17290:20;17286:1;17275:9;17271:17;17264:47;17328:131;17454:4;17328:131;:::i;:::-;17320:139;;17218:248;;;:::o;17472:419::-;17638:4;17676:2;17665:9;17661:18;17653:26;;17725:9;17719:4;17715:20;17711:1;17700:9;17696:17;17689:47;17753:131;17879:4;17753:131;:::i;:::-;17745:139;;17643:248;;;:::o;17897:419::-;18063:4;18101:2;18090:9;18086:18;18078:26;;18150:9;18144:4;18140:20;18136:1;18125:9;18121:17;18114:47;18178:131;18304:4;18178:131;:::i;:::-;18170:139;;18068:248;;;:::o;18322:419::-;18488:4;18526:2;18515:9;18511:18;18503:26;;18575:9;18569:4;18565:20;18561:1;18550:9;18546:17;18539:47;18603:131;18729:4;18603:131;:::i;:::-;18595:139;;18493:248;;;:::o;18747:419::-;18913:4;18951:2;18940:9;18936:18;18928:26;;19000:9;18994:4;18990:20;18986:1;18975:9;18971:17;18964:47;19028:131;19154:4;19028:131;:::i;:::-;19020:139;;18918:248;;;:::o;19172:218::-;19263:4;19301:2;19290:9;19286:18;19278:26;;19314:69;19380:1;19369:9;19365:17;19356:6;19314:69;:::i;:::-;19268:122;;;;:::o;19396:222::-;19489:4;19527:2;19516:9;19512:18;19504:26;;19540:71;19608:1;19597:9;19593:17;19584:6;19540:71;:::i;:::-;19494:124;;;;:::o;19624:831::-;19887:4;19925:3;19914:9;19910:19;19902:27;;19939:71;20007:1;19996:9;19992:17;19983:6;19939:71;:::i;:::-;20020:80;20096:2;20085:9;20081:18;20072:6;20020:80;:::i;:::-;20147:9;20141:4;20137:20;20132:2;20121:9;20117:18;20110:48;20175:108;20278:4;20269:6;20175:108;:::i;:::-;20167:116;;20293:72;20361:2;20350:9;20346:18;20337:6;20293:72;:::i;:::-;20375:73;20443:3;20432:9;20428:19;20419:6;20375:73;:::i;:::-;19892:563;;;;;;;;:::o;20461:332::-;20582:4;20620:2;20609:9;20605:18;20597:26;;20633:71;20701:1;20690:9;20686:17;20677:6;20633:71;:::i;:::-;20714:72;20782:2;20771:9;20767:18;20758:6;20714:72;:::i;:::-;20587:206;;;;;:::o;20799:214::-;20888:4;20926:2;20915:9;20911:18;20903:26;;20939:67;21003:1;20992:9;20988:17;20979:6;20939:67;:::i;:::-;20893:120;;;;:::o;21019:132::-;21086:4;21109:3;21101:11;;21139:4;21134:3;21130:14;21122:22;;21091:60;;;:::o;21157:114::-;21224:6;21258:5;21252:12;21242:22;;21231:40;;;:::o;21277:99::-;21329:6;21363:5;21357:12;21347:22;;21336:40;;;:::o;21382:113::-;21452:4;21484;21479:3;21475:14;21467:22;;21457:38;;;:::o;21501:184::-;21600:11;21634:6;21629:3;21622:19;21674:4;21669:3;21665:14;21650:29;;21612:73;;;;:::o;21691:169::-;21775:11;21809:6;21804:3;21797:19;21849:4;21844:3;21840:14;21825:29;;21787:73;;;;:::o;21866:305::-;21906:3;21925:20;21943:1;21925:20;:::i;:::-;21920:25;;21959:20;21977:1;21959:20;:::i;:::-;21954:25;;22113:1;22045:66;22041:74;22038:1;22035:81;22032:2;;;22119:18;;:::i;:::-;22032:2;22163:1;22160;22156:9;22149:16;;21910:261;;;;:::o;22177:185::-;22217:1;22234:20;22252:1;22234:20;:::i;:::-;22229:25;;22268:20;22286:1;22268:20;:::i;:::-;22263:25;;22307:1;22297:2;;22312:18;;:::i;:::-;22297:2;22354:1;22351;22347:9;22342:14;;22219:143;;;;:::o;22368:848::-;22429:5;22436:4;22460:6;22451:15;;22484:5;22475:14;;22498:712;22519:1;22509:8;22506:15;22498:712;;;22614:4;22609:3;22605:14;22599:4;22596:24;22593:2;;;22623:18;;:::i;:::-;22593:2;22673:1;22663:8;22659:16;22656:2;;;23088:4;23081:5;23077:16;23068:25;;22656:2;23138:4;23132;23128:15;23120:23;;23168:32;23191:8;23168:32;:::i;:::-;23156:44;;22498:712;;;22441:775;;;;;;;:::o;23222:281::-;23280:5;23304:23;23322:4;23304:23;:::i;:::-;23296:31;;23348:25;23364:8;23348:25;:::i;:::-;23336:37;;23392:104;23429:66;23419:8;23413:4;23392:104;:::i;:::-;23383:113;;23286:217;;;;:::o;23509:1073::-;23563:5;23754:8;23744:2;;23775:1;23766:10;;23777:5;;23744:2;23803:4;23793:2;;23820:1;23811:10;;23822:5;;23793:2;23889:4;23937:1;23932:27;;;;23973:1;23968:191;;;;23882:277;;23932:27;23950:1;23941:10;;23952:5;;;23968:191;24013:3;24003:8;24000:17;23997:2;;;24020:18;;:::i;:::-;23997:2;24069:8;24066:1;24062:16;24053:25;;24104:3;24097:5;24094:14;24091:2;;;24111:18;;:::i;:::-;24091:2;24144:5;;;23882:277;;24268:2;24258:8;24255:16;24249:3;24243:4;24240:13;24236:36;24218:2;24208:8;24205:16;24200:2;24194:4;24191:12;24187:35;24171:111;24168:2;;;24324:8;24318:4;24314:19;24305:28;;24359:3;24352:5;24349:14;24346:2;;;24366:18;;:::i;:::-;24346:2;24399:5;;24168:2;24439:42;24477:3;24467:8;24461:4;24458:1;24439:42;:::i;:::-;24424:57;;;;24513:4;24508:3;24504:14;24497:5;24494:25;24491:2;;;24522:18;;:::i;:::-;24491:2;24571:4;24564:5;24560:16;24551:25;;23569:1013;;;;;;:::o;24588:348::-;24628:7;24651:20;24669:1;24651:20;:::i;:::-;24646:25;;24685:20;24703:1;24685:20;:::i;:::-;24680:25;;24873:1;24805:66;24801:74;24798:1;24795:81;24790:1;24783:9;24776:17;24772:105;24769:2;;;24880:18;;:::i;:::-;24769:2;24928:1;24925;24921:9;24910:20;;24636:300;;;;:::o;24942:191::-;24982:4;25002:20;25020:1;25002:20;:::i;:::-;24997:25;;25036:20;25054:1;25036:20;:::i;:::-;25031:25;;25075:1;25072;25069:8;25066:2;;;25080:18;;:::i;:::-;25066:2;25125:1;25122;25118:9;25110:17;;24987:146;;;;:::o;25139:96::-;25176:7;25205:24;25223:5;25205:24;:::i;:::-;25194:35;;25184:51;;;:::o;25241:90::-;25275:7;25318:5;25311:13;25304:21;25293:32;;25283:48;;;:::o;25337:89::-;25373:7;25413:6;25406:5;25402:18;25391:29;;25381:45;;;:::o;25432:126::-;25469:7;25509:42;25502:5;25498:54;25487:65;;25477:81;;;:::o;25564:77::-;25601:7;25630:5;25619:16;;25609:32;;;:::o;25647:86::-;25682:7;25722:4;25715:5;25711:16;25700:27;;25690:43;;;:::o;25739:121::-;25797:9;25830:24;25848:5;25830:24;:::i;:::-;25817:37;;25807:53;;;:::o;25866:307::-;25934:1;25944:113;25958:6;25955:1;25952:13;25944:113;;;26043:1;26038:3;26034:11;26028:18;26024:1;26019:3;26015:11;26008:39;25980:2;25977:1;25973:10;25968:15;;25944:113;;;26075:6;26072:1;26069:13;26066:2;;;26155:1;26146:6;26141:3;26137:16;26130:27;26066:2;25915:258;;;;:::o;26179:180::-;26227:77;26224:1;26217:88;26324:4;26321:1;26314:15;26348:4;26345:1;26338:15;26365:180;26413:77;26410:1;26403:88;26510:4;26507:1;26500:15;26534:4;26531:1;26524:15;26551:102;26592:6;26643:2;26639:7;26634:2;26627:5;26623:14;26619:28;26609:38;;26599:54;;;:::o;26659:102::-;26701:8;26748:5;26745:1;26741:13;26720:34;;26710:51;;;:::o;26767:222::-;26907:34;26903:1;26895:6;26891:14;26884:58;26976:5;26971:2;26963:6;26959:15;26952:30;26873:116;:::o;26995:236::-;27135:34;27131:1;27123:6;27119:14;27112:58;27204:19;27199:2;27191:6;27187:15;27180:44;27101:130;:::o;27237:225::-;27377:34;27373:1;27365:6;27361:14;27354:58;27446:8;27441:2;27433:6;27429:15;27422:33;27343:119;:::o;27468:221::-;27608:34;27604:1;27596:6;27592:14;27585:58;27677:4;27672:2;27664:6;27660:15;27653:29;27574:115;:::o;27695:221::-;27835:34;27831:1;27823:6;27819:14;27812:58;27904:4;27899:2;27891:6;27887:15;27880:29;27801:115;:::o;27922:227::-;28062:34;28058:1;28050:6;28046:14;28039:58;28131:10;28126:2;28118:6;28114:15;28107:35;28028:121;:::o;28155:182::-;28295:34;28291:1;28283:6;28279:14;28272:58;28261:76;:::o;28343:228::-;28483:34;28479:1;28471:6;28467:14;28460:58;28552:11;28547:2;28539:6;28535:15;28528:36;28449:122;:::o;28577:224::-;28717:34;28713:1;28705:6;28701:14;28694:58;28786:7;28781:2;28773:6;28769:15;28762:32;28683:118;:::o;28807:223::-;28947:34;28943:1;28935:6;28931:14;28924:58;29016:6;29011:2;29003:6;28999:15;28992:31;28913:117;:::o;29036:173::-;29176:25;29172:1;29164:6;29160:14;29153:49;29142:67;:::o;29215:173::-;29355:25;29351:1;29343:6;29339:14;29332:49;29321:67;:::o;29394:174::-;29534:26;29530:1;29522:6;29518:14;29511:50;29500:68;:::o;29574:122::-;29647:24;29665:5;29647:24;:::i;:::-;29640:5;29637:35;29627:2;;29686:1;29683;29676:12;29627:2;29617:79;:::o;29702:116::-;29772:21;29787:5;29772:21;:::i;:::-;29765:5;29762:32;29752:2;;29808:1;29805;29798:12;29752:2;29742:76;:::o;29824:122::-;29897:24;29915:5;29897:24;:::i;:::-;29890:5;29887:35;29877:2;;29936:1;29933;29926:12;29877:2;29867:79;:::o

Swarm Source

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