ETH Price: $3,607.44 (+6.11%)

Token

Tradix (TX)
 

Overview

Max Total Supply

100,000,000 TX

Holders

243 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$30,480.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 8 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The world's first decentralized crypto trading app across the blockchain!

Market

Volume (24H):$32.92
Market Capitalization:$0.00
Circulating Supply:0.00 TX
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-09
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

abstract contract Context {

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

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

interface IERC20 {

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

}

contract Ownable is Context {

    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    function renouncedOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Token is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "Tradix";
    string private _symbol = "TX";
    uint8 private _decimals = 8;

    address public splitOneDev = 0x9a0a4047FC5A342dAdc8425471C289649c247d89;
    address public splitTwoDev = 0xDa1CB3Df3DD7265c070F6e8bD2bd115241E4DFFC;
    address public splitThreeDev = 0xad3444832Ff9B3B0276c1E31962f03e1A38A63A9;

    address public growthWallet = 0x663Ab4a26af101D22DEba36F277e0C99258A89e1;
    address public whaleWallet = 0x3BFafd3D788D3C9dDE7a4082288ECBB95b45C8Ca;
    address public stakingWallet = 0xdA0723345bB5fC3A9daE15E4782D8FdbB8ef51a1;
    address public liquidityReciever;

    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public constant zeroAddress = 0x0000000000000000000000000000000000000000;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 public constant MAX_FEE = 200;

    uint256 _buyDevFee = 30;
    uint256 _buyLiquidityFee = 20;
    uint256 _buyGrowthFee = 30;
    uint256 _buyWhalePoolFee = 10;
    uint256 _buyStakingPoolFee = 10;
    
    uint256 _sellDevFee = 60;
    uint256 _sellLiquidityFee = 20;
    uint256 _sellGrowthFee = 100;
    uint256 _sellWhalePoolFee = 10;
    uint256 _sellStakingPoolFee = 10;

    uint256 totalBuy;
    uint256 totalSell;

    uint256 constant denominator = 1000;

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

    uint256 public minimumTokensBeforeSwap = 10000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(5).div(denominator);     //0.5%
    uint256 public _walletMax = _totalSupply.mul(20).div(denominator);    //2%

    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

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

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

        liquidityReciever = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        totalBuy = _buyDevFee.add(_buyLiquidityFee).add(_buyGrowthFee).add(_buyWhalePoolFee).add(_buyStakingPoolFee);
        totalSell = _sellDevFee.add(_sellLiquidityFee).add(_sellGrowthFee).add(_sellWhalePoolFee).add(_sellStakingPoolFee);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

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

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

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

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

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

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

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

        require(sender != address(0), "ERC20:from zero");
        require(recipient != address(0), "ERC20:to zero");
        require(amount > 0, "Invalid Amount");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {  
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount,"Max Tx");
            } 

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

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

            uint256 finalAmount = shouldTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet");
            }

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

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

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

    function swapAndLiquify() private lockTheSwap {
        
        uint256 contractBalance = balanceOf(address(this));

        if(contractBalance == 0) return;

        uint256 _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
        uint256 _DevShare = _buyDevFee.add(_sellDevFee);
        uint256 _GrowthShare = _buyGrowthFee.add(_sellGrowthFee);
        uint256 _WhaleShare = _buyWhalePoolFee.add(_sellWhalePoolFee);

        uint totalShares = totalBuy.add(totalSell);

        if(totalShares == 0) return;

        uint256 tokensForLP = contractBalance.mul(_liquidityShare).div(totalShares).div(2);
        uint256 tokensForSwap = contractBalance.sub(tokensForLP);

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

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

        uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHDev = amountReceived.mul(_DevShare).div(totalETHFee);
        uint256 amountETHGrowth = amountReceived.mul(_GrowthShare).div(totalETHFee);
        uint256 amountETHWhale = amountReceived.mul(_WhaleShare).div(totalETHFee);
        uint256 amountETHStaking = amountReceived.sub(amountETHLiquidity).sub(amountETHDev).sub(amountETHGrowth).sub(amountETHWhale);

        if(amountETHDev > 0) {
            uint split = amountETHDev / 3;
            transferToAddressETH(splitOneDev, split);
            transferToAddressETH(splitTwoDev, split);
            transferToAddressETH(splitThreeDev, split);
        }

        if(amountETHGrowth > 0)
            transferToAddressETH(growthWallet, amountETHGrowth);

        if(amountETHWhale > 0)
            transferToAddressETH(whaleWallet, amountETHWhale);

        if(amountETHStaking > 0)
            transferToAddressETH(stakingWallet, amountETHStaking);

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

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

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

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

        emit SwapTokensForETH(tokenAmount, path);
    }

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

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityReciever,
            block.timestamp
        );
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) {

                feeAmount = amount.mul(totalBuy).div(denominator);
            
            }
            else if(isMarketPair[recipient]) {
                
                feeAmount = amount.mul(totalSell).div(denominator);
                
            }     

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

            return amount.sub(feeAmount);
        }
        
    }

    //To Rescue Stucked Balance
    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    //To Rescue Stucked Tokens
    function rescueTokens(IERC20 adr,address recipient,uint amount) external onlyOwner {
        adr.transfer(recipient,amount);
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function setBuyFee(uint _newDev, uint _newLP , uint _newGrowth , uint _newWhale, uint _newStake) external onlyOwner {     
        _buyDevFee = _newDev;
        _buyLiquidityFee = _newLP;
        _buyGrowthFee = _newGrowth;
        _buyWhalePoolFee = _newWhale;
        _buyStakingPoolFee = _newStake;
        totalBuy = _buyDevFee.add(_buyLiquidityFee).add(_buyGrowthFee).add(_buyWhalePoolFee).add(_buyStakingPoolFee);
        require(totalBuy <= MAX_FEE,"Error: Max 20% Tax Limit Exceeded!");
    }

    function setSellFee(uint _newDev, uint _newLP , uint _newGrowth , uint _newWhale, uint _newStake) external onlyOwner {        
        _sellDevFee = _newDev;
        _sellLiquidityFee = _newLP;
        _sellGrowthFee = _newGrowth;
        _sellWhalePoolFee = _newWhale;
        _sellStakingPoolFee = _newStake;
        totalSell = _sellDevFee.add(_sellLiquidityFee).add(_sellGrowthFee).add(_sellWhalePoolFee).add(_sellStakingPoolFee);
        require(totalSell <= MAX_FEE,"Error: Max 20% Tax Limit Exceeded!");
    }

    function setDevsWallet(address _newOne, address _newTwo, address _newThree) external onlyOwner {
        splitOneDev = _newOne;
        splitTwoDev = _newTwo;
        splitThreeDev = _newThree;
    }

    function setGrowthWallets(address _newWallet) external onlyOwner {
        growthWallet = _newWallet;
    }
    
    function setWhaleWallets(address _newWallet) external onlyOwner {
        whaleWallet = _newWallet;
    }

    function setStakingWallets(address _newWallet) external onlyOwner {
        stakingWallet = _newWallet;
    }

    function setLiquidityWallets(address _newWallet) external onlyOwner {
        liquidityReciever = _newWallet;
    }

    function setExcludeFromFee(address _adr,bool _status) external onlyOwner {
        require(isExcludedFromFee[_adr] != _status,"Not Changed!!");
        isExcludedFromFee[_adr] = _status;
    }

    function ExcludeWalletLimit(address _adr,bool _status) external onlyOwner {
        require(isWalletLimitExempt[_adr] != _status,"Not Changed!!");
        isWalletLimitExempt[_adr] = _status;
    }

    function ExcludeTxLimit(address _adr,bool _status) external onlyOwner {
        require(isTxLimitExempt[_adr] != _status,"Not Changed!!");
        isTxLimitExempt[_adr] = _status;
    }

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

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

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }

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

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
    }

    function changeRouterVersion(address newRouterAddress) external onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); 

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

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
        }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = _uniswapV2Router; //Set new router address

        isMarketPair[address(uniswapPair)] = true;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ExcludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"growthWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renouncedOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"adr","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDev","type":"uint256"},{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newGrowth","type":"uint256"},{"internalType":"uint256","name":"_newWhale","type":"uint256"},{"internalType":"uint256","name":"_newStake","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOne","type":"address"},{"internalType":"address","name":"_newTwo","type":"address"},{"internalType":"address","name":"_newThree","type":"address"}],"name":"setDevsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setGrowthWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setLiquidityWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDev","type":"uint256"},{"internalType":"uint256","name":"_newLP","type":"uint256"},{"internalType":"uint256","name":"_newGrowth","type":"uint256"},{"internalType":"uint256","name":"_newWhale","type":"uint256"},{"internalType":"uint256","name":"_newStake","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setStakingWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setWhaleWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"splitOneDev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"splitThreeDev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"splitTwoDev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whaleWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600681526020017f5472616469780000000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000e36565b506040518060400160405280600281526020017f5458000000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000e36565b506008600360006101000a81548160ff021916908360ff160217905550739a0a4047fc5a342dadc8425471c289649c247d89600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073da1cb3df3dd7265c070f6e8bd2bd115241e4dffc600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ad3444832ff9b3b0276c1e31962f03e1a38a63a9600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073663ab4a26af101d22deba36f277e0c99258a89e1600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733bfafd3d788d3c9dde7a4082288ecbb95b45c8ca600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073da0723345bb5fc3a9dae15e4782d8fdbb8ef51a1600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e6010556014601155601e601255600a601355600a601455603c60155560146016556064601755600a601855600a601955600360009054906101000a900460ff16600a6200030a919062001198565b6305f5e1006200031b9190620012d5565b601c55600360009054906101000a900460ff16600a6200033c919062001198565b6127106200034b9190620012d5565b601d55620003866103e8620003726005601c5462000c8d60201b620030fe1790919060201c565b62000d1160201b620031791790919060201c565b601e55620003c16103e8620003ad6014601c5462000c8d60201b620030fe1790919060201c565b62000d1160201b620031791790919060201c565b601f556001602060006101000a81548160ff0219169083151502179055506001602060016101000a81548160ff0219169083151502179055506001602160156101000a81548160ff0219169083151502179055503480156200042257600080fd5b5060006200043562000d6360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200053357600080fd5b505afa15801562000548573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200056e919062000efd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620005d157600080fd5b505afa158015620005e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060c919062000efd565b6040518363ffffffff1660e01b81526004016200062b92919062000fda565b602060405180830381600087803b1580156200064657600080fd5b505af11580156200065b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000681919062000efd565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000b5b60145462000b4760135462000b3360125462000b1f60115460105462000d6b60201b620031c31790919060201c565b62000d6b60201b620031c31790919060201c565b62000d6b60201b620031c31790919060201c565b62000d6b60201b620031c31790919060201c565b601a8190555062000bd060195462000bbc60185462000ba860175462000b9460165460155462000d6b60201b620031c31790919060201c565b62000d6b60201b620031c31790919060201c565b62000d6b60201b620031c31790919060201c565b62000d6b60201b620031c31790919060201c565b601b81905550601c54600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601c5460405162000c7e91906200106f565b60405180910390a3506200152a565b60008083141562000ca2576000905062000d0b565b6000828462000cb29190620012d5565b905082848262000cc3919062001105565b1462000d06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cfd906200104d565b60405180910390fd5b809150505b92915050565b600062000d5b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000dce60201b60201c565b905092915050565b600033905090565b600080828462000d7c9190620010a8565b90508381101562000dc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000dbb906200102b565b60405180910390fd5b8091505092915050565b6000808311829062000e18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e0f919062001007565b60405180910390fd5b506000838562000e29919062001105565b9050809150509392505050565b82805462000e4490620013b7565b90600052602060002090601f01602090048101928262000e68576000855562000eb4565b82601f1062000e8357805160ff191683800117855562000eb4565b8280016001018555821562000eb4579182015b8281111562000eb357825182559160200191906001019062000e96565b5b50905062000ec3919062000ec7565b5090565b5b8082111562000ee257600081600090555060010162000ec8565b5090565b60008151905062000ef78162001510565b92915050565b60006020828403121562000f1057600080fd5b600062000f208482850162000ee6565b91505092915050565b62000f348162001336565b82525050565b600062000f47826200108c565b62000f53818562001097565b935062000f6581856020860162001381565b62000f70816200147a565b840191505092915050565b600062000f8a601b8362001097565b915062000f978262001498565b602082019050919050565b600062000fb160218362001097565b915062000fbe82620014c1565b604082019050919050565b62000fd4816200136a565b82525050565b600060408201905062000ff1600083018562000f29565b62001000602083018462000f29565b9392505050565b6000602082019050818103600083015262001023818462000f3a565b905092915050565b60006020820190508181036000830152620010468162000f7b565b9050919050565b60006020820190508181036000830152620010688162000fa2565b9050919050565b600060208201905062001086600083018462000fc9565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620010b5826200136a565b9150620010c2836200136a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620010fa57620010f9620013ed565b5b828201905092915050565b600062001112826200136a565b91506200111f836200136a565b9250826200113257620011316200141c565b5b828204905092915050565b6000808291508390505b60018511156200118f57808604811115620011675762001166620013ed565b5b6001851615620011775780820291505b808102905062001187856200148b565b945062001147565b94509492505050565b6000620011a5826200136a565b9150620011b28362001374565b9250620011e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620011e9565b905092915050565b600082620011fb5760019050620012ce565b816200120b5760009050620012ce565b81600181146200122457600281146200122f5762001265565b6001915050620012ce565b60ff841115620012445762001243620013ed565b5b8360020a9150848211156200125e576200125d620013ed565b5b50620012ce565b5060208310610133831016604e8410600b84101617156200129f5782820a905083811115620012995762001298620013ed565b5b620012ce565b620012ae84848460016200113d565b92509050818404811115620012c857620012c7620013ed565b5b81810290505b9392505050565b6000620012e2826200136a565b9150620012ef836200136a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200132b576200132a620013ed565b5b828202905092915050565b600062001343826200134a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015620013a157808201518184015260208101905062001384565b83811115620013b1576000848401525b50505050565b60006002820490506001821680620013d057607f821691505b60208210811415620013e757620013e66200144b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6200151b8162001336565b81146200152757600080fd5b50565b615a24806200153a6000396000f3fe6080604052600436106103855760003560e01c80637d1db4a5116101d1578063c16dd4a411610102578063d90d7186116100a0578063f2fde38b1161006f578063f2fde38b14610d31578063f872858a14610d5a578063f979a2d614610d85578063ffc0a03114610db05761038c565b8063d90d718614610c89578063dd62ed3e14610cb4578063e6b2603b14610cf1578063ee828db314610d085761038c565b8063c816841b116100dc578063c816841b14610bcd578063c867d60b14610bf8578063cea9d26f14610c35578063d2d7ad8314610c5e5761038c565b8063c16dd4a414610b50578063c49b9a8014610b79578063c64a054b14610ba25761038c565b806395d89b411161016f578063a71e061811610149578063a71e061814610a96578063a9059cbb14610abf578063af9549e014610afc578063bc063e1a14610b255761038c565b806395d89b4114610a0357806398e944c814610a2e578063a457c2d714610a595761038c565b8063807c2d9c116101ab578063807c2d9c146109455780638b42507f146109705780638da5cb5b146109ad5780638f32d59b146109d85761038c565b80637d1db4a5146108c85780637d385e18146108f35780638070a1c01461091c5761038c565b80633411466c116102b65780635342acb4116102545780635ea4a8dd116102235780635ea4a8dd14610810578063663736d01461083957806370a0823114610862578063728d41c91461089f5761038c565b80635342acb4146107425780635881f3ef1461077f5780635c85974f146107bc5780635e42358c146107e55761038c565b80633b97084a116102905780633b97084a146106885780633ecad271146106b15780634974d88f146106ee5780634a74bb02146107175761038c565b80633411466c146105f757806338ec0b1114610622578063395093511461064b5761038c565b806318160ddd1161032357806323b872dd116102fd57806323b872dd1461053957806327c8f835146105765780632b112e49146105a1578063313ce567146105cc5761038c565b806318160ddd146104cc5780631caf0f2a146104f757806320365d5f146105225761038c565b80630930907b1161035f5780630930907b14610410578063095ea7b31461043b57806313ea1d89146104785780631694505e146104a15761038c565b806306ee6ad81461039157806306fdde03146103bc57806307bb9c05146103e75761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610dd9565b6040516103b39190614f8b565b60405180910390f35b3480156103c857600080fd5b506103d1610dff565b6040516103de919061508f565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906149ab565b610e91565b005b34801561041c57600080fd5b50610425610fee565b6040516104329190614f8b565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190614a85565b610ff3565b60405161046f9190615059565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190614a49565b611011565b005b3480156104ad57600080fd5b506104b6611194565b6040516104c39190615074565b60405180910390f35b3480156104d857600080fd5b506104e16111ba565b6040516104ee9190615271565b60405180910390f35b34801561050357600080fd5b5061050c6111c4565b6040516105199190614f8b565b60405180910390f35b34801561052e57600080fd5b506105376111ea565b005b34801561054557600080fd5b50610560600480360381019061055b91906149fa565b61133f565b60405161056d9190615059565b60405180910390f35b34801561058257600080fd5b5061058b611419565b6040516105989190614f8b565b60405180910390f35b3480156105ad57600080fd5b506105b661141f565b6040516105c39190615271565b60405180910390f35b3480156105d857600080fd5b506105e1611460565b6040516105ee9190615316565b60405180910390f35b34801561060357600080fd5b5061060c611477565b6040516106199190614f8b565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190614a49565b61149d565b005b34801561065757600080fd5b50610672600480360381019061066d9190614a85565b611620565b60405161067f9190615059565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190614b62565b6116d3565b005b3480156106bd57600080fd5b506106d860048036038101906106d3919061491d565b611772565b6040516106e59190615059565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190614ac1565b611792565b005b34801561072357600080fd5b5061072c611844565b6040516107399190615059565b60405180910390f35b34801561074e57600080fd5b506107696004803603810190610764919061491d565b611857565b6040516107769190615059565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061491d565b611877565b6040516107b39190614f8b565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190614b62565b611d5b565b005b3480156107f157600080fd5b506107fa611dfa565b6040516108079190615059565b60405180910390f35b34801561081c57600080fd5b5061083760048036038101906108329190614bda565b611e0d565b005b34801561084557600080fd5b50610860600480360381019061085b919061491d565b611f6b565b005b34801561086e57600080fd5b506108896004803603810190610884919061491d565b612044565b6040516108969190615271565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c19190614b62565b61208d565b005b3480156108d457600080fd5b506108dd61212c565b6040516108ea9190615271565b60405180910390f35b3480156108ff57600080fd5b5061091a6004803603810190610915919061491d565b612132565b005b34801561092857600080fd5b50610943600480360381019061093e919061491d565b61220b565b005b34801561095157600080fd5b5061095a6122e4565b6040516109679190615271565b60405180910390f35b34801561097c57600080fd5b506109976004803603810190610992919061491d565b6122ea565b6040516109a49190615059565b60405180910390f35b3480156109b957600080fd5b506109c261230a565b6040516109cf9190614f8b565b60405180910390f35b3480156109e457600080fd5b506109ed612333565b6040516109fa9190615059565b60405180910390f35b348015610a0f57600080fd5b50610a1861238a565b604051610a25919061508f565b60405180910390f35b348015610a3a57600080fd5b50610a4361241c565b604051610a509190614f8b565b60405180910390f35b348015610a6557600080fd5b50610a806004803603810190610a7b9190614a85565b612442565b604051610a8d9190615059565b60405180910390f35b348015610aa257600080fd5b50610abd6004803603810190610ab89190614bda565b61250f565b005b348015610acb57600080fd5b50610ae66004803603810190610ae19190614a85565b61266d565b604051610af39190615059565b60405180910390f35b348015610b0857600080fd5b50610b236004803603810190610b1e9190614a49565b61268c565b005b348015610b3157600080fd5b50610b3a61280f565b604051610b479190615271565b60405180910390f35b348015610b5c57600080fd5b50610b776004803603810190610b729190614a49565b612814565b005b348015610b8557600080fd5b50610ba06004803603810190610b9b9190614ac1565b612904565b005b348015610bae57600080fd5b50610bb76129ed565b604051610bc49190614f8b565b60405180910390f35b348015610bd957600080fd5b50610be2612a13565b604051610bef9190614f8b565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a919061491d565b612a39565b604051610c2c9190615059565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190614b13565b612a59565b005b348015610c6a57600080fd5b50610c73612b81565b604051610c809190615271565b60405180910390f35b348015610c9557600080fd5b50610c9e612b87565b604051610cab9190614f8b565b60405180910390f35b348015610cc057600080fd5b50610cdb6004803603810190610cd6919061496f565b612bad565b604051610ce89190615271565b60405180910390f35b348015610cfd57600080fd5b50610d06612c34565b005b348015610d1457600080fd5b50610d2f6004803603810190610d2a9190614ac1565b612d78565b005b348015610d3d57600080fd5b50610d586004803603810190610d53919061491d565b612e2a565b005b348015610d6657600080fd5b50610d6f612fec565b604051610d7c9190615059565b60405180910390f35b348015610d9157600080fd5b50610d9a612fff565b604051610da79190614f8b565b60405180910390f35b348015610dbc57600080fd5b50610dd76004803603810190610dd2919061491d565b613025565b005b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054610e0e90615576565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3a90615576565b8015610e875780601f10610e5c57610100808354040283529160200191610e87565b820191906000526020600020905b815481529060010190602001808311610e6a57829003601f168201915b5050505050905090565b610e99613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d906151b1565b60405180910390fd5b82600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600081565b6000611007611000613221565b8484613229565b6001905092915050565b611019613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109d906151b1565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090615131565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601c54905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111f2613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906151b1565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061134c8484846133f4565b5061140e84611359613221565b611409856040518060600160405280602881526020016159a260289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113bf613221565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b613229565b600190509392505050565b61dead81565b600061145b61142e6000612044565b61144d61143c61dead612044565b601c54613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114a5613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906151b1565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90615131565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006116c961162d613221565b846116c485600b600061163e613221565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b613229565b6001905092915050565b6116db613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f906151b1565b60405180910390fd5b80601d8190555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b61179a613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906151b1565b60405180910390fd5b80602060016101000a81548160ff02191690831515021790555050565b602160159054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000611881613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611905906151b1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190614946565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f357600080fd5b505afa158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b9190614946565b6040518363ffffffff1660e01b8152600401611a48929190614fa6565b60206040518083038186803b158015611a6057600080fd5b505afa158015611a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a989190614946565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c59578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1557600080fd5b505afa158015611b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4d9190614946565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be79190614946565b6040518363ffffffff1660e01b8152600401611c04929190614fa6565b602060405180830381600087803b158015611c1e57600080fd5b505af1158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c569190614946565b91505b81602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d63613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de7906151b1565b60405180910390fd5b80601e8190555050565b602060009054906101000a900460ff1681565b611e15613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e99906151b1565b60405180910390fd5b8460158190555083601681905550826017819055508160188190555080601981905550611f18601954611f0a601854611efc601754611eee6016546015546131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b601b8190555060c8601b541115611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b906151f1565b60405180910390fd5b5050505050565b611f73613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff7906151b1565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612095613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612122576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612119906151b1565b60405180910390fd5b80601f8190555050565b601e5481565b61213a613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be906151b1565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612213613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612297906151b1565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601f5481565b600f6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60606002805461239990615576565b80601f01602080910402602001604051908101604052809291908181526020018280546123c590615576565b80156124125780601f106123e757610100808354040283529160200191612412565b820191906000526020600020905b8154815290600101906020018083116123f557829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061250561244f613221565b84612500856040518060600160405280602581526020016159ca60259139600b6000612479613221565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b613229565b6001905092915050565b612517613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b906151b1565b60405180910390fd5b846010819055508360118190555082601281905550816013819055508060148190555061261a60145461260c6013546125fe6012546125f06011546010546131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b601a8190555060c8601a541115612666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265d906151f1565b60405180910390fd5b5050505050565b600061268161267a613221565b84846133f4565b506001905092915050565b612694613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612721576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612718906151b1565b60405180910390fd5b801515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156127b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ab90615131565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60c881565b61281c613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a0906151b1565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61290c613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612990906151b1565b60405180910390fd5b80602160156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516129e29190615059565b60405180910390a150565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b612a61613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae5906151b1565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612b29929190614fcf565b602060405180830381600087803b158015612b4357600080fd5b505af1158015612b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7b9190614aea565b50505050565b601d5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612c3c613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc0906151b1565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612cef90614f76565b60006040518083038185875af1925050503d8060008114612d2c576040519150601f19603f3d011682016040523d82523d6000602084013e612d31565b606091505b5050905080612d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6c90615251565b60405180910390fd5b50565b612d80613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e04906151b1565b60405180910390fd5b80602060006101000a81548160ff02191690831515021790555050565b612e32613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb6906151b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f26906150b1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602060019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61302d613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b1906151b1565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156131115760009050613173565b6000828461311f9190615418565b905082848261312e91906153e7565b1461316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590615171565b60405180910390fd5b809150505b92915050565b60006131bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a65565b905092915050565b60008082846131d29190615391565b905083811015613217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320e906150f1565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329090615231565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613300906150d1565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516133e79190615271565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345c90615151565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156134d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134cc90615211565b60405180910390fd5b60008211613518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350f90615111565b60405180910390fd5b602160149054906101000a900460ff161561353f57613538848484613ac8565b90506139b0565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e35750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135fb5750602060009054906101000a900460ff165b1561364657601e54821115613645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161363c906151d1565b60405180910390fd5b5b600061365130612044565b90506000601d5482101590508080156136775750602160149054906101000a900460ff16155b80156136cd5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156136e55750602160159054906101000a900460ff165b156136f3576136f2613c9b565b5b61377c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006137cb87876140a3565b6137df576137da87878761420e565b6137e1565b845b9050602060019054906101000a900460ff1680156138495750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138ae57601f5461386c8261385e89612044565b6131c390919063ffffffff16565b11156138ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138a490615191565b60405180910390fd5b5b61390081600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139a09190615271565b60405180910390a3600193505050505b9392505050565b60008383111582906139ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f6919061508f565b60405180910390fd5b5060008385613a0e9190615472565b9050809150509392505050565b6000613a5d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139b7565b905092915050565b60008083118290613aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aa3919061508f565b60405180910390fd5b5060008385613abb91906153e7565b9050809150509392505050565b6000613b53826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613be882600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613c889190615271565b60405180910390a3600190509392505050565b6001602160146101000a81548160ff0219169083151502179055506000613cc130612044565b90506000811415613cd25750614086565b6000613ceb6016546011546131c390919063ffffffff16565b90506000613d066015546010546131c390919063ffffffff16565b90506000613d216017546012546131c390919063ffffffff16565b90506000613d3c6018546013546131c390919063ffffffff16565b90506000613d57601b54601a546131c390919063ffffffff16565b90506000811415613d6d57505050505050614086565b6000613da76002613d9984613d8b8a8c6130fe90919063ffffffff16565b61317990919063ffffffff16565b61317990919063ffffffff16565b90506000613dbe8289613a1b90919063ffffffff16565b90506000479050613dce82614433565b6000613de38247613a1b90919063ffffffff16565b90506000613e0d613dfe60028c61317990919063ffffffff16565b87613a1b90919063ffffffff16565b90506000613e496002613e3b84613e2d8f886130fe90919063ffffffff16565b61317990919063ffffffff16565b61317990919063ffffffff16565b90506000613e7283613e648d876130fe90919063ffffffff16565b61317990919063ffffffff16565b90506000613e9b84613e8d8d886130fe90919063ffffffff16565b61317990919063ffffffff16565b90506000613ec485613eb68d896130fe90919063ffffffff16565b61317990919063ffffffff16565b90506000613f1182613f0385613ef588613ee78b8e613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b90506000841115613fb3576000600385613f2b91906153e7565b9050613f59600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b613f85600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b613fb1600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b505b6000831115613fe957613fe8600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684614730565b5b600082111561401f5761401e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614730565b5b600081111561405557614054600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b5b600085118015614065575060008a115b15614075576140748a8661477b565b5b505050505050505050505050505050505b6000602160146101000a81548160ff021916908315150217905550565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806141465750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156141545760019050614208565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806141f55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156142035760009050614208565b600090505b92915050565b600080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142935761428c6103e861427e601a54866130fe90919063ffffffff16565b61317990919063ffffffff16565b9050614312565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143115761430e6103e8614300601b54866130fe90919063ffffffff16565b61317990919063ffffffff16565b90505b5b60008111156144165761436d81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161440d9190615271565b60405180910390a35b6144298184613a1b90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115614476577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156144a45781602001602082028036833780820191505090505b50905030816000815181106144e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561458457600080fd5b505afa158015614598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145bc9190614946565b816001815181106145f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061465d30602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613229565b602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016146c19594939291906152bc565b600060405180830381600087803b1580156146db57600080fd5b505af11580156146ef573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161472492919061528c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614776573d6000803e3d6000fd5b505050565b6147a830602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613229565b602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161483196959493929190614ff8565b6060604051808303818588803b15801561484a57600080fd5b505af115801561485e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906148839190614b8b565b5050505050565b60008135905061489981615945565b92915050565b6000815190506148ae81615945565b92915050565b6000813590506148c38161595c565b92915050565b6000815190506148d88161595c565b92915050565b6000813590506148ed81615973565b92915050565b6000813590506149028161598a565b92915050565b6000815190506149178161598a565b92915050565b60006020828403121561492f57600080fd5b600061493d8482850161488a565b91505092915050565b60006020828403121561495857600080fd5b60006149668482850161489f565b91505092915050565b6000806040838503121561498257600080fd5b60006149908582860161488a565b92505060206149a18582860161488a565b9150509250929050565b6000806000606084860312156149c057600080fd5b60006149ce8682870161488a565b93505060206149df8682870161488a565b92505060406149f08682870161488a565b9150509250925092565b600080600060608486031215614a0f57600080fd5b6000614a1d8682870161488a565b9350506020614a2e8682870161488a565b9250506040614a3f868287016148f3565b9150509250925092565b60008060408385031215614a5c57600080fd5b6000614a6a8582860161488a565b9250506020614a7b858286016148b4565b9150509250929050565b60008060408385031215614a9857600080fd5b6000614aa68582860161488a565b9250506020614ab7858286016148f3565b9150509250929050565b600060208284031215614ad357600080fd5b6000614ae1848285016148b4565b91505092915050565b600060208284031215614afc57600080fd5b6000614b0a848285016148c9565b91505092915050565b600080600060608486031215614b2857600080fd5b6000614b36868287016148de565b9350506020614b478682870161488a565b9250506040614b58868287016148f3565b9150509250925092565b600060208284031215614b7457600080fd5b6000614b82848285016148f3565b91505092915050565b600080600060608486031215614ba057600080fd5b6000614bae86828701614908565b9350506020614bbf86828701614908565b9250506040614bd086828701614908565b9150509250925092565b600080600080600060a08688031215614bf257600080fd5b6000614c00888289016148f3565b9550506020614c11888289016148f3565b9450506040614c22888289016148f3565b9350506060614c33888289016148f3565b9250506080614c44888289016148f3565b9150509295509295909350565b6000614c5d8383614c69565b60208301905092915050565b614c72816154a6565b82525050565b614c81816154a6565b82525050565b6000614c9282615341565b614c9c8185615364565b9350614ca783615331565b8060005b83811015614cd8578151614cbf8882614c51565b9750614cca83615357565b925050600181019050614cab565b5085935050505092915050565b614cee816154b8565b82525050565b614cfd8161550d565b82525050565b614d0c81615531565b82525050565b6000614d1d8261534c565b614d278185615380565b9350614d37818560208601615543565b614d4081615635565b840191505092915050565b6000614d58602683615380565b9150614d6382615646565b604082019050919050565b6000614d7b602283615380565b9150614d8682615695565b604082019050919050565b6000614d9e601b83615380565b9150614da9826156e4565b602082019050919050565b6000614dc1600e83615380565b9150614dcc8261570d565b602082019050919050565b6000614de4600d83615380565b9150614def82615736565b602082019050919050565b6000614e07600f83615380565b9150614e128261575f565b602082019050919050565b6000614e2a602183615380565b9150614e3582615788565b604082019050919050565b6000614e4d600a83615380565b9150614e58826157d7565b602082019050919050565b6000614e70602083615380565b9150614e7b82615800565b602082019050919050565b6000614e93600683615380565b9150614e9e82615829565b602082019050919050565b6000614eb6602283615380565b9150614ec182615852565b604082019050919050565b6000614ed9600d83615380565b9150614ee4826158a1565b602082019050919050565b6000614efc600083615375565b9150614f07826158ca565b600082019050919050565b6000614f1f602483615380565b9150614f2a826158cd565b604082019050919050565b6000614f42601483615380565b9150614f4d8261591c565b602082019050919050565b614f61816154f6565b82525050565b614f7081615500565b82525050565b6000614f8182614eef565b9150819050919050565b6000602082019050614fa06000830184614c78565b92915050565b6000604082019050614fbb6000830185614c78565b614fc86020830184614c78565b9392505050565b6000604082019050614fe46000830185614c78565b614ff16020830184614f58565b9392505050565b600060c08201905061500d6000830189614c78565b61501a6020830188614f58565b6150276040830187614d03565b6150346060830186614d03565b6150416080830185614c78565b61504e60a0830184614f58565b979650505050505050565b600060208201905061506e6000830184614ce5565b92915050565b60006020820190506150896000830184614cf4565b92915050565b600060208201905081810360008301526150a98184614d12565b905092915050565b600060208201905081810360008301526150ca81614d4b565b9050919050565b600060208201905081810360008301526150ea81614d6e565b9050919050565b6000602082019050818103600083015261510a81614d91565b9050919050565b6000602082019050818103600083015261512a81614db4565b9050919050565b6000602082019050818103600083015261514a81614dd7565b9050919050565b6000602082019050818103600083015261516a81614dfa565b9050919050565b6000602082019050818103600083015261518a81614e1d565b9050919050565b600060208201905081810360008301526151aa81614e40565b9050919050565b600060208201905081810360008301526151ca81614e63565b9050919050565b600060208201905081810360008301526151ea81614e86565b9050919050565b6000602082019050818103600083015261520a81614ea9565b9050919050565b6000602082019050818103600083015261522a81614ecc565b9050919050565b6000602082019050818103600083015261524a81614f12565b9050919050565b6000602082019050818103600083015261526a81614f35565b9050919050565b60006020820190506152866000830184614f58565b92915050565b60006040820190506152a16000830185614f58565b81810360208301526152b38184614c87565b90509392505050565b600060a0820190506152d16000830188614f58565b6152de6020830187614d03565b81810360408301526152f08186614c87565b90506152ff6060830185614c78565b61530c6080830184614f58565b9695505050505050565b600060208201905061532b6000830184614f67565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061539c826154f6565b91506153a7836154f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156153dc576153db6155a8565b5b828201905092915050565b60006153f2826154f6565b91506153fd836154f6565b92508261540d5761540c6155d7565b5b828204905092915050565b6000615423826154f6565b915061542e836154f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615467576154666155a8565b5b828202905092915050565b600061547d826154f6565b9150615488836154f6565b92508282101561549b5761549a6155a8565b5b828203905092915050565b60006154b1826154d6565b9050919050565b60008115159050919050565b60006154cf826154a6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155188261551f565b9050919050565b600061552a826154d6565b9050919050565b600061553c826154f6565b9050919050565b60005b83811015615561578082015181840152602081019050615546565b83811115615570576000848401525b50505050565b6000600282049050600182168061558e57607f821691505b602082108114156155a2576155a1615606565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b7f4572726f723a204d61782032302520546178204c696d6974204578636565646560008201527f6421000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b61594e816154a6565b811461595957600080fd5b50565b615965816154b8565b811461597057600080fd5b50565b61597c816154c4565b811461598757600080fd5b50565b615993816154f6565b811461599e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f1b288202993d9578ad5d9bf311d7574b54c807e6d87e3072e330e56a254af3f64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106103855760003560e01c80637d1db4a5116101d1578063c16dd4a411610102578063d90d7186116100a0578063f2fde38b1161006f578063f2fde38b14610d31578063f872858a14610d5a578063f979a2d614610d85578063ffc0a03114610db05761038c565b8063d90d718614610c89578063dd62ed3e14610cb4578063e6b2603b14610cf1578063ee828db314610d085761038c565b8063c816841b116100dc578063c816841b14610bcd578063c867d60b14610bf8578063cea9d26f14610c35578063d2d7ad8314610c5e5761038c565b8063c16dd4a414610b50578063c49b9a8014610b79578063c64a054b14610ba25761038c565b806395d89b411161016f578063a71e061811610149578063a71e061814610a96578063a9059cbb14610abf578063af9549e014610afc578063bc063e1a14610b255761038c565b806395d89b4114610a0357806398e944c814610a2e578063a457c2d714610a595761038c565b8063807c2d9c116101ab578063807c2d9c146109455780638b42507f146109705780638da5cb5b146109ad5780638f32d59b146109d85761038c565b80637d1db4a5146108c85780637d385e18146108f35780638070a1c01461091c5761038c565b80633411466c116102b65780635342acb4116102545780635ea4a8dd116102235780635ea4a8dd14610810578063663736d01461083957806370a0823114610862578063728d41c91461089f5761038c565b80635342acb4146107425780635881f3ef1461077f5780635c85974f146107bc5780635e42358c146107e55761038c565b80633b97084a116102905780633b97084a146106885780633ecad271146106b15780634974d88f146106ee5780634a74bb02146107175761038c565b80633411466c146105f757806338ec0b1114610622578063395093511461064b5761038c565b806318160ddd1161032357806323b872dd116102fd57806323b872dd1461053957806327c8f835146105765780632b112e49146105a1578063313ce567146105cc5761038c565b806318160ddd146104cc5780631caf0f2a146104f757806320365d5f146105225761038c565b80630930907b1161035f5780630930907b14610410578063095ea7b31461043b57806313ea1d89146104785780631694505e146104a15761038c565b806306ee6ad81461039157806306fdde03146103bc57806307bb9c05146103e75761038c565b3661038c57005b600080fd5b34801561039d57600080fd5b506103a6610dd9565b6040516103b39190614f8b565b60405180910390f35b3480156103c857600080fd5b506103d1610dff565b6040516103de919061508f565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906149ab565b610e91565b005b34801561041c57600080fd5b50610425610fee565b6040516104329190614f8b565b60405180910390f35b34801561044757600080fd5b50610462600480360381019061045d9190614a85565b610ff3565b60405161046f9190615059565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190614a49565b611011565b005b3480156104ad57600080fd5b506104b6611194565b6040516104c39190615074565b60405180910390f35b3480156104d857600080fd5b506104e16111ba565b6040516104ee9190615271565b60405180910390f35b34801561050357600080fd5b5061050c6111c4565b6040516105199190614f8b565b60405180910390f35b34801561052e57600080fd5b506105376111ea565b005b34801561054557600080fd5b50610560600480360381019061055b91906149fa565b61133f565b60405161056d9190615059565b60405180910390f35b34801561058257600080fd5b5061058b611419565b6040516105989190614f8b565b60405180910390f35b3480156105ad57600080fd5b506105b661141f565b6040516105c39190615271565b60405180910390f35b3480156105d857600080fd5b506105e1611460565b6040516105ee9190615316565b60405180910390f35b34801561060357600080fd5b5061060c611477565b6040516106199190614f8b565b60405180910390f35b34801561062e57600080fd5b5061064960048036038101906106449190614a49565b61149d565b005b34801561065757600080fd5b50610672600480360381019061066d9190614a85565b611620565b60405161067f9190615059565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa9190614b62565b6116d3565b005b3480156106bd57600080fd5b506106d860048036038101906106d3919061491d565b611772565b6040516106e59190615059565b60405180910390f35b3480156106fa57600080fd5b5061071560048036038101906107109190614ac1565b611792565b005b34801561072357600080fd5b5061072c611844565b6040516107399190615059565b60405180910390f35b34801561074e57600080fd5b506107696004803603810190610764919061491d565b611857565b6040516107769190615059565b60405180910390f35b34801561078b57600080fd5b506107a660048036038101906107a1919061491d565b611877565b6040516107b39190614f8b565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190614b62565b611d5b565b005b3480156107f157600080fd5b506107fa611dfa565b6040516108079190615059565b60405180910390f35b34801561081c57600080fd5b5061083760048036038101906108329190614bda565b611e0d565b005b34801561084557600080fd5b50610860600480360381019061085b919061491d565b611f6b565b005b34801561086e57600080fd5b506108896004803603810190610884919061491d565b612044565b6040516108969190615271565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c19190614b62565b61208d565b005b3480156108d457600080fd5b506108dd61212c565b6040516108ea9190615271565b60405180910390f35b3480156108ff57600080fd5b5061091a6004803603810190610915919061491d565b612132565b005b34801561092857600080fd5b50610943600480360381019061093e919061491d565b61220b565b005b34801561095157600080fd5b5061095a6122e4565b6040516109679190615271565b60405180910390f35b34801561097c57600080fd5b506109976004803603810190610992919061491d565b6122ea565b6040516109a49190615059565b60405180910390f35b3480156109b957600080fd5b506109c261230a565b6040516109cf9190614f8b565b60405180910390f35b3480156109e457600080fd5b506109ed612333565b6040516109fa9190615059565b60405180910390f35b348015610a0f57600080fd5b50610a1861238a565b604051610a25919061508f565b60405180910390f35b348015610a3a57600080fd5b50610a4361241c565b604051610a509190614f8b565b60405180910390f35b348015610a6557600080fd5b50610a806004803603810190610a7b9190614a85565b612442565b604051610a8d9190615059565b60405180910390f35b348015610aa257600080fd5b50610abd6004803603810190610ab89190614bda565b61250f565b005b348015610acb57600080fd5b50610ae66004803603810190610ae19190614a85565b61266d565b604051610af39190615059565b60405180910390f35b348015610b0857600080fd5b50610b236004803603810190610b1e9190614a49565b61268c565b005b348015610b3157600080fd5b50610b3a61280f565b604051610b479190615271565b60405180910390f35b348015610b5c57600080fd5b50610b776004803603810190610b729190614a49565b612814565b005b348015610b8557600080fd5b50610ba06004803603810190610b9b9190614ac1565b612904565b005b348015610bae57600080fd5b50610bb76129ed565b604051610bc49190614f8b565b60405180910390f35b348015610bd957600080fd5b50610be2612a13565b604051610bef9190614f8b565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a919061491d565b612a39565b604051610c2c9190615059565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190614b13565b612a59565b005b348015610c6a57600080fd5b50610c73612b81565b604051610c809190615271565b60405180910390f35b348015610c9557600080fd5b50610c9e612b87565b604051610cab9190614f8b565b60405180910390f35b348015610cc057600080fd5b50610cdb6004803603810190610cd6919061496f565b612bad565b604051610ce89190615271565b60405180910390f35b348015610cfd57600080fd5b50610d06612c34565b005b348015610d1457600080fd5b50610d2f6004803603810190610d2a9190614ac1565b612d78565b005b348015610d3d57600080fd5b50610d586004803603810190610d53919061491d565b612e2a565b005b348015610d6657600080fd5b50610d6f612fec565b604051610d7c9190615059565b60405180910390f35b348015610d9157600080fd5b50610d9a612fff565b604051610da79190614f8b565b60405180910390f35b348015610dbc57600080fd5b50610dd76004803603810190610dd2919061491d565b613025565b005b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054610e0e90615576565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3a90615576565b8015610e875780601f10610e5c57610100808354040283529160200191610e87565b820191906000526020600020905b815481529060010190602001808311610e6a57829003601f168201915b5050505050905090565b610e99613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d906151b1565b60405180910390fd5b82600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600081565b6000611007611000613221565b8484613229565b6001905092915050565b611019613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109d906151b1565b60405180910390fd5b801515600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113090615131565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601c54905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111f2613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611276906151b1565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061134c8484846133f4565b5061140e84611359613221565b611409856040518060600160405280602881526020016159a260289139600b60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113bf613221565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b613229565b600190509392505050565b61dead81565b600061145b61142e6000612044565b61144d61143c61dead612044565b601c54613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114a5613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906151b1565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90615131565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006116c961162d613221565b846116c485600b600061163e613221565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b613229565b6001905092915050565b6116db613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f906151b1565b60405180910390fd5b80601d8190555050565b600d6020528060005260406000206000915054906101000a900460ff1681565b61179a613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e906151b1565b60405180910390fd5b80602060016101000a81548160ff02191690831515021790555050565b602160159054906101000a900460ff1681565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000611881613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461190e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611905906151b1565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561195957600080fd5b505afa15801561196d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119919190614946565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119f357600080fd5b505afa158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b9190614946565b6040518363ffffffff1660e01b8152600401611a48929190614fa6565b60206040518083038186803b158015611a6057600080fd5b505afa158015611a74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a989190614946565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c59578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1557600080fd5b505afa158015611b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4d9190614946565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be79190614946565b6040518363ffffffff1660e01b8152600401611c04929190614fa6565b602060405180830381600087803b158015611c1e57600080fd5b505af1158015611c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c569190614946565b91505b81602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b611d63613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de7906151b1565b60405180910390fd5b80601e8190555050565b602060009054906101000a900460ff1681565b611e15613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e99906151b1565b60405180910390fd5b8460158190555083601681905550826017819055508160188190555080601981905550611f18601954611f0a601854611efc601754611eee6016546015546131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b601b8190555060c8601b541115611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b906151f1565b60405180910390fd5b5050505050565b611f73613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff7906151b1565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612095613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612122576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612119906151b1565b60405180910390fd5b80601f8190555050565b601e5481565b61213a613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be906151b1565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612213613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612297906151b1565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601f5481565b600f6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60606002805461239990615576565b80601f01602080910402602001604051908101604052809291908181526020018280546123c590615576565b80156124125780601f106123e757610100808354040283529160200191612412565b820191906000526020600020905b8154815290600101906020018083116123f557829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061250561244f613221565b84612500856040518060600160405280602581526020016159ca60259139600b6000612479613221565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b613229565b6001905092915050565b612517613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259b906151b1565b60405180910390fd5b846010819055508360118190555082601281905550816013819055508060148190555061261a60145461260c6013546125fe6012546125f06011546010546131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b6131c390919063ffffffff16565b601a8190555060c8601a541115612666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265d906151f1565b60405180910390fd5b5050505050565b600061268161267a613221565b84846133f4565b506001905092915050565b612694613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612721576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612718906151b1565b60405180910390fd5b801515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156127b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ab90615131565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60c881565b61281c613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a0906151b1565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61290c613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612990906151b1565b60405180910390fd5b80602160156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516129e29190615059565b60405180910390a150565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b612a61613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae5906151b1565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401612b29929190614fcf565b602060405180830381600087803b158015612b4357600080fd5b505af1158015612b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7b9190614aea565b50505050565b601d5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612c3c613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc0906151b1565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612cef90614f76565b60006040518083038185875af1925050503d8060008114612d2c576040519150601f19603f3d011682016040523d82523d6000602084013e612d31565b606091505b5050905080612d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6c90615251565b60405180910390fd5b50565b612d80613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e04906151b1565b60405180910390fd5b80602060006101000a81548160ff02191690831515021790555050565b612e32613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb6906151b1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f26906150b1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602060019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61302d613221565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b1906151b1565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156131115760009050613173565b6000828461311f9190615418565b905082848261312e91906153e7565b1461316e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316590615171565b60405180910390fd5b809150505b92915050565b60006131bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a65565b905092915050565b60008082846131d29190615391565b905083811015613217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320e906150f1565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613299576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329090615231565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613309576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613300906150d1565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516133e79190615271565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415613465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161345c90615151565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156134d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134cc90615211565b60405180910390fd5b60008211613518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350f90615111565b60405180910390fd5b602160149054906101000a900460ff161561353f57613538848484613ac8565b90506139b0565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e35750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135fb5750602060009054906101000a900460ff165b1561364657601e54821115613645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161363c906151d1565b60405180910390fd5b5b600061365130612044565b90506000601d5482101590508080156136775750602160149054906101000a900460ff16155b80156136cd5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156136e55750602160159054906101000a900460ff165b156136f3576136f2613c9b565b5b61377c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006137cb87876140a3565b6137df576137da87878761420e565b6137e1565b845b9050602060019054906101000a900460ff1680156138495750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156138ae57601f5461386c8261385e89612044565b6131c390919063ffffffff16565b11156138ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138a490615191565b60405180910390fd5b5b61390081600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139a09190615271565b60405180910390a3600193505050505b9392505050565b60008383111582906139ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f6919061508f565b60405180910390fd5b5060008385613a0e9190615472565b9050809150509392505050565b6000613a5d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506139b7565b905092915050565b60008083118290613aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aa3919061508f565b60405180910390fd5b5060008385613abb91906153e7565b9050809150509392505050565b6000613b53826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546139b79092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613be882600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613c889190615271565b60405180910390a3600190509392505050565b6001602160146101000a81548160ff0219169083151502179055506000613cc130612044565b90506000811415613cd25750614086565b6000613ceb6016546011546131c390919063ffffffff16565b90506000613d066015546010546131c390919063ffffffff16565b90506000613d216017546012546131c390919063ffffffff16565b90506000613d3c6018546013546131c390919063ffffffff16565b90506000613d57601b54601a546131c390919063ffffffff16565b90506000811415613d6d57505050505050614086565b6000613da76002613d9984613d8b8a8c6130fe90919063ffffffff16565b61317990919063ffffffff16565b61317990919063ffffffff16565b90506000613dbe8289613a1b90919063ffffffff16565b90506000479050613dce82614433565b6000613de38247613a1b90919063ffffffff16565b90506000613e0d613dfe60028c61317990919063ffffffff16565b87613a1b90919063ffffffff16565b90506000613e496002613e3b84613e2d8f886130fe90919063ffffffff16565b61317990919063ffffffff16565b61317990919063ffffffff16565b90506000613e7283613e648d876130fe90919063ffffffff16565b61317990919063ffffffff16565b90506000613e9b84613e8d8d886130fe90919063ffffffff16565b61317990919063ffffffff16565b90506000613ec485613eb68d896130fe90919063ffffffff16565b61317990919063ffffffff16565b90506000613f1182613f0385613ef588613ee78b8e613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b613a1b90919063ffffffff16565b90506000841115613fb3576000600385613f2b91906153e7565b9050613f59600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b613f85600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b613fb1600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b505b6000831115613fe957613fe8600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684614730565b5b600082111561401f5761401e600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683614730565b5b600081111561405557614054600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682614730565b5b600085118015614065575060008a115b15614075576140748a8661477b565b5b505050505050505050505050505050505b6000602160146101000a81548160ff021916908315150217905550565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806141465750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156141545760019050614208565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806141f55750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156142035760009050614208565b600090505b92915050565b600080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156142935761428c6103e861427e601a54866130fe90919063ffffffff16565b61317990919063ffffffff16565b9050614312565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156143115761430e6103e8614300601b54866130fe90919063ffffffff16565b61317990919063ffffffff16565b90505b5b60008111156144165761436d81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c390919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161440d9190615271565b60405180910390a35b6144298184613a1b90919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115614476577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156144a45781602001602082028036833780820191505090505b50905030816000815181106144e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561458457600080fd5b505afa158015614598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145bc9190614946565b816001815181106145f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061465d30602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613229565b602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016146c19594939291906152bc565b600060405180830381600087803b1580156146db57600080fd5b505af11580156146ef573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161472492919061528c565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614776573d6000803e3d6000fd5b505050565b6147a830602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613229565b602060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161483196959493929190614ff8565b6060604051808303818588803b15801561484a57600080fd5b505af115801561485e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906148839190614b8b565b5050505050565b60008135905061489981615945565b92915050565b6000815190506148ae81615945565b92915050565b6000813590506148c38161595c565b92915050565b6000815190506148d88161595c565b92915050565b6000813590506148ed81615973565b92915050565b6000813590506149028161598a565b92915050565b6000815190506149178161598a565b92915050565b60006020828403121561492f57600080fd5b600061493d8482850161488a565b91505092915050565b60006020828403121561495857600080fd5b60006149668482850161489f565b91505092915050565b6000806040838503121561498257600080fd5b60006149908582860161488a565b92505060206149a18582860161488a565b9150509250929050565b6000806000606084860312156149c057600080fd5b60006149ce8682870161488a565b93505060206149df8682870161488a565b92505060406149f08682870161488a565b9150509250925092565b600080600060608486031215614a0f57600080fd5b6000614a1d8682870161488a565b9350506020614a2e8682870161488a565b9250506040614a3f868287016148f3565b9150509250925092565b60008060408385031215614a5c57600080fd5b6000614a6a8582860161488a565b9250506020614a7b858286016148b4565b9150509250929050565b60008060408385031215614a9857600080fd5b6000614aa68582860161488a565b9250506020614ab7858286016148f3565b9150509250929050565b600060208284031215614ad357600080fd5b6000614ae1848285016148b4565b91505092915050565b600060208284031215614afc57600080fd5b6000614b0a848285016148c9565b91505092915050565b600080600060608486031215614b2857600080fd5b6000614b36868287016148de565b9350506020614b478682870161488a565b9250506040614b58868287016148f3565b9150509250925092565b600060208284031215614b7457600080fd5b6000614b82848285016148f3565b91505092915050565b600080600060608486031215614ba057600080fd5b6000614bae86828701614908565b9350506020614bbf86828701614908565b9250506040614bd086828701614908565b9150509250925092565b600080600080600060a08688031215614bf257600080fd5b6000614c00888289016148f3565b9550506020614c11888289016148f3565b9450506040614c22888289016148f3565b9350506060614c33888289016148f3565b9250506080614c44888289016148f3565b9150509295509295909350565b6000614c5d8383614c69565b60208301905092915050565b614c72816154a6565b82525050565b614c81816154a6565b82525050565b6000614c9282615341565b614c9c8185615364565b9350614ca783615331565b8060005b83811015614cd8578151614cbf8882614c51565b9750614cca83615357565b925050600181019050614cab565b5085935050505092915050565b614cee816154b8565b82525050565b614cfd8161550d565b82525050565b614d0c81615531565b82525050565b6000614d1d8261534c565b614d278185615380565b9350614d37818560208601615543565b614d4081615635565b840191505092915050565b6000614d58602683615380565b9150614d6382615646565b604082019050919050565b6000614d7b602283615380565b9150614d8682615695565b604082019050919050565b6000614d9e601b83615380565b9150614da9826156e4565b602082019050919050565b6000614dc1600e83615380565b9150614dcc8261570d565b602082019050919050565b6000614de4600d83615380565b9150614def82615736565b602082019050919050565b6000614e07600f83615380565b9150614e128261575f565b602082019050919050565b6000614e2a602183615380565b9150614e3582615788565b604082019050919050565b6000614e4d600a83615380565b9150614e58826157d7565b602082019050919050565b6000614e70602083615380565b9150614e7b82615800565b602082019050919050565b6000614e93600683615380565b9150614e9e82615829565b602082019050919050565b6000614eb6602283615380565b9150614ec182615852565b604082019050919050565b6000614ed9600d83615380565b9150614ee4826158a1565b602082019050919050565b6000614efc600083615375565b9150614f07826158ca565b600082019050919050565b6000614f1f602483615380565b9150614f2a826158cd565b604082019050919050565b6000614f42601483615380565b9150614f4d8261591c565b602082019050919050565b614f61816154f6565b82525050565b614f7081615500565b82525050565b6000614f8182614eef565b9150819050919050565b6000602082019050614fa06000830184614c78565b92915050565b6000604082019050614fbb6000830185614c78565b614fc86020830184614c78565b9392505050565b6000604082019050614fe46000830185614c78565b614ff16020830184614f58565b9392505050565b600060c08201905061500d6000830189614c78565b61501a6020830188614f58565b6150276040830187614d03565b6150346060830186614d03565b6150416080830185614c78565b61504e60a0830184614f58565b979650505050505050565b600060208201905061506e6000830184614ce5565b92915050565b60006020820190506150896000830184614cf4565b92915050565b600060208201905081810360008301526150a98184614d12565b905092915050565b600060208201905081810360008301526150ca81614d4b565b9050919050565b600060208201905081810360008301526150ea81614d6e565b9050919050565b6000602082019050818103600083015261510a81614d91565b9050919050565b6000602082019050818103600083015261512a81614db4565b9050919050565b6000602082019050818103600083015261514a81614dd7565b9050919050565b6000602082019050818103600083015261516a81614dfa565b9050919050565b6000602082019050818103600083015261518a81614e1d565b9050919050565b600060208201905081810360008301526151aa81614e40565b9050919050565b600060208201905081810360008301526151ca81614e63565b9050919050565b600060208201905081810360008301526151ea81614e86565b9050919050565b6000602082019050818103600083015261520a81614ea9565b9050919050565b6000602082019050818103600083015261522a81614ecc565b9050919050565b6000602082019050818103600083015261524a81614f12565b9050919050565b6000602082019050818103600083015261526a81614f35565b9050919050565b60006020820190506152866000830184614f58565b92915050565b60006040820190506152a16000830185614f58565b81810360208301526152b38184614c87565b90509392505050565b600060a0820190506152d16000830188614f58565b6152de6020830187614d03565b81810360408301526152f08186614c87565b90506152ff6060830185614c78565b61530c6080830184614f58565b9695505050505050565b600060208201905061532b6000830184614f67565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061539c826154f6565b91506153a7836154f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156153dc576153db6155a8565b5b828201905092915050565b60006153f2826154f6565b91506153fd836154f6565b92508261540d5761540c6155d7565b5b828204905092915050565b6000615423826154f6565b915061542e836154f6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615467576154666155a8565b5b828202905092915050565b600061547d826154f6565b9150615488836154f6565b92508282101561549b5761549a6155a8565b5b828203905092915050565b60006154b1826154d6565b9050919050565b60008115159050919050565b60006154cf826154a6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006155188261551f565b9050919050565b600061552a826154d6565b9050919050565b600061553c826154f6565b9050919050565b60005b83811015615561578082015181840152602081019050615546565b83811115615570576000848401525b50505050565b6000600282049050600182168061558e57607f821691505b602082108114156155a2576155a1615606565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f496e76616c696420416d6f756e74000000000000000000000000000000000000600082015250565b7f4e6f74204368616e676564212100000000000000000000000000000000000000600082015250565b7f45524332303a66726f6d207a65726f0000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782057616c6c657400000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d61782054780000000000000000000000000000000000000000000000000000600082015250565b7f4572726f723a204d61782032302520546178204c696d6974204578636565646560008201527f6421000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a746f207a65726f00000000000000000000000000000000000000600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b61594e816154a6565b811461595957600080fd5b50565b615965816154b8565b811461597057600080fd5b50565b61597c816154c4565b811461598757600080fd5b50565b615993816154f6565b811461599e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f1b288202993d9578ad5d9bf311d7574b54c807e6d87e3072e330e56a254af3f64736f6c63430008040033

Deployed Bytecode Sourcemap

4408:17201:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5008:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8359:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18891:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5216:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9529:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19993:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6551:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8636:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4613:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2911:231;;;;;;;;;;;;;:::i;:::-;;10480:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5129:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10047:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8545:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4851:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19785:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9026:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20189:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5493:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17730:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6666:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5436:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20852:750;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20435:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6468:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18359:524;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19102:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8744:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20321:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6301:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19338:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19223:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6386:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5604:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2586:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2811:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8450:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5088:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9252:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17843:508;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10305:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19582:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5661:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20725:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20544:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4769:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6599:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5545:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17484:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6230:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4930:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8875:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17266:178;;;;;;;;;;;;;:::i;:::-;;17624:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3150:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6507:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4691:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19457:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5008:73;;;;;;;;;;;;;:::o;8359:83::-;8396:13;8429:5;8422:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8359:83;:::o;18891:203::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19011:7:::1;18997:11;;:21;;;;;;;;;;;;;;;;;;19043:7;19029:11;;:21;;;;;;;;;;;;;;;;;;19077:9;19061:13;;:25;;;;;;;;;;;;;;;;;;18891:203:::0;;;:::o;5216:80::-;5254:42;5216:80;:::o;9529:161::-;9604:4;9621:39;9630:12;:10;:12::i;:::-;9644:7;9653:6;9621:8;:39::i;:::-;9678:4;9671:11;;9529:161;;;;:::o;19993:188::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20107:7:::1;20082:32;;:15;:21;20098:4;20082:21;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;20074:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20166:7;20142:15;:21;20158:4;20142:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19993:188:::0;;:::o;6551:41::-;;;;;;;;;;;;;:::o;8636:100::-;8689:7;8716:12;;8709:19;;8636:100;:::o;4613:71::-;;;;;;;;;;;;;:::o;2911:231::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3019:42:::1;2982:81;;3003:6;::::0;::::1;;;;;;;;2982:81;;;;;;;;;;;;3091:42;3074:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;2911:231::o:0;10480:313::-;10578:4;10595:36;10605:6;10613:9;10624:6;10595:9;:36::i;:::-;;10642:121;10651:6;10659:12;:10;:12::i;:::-;10673:89;10711:6;10673:89;;;;;;;;;;;;;;;;;:11;:19;10685:6;10673:19;;;;;;;;;;;;;;;:33;10693:12;:10;:12::i;:::-;10673:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10642:8;:121::i;:::-;10781:4;10774:11;;10480:313;;;;;:::o;5129:80::-;5167:42;5129:80;:::o;10047:156::-;10100:7;10127:68;10172:22;5254:42;10172:9;:22::i;:::-;10127:40;10144:22;5167:42;10144:9;:22::i;:::-;10127:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;10120:75;;10047:156;:::o;8545:83::-;8586:5;8611:9;;;;;;;;;;;8604:16;;8545:83;:::o;4851:72::-;;;;;;;;;;;;;:::o;19785:200::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19907:7:::1;19878:36;;:19;:25;19898:4;19878:25;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;19870:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;19970:7;19942:19;:25;19962:4;19942:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19785:200:::0;;:::o;9026:218::-;9114:4;9131:83;9140:12;:10;:12::i;:::-;9154:7;9163:50;9202:10;9163:11;:25;9175:12;:10;:12::i;:::-;9163:25;;;;;;;;;;;;;;;:34;9189:7;9163:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9131:8;:83::i;:::-;9232:4;9225:11;;9026:218;;;;:::o;20189:124::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20297:8:::1;20271:23;:34;;;;20189:124:::0;:::o;5493:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17730:105::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17820:7:::1;17801:16;;:26;;;;;;;;;;;;;;;;;;17730:105:::0;:::o;6666:40::-;;;;;;;;;;;;;:::o;5436:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20852:750::-;20934:22;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20971:35:::1;21028:16;20971:74;;21094:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21076:53;;;21138:4;21145:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21076:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21059:110;;21211:1;21185:28;;:14;:28;;;21182:225;;;21299:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21281:74;;;21364:4;21371:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21281:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21264:131;;21182:225;21433:14;21419:11;;:28;;;;;;;;;;;;;;;;;;21499:16;21481:15;;:34;;;;;;;;;;;;;;;;;;21590:4;21553:12;:34;21574:11;;;;;;;;;;;21553:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;2790:1;20852:750:::0;;;:::o;20435:101::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20520:8:::1;20505:12;:23;;;;20435:101:::0;:::o;6468:32::-;;;;;;;;;;;;;:::o;18359:524::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18509:7:::1;18495:11;:21;;;;18547:6;18527:17;:26;;;;18581:10;18564:14;:27;;;;18622:9;18602:17;:29;;;;18664:9;18642:19;:31;;;;18696:102;18778:19;;18696:77;18755:17;;18696:54;18735:14;;18696:34;18712:17;;18696:11;;:15;;:34;;;;:::i;:::-;:38;;:54;;;;:::i;:::-;:58;;:77;;;;:::i;:::-;:81;;:102;;;;:::i;:::-;18684:9;:114;;;;5695:3;18817:9;;:20;;18809:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18359:524:::0;;;;;:::o;19102:109::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19193:10:::1;19178:12;;:25;;;;;;;;;;;;;;;;;;19102:109:::0;:::o;8744:123::-;8810:7;8836:9;:18;8846:7;8836:18;;;;;;;;;;;;;;;;8829:25;;8744:123;;;:::o;20321:106::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20411:8:::1;20398:10;:21;;;;20321:106:::0;:::o;6301:67::-;;;;:::o;19338:111::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19431:10:::1;19415:13;;:26;;;;;;;;;;;;;;;;;;19338:111:::0;:::o;19223:107::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19312:10:::1;19298:11;;:24;;;;;;;;;;;;;;;;;;19223:107:::0;:::o;6386:65::-;;;;:::o;5604:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2586:79::-;2624:7;2651:6;;;;;;;;;;;2644:13;;2586:79;:::o;2811:92::-;2851:4;2889:6;;;;;;;;;;;2875:20;;:10;:20;;;2868:27;;2811:92;:::o;8450:87::-;8489:13;8522:7;8515:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:87;:::o;5088:32::-;;;;;;;;;;;;;:::o;9252:269::-;9345:4;9362:129;9371:12;:10;:12::i;:::-;9385:7;9394:96;9433:15;9394:96;;;;;;;;;;;;;;;;;:11;:25;9406:12;:10;:12::i;:::-;9394:25;;;;;;;;;;;;;;;:34;9420:7;9394:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9362:8;:129::i;:::-;9509:4;9502:11;;9252:269;;;;:::o;17843:508::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17988:7:::1;17975:10;:20;;;;18025:6;18006:16;:25;;;;18058:10;18042:13;:26;;;;18098:9;18079:16;:28;;;;18139:9;18118:18;:30;;;;18170:97;18248:18;;18170:73;18226:16;;18170:51;18207:13;;18170:32;18185:16;;18170:10;;:14;;:32;;;;:::i;:::-;:36;;:51;;;;:::i;:::-;:55;;:73;;;;:::i;:::-;:77;;:97;;;;:::i;:::-;18159:8;:108;;;;5695:3;18286:8;;:19;;18278:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17843:508:::0;;;;;:::o;10305:167::-;10383:4;10400:42;10410:12;:10;:12::i;:::-;10424:9;10435:6;10400:9;:42::i;:::-;;10460:4;10453:11;;10305:167;;;;:::o;19582:195::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19701:7:::1;19674:34;;:17;:23;19692:4;19674:23;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;19666:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;19762:7;19736:17;:23;19754:4;19736:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19582:195:::0;;:::o;5661:37::-;5695:3;5661:37;:::o;20725:119::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20829:7:::1;20807:12;:19;20820:5;20807:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20725:119:::0;;:::o;20544:173::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20647:8:::1;20623:21;;:32;;;;;;;;;;;;;;;;;;20671:38;20700:8;20671:38;;;;;;:::i;:::-;;;;;;;;20544:173:::0;:::o;4769:73::-;;;;;;;;;;;;;:::o;6599:26::-;;;;;;;;;;;;;:::o;5545:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;17484:132::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17578:3:::1;:12;;;17591:9;17601:6;17578:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17484:132:::0;;;:::o;6230:62::-;;;;:::o;4930:71::-;;;;;;;;;;;;;:::o;8875:143::-;8956:7;8983:11;:18;8995:5;8983:18;;;;;;;;;;;;;;;:27;9002:7;8983:27;;;;;;;;;;;;;;;;8976:34;;8875:143;;;;:::o;17266:178::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17321:7:::1;17341:10;17333:24;;17365:21;17333:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17320:71;;;17410:2;17402:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;2790:1;17266:178::o:0;17624:98::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17707:7:::1;17691:13;;:23;;;;;;;;;;;;;;;;;;17624:98:::0;:::o;3150:244::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3259:1:::1;3239:22;;:8;:22;;;;3231:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3349:8;3320:38;;3341:6;::::0;::::1;;;;;;;;3320:38;;;;;;;;;;;;3378:8;3369:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3150:244:::0;:::o;6507:35::-;;;;;;;;;;;;;:::o;4691:71::-;;;;;;;;;;;;;:::o;19457:117::-;2730:12;:10;:12::i;:::-;2720:22;;:6;;;;;;;;;;:22;;;2712:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19556:10:::1;19536:17;;:30;;;;;;;;;;;;;;;;;;19457:117:::0;:::o;1579:250::-;1637:7;1666:1;1661;:6;1657:47;;;1691:1;1684:8;;;;1657:47;1716:9;1732:1;1728;:5;;;;:::i;:::-;1716:17;;1761:1;1756;1752;:5;;;;:::i;:::-;:10;1744:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1820:1;1813:8;;;1579:250;;;;;:::o;1837:132::-;1895:7;1922:39;1926:1;1929;1922:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1915:46;;1837:132;;;;:::o;1046:181::-;1104:7;1124:9;1140:1;1136;:5;;;;:::i;:::-;1124:17;;1165:1;1160;:6;;1152:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1218:1;1211:8;;;1046:181;;;;:::o;97:115::-;150:15;193:10;178:26;;97:115;:::o;9698:337::-;9808:1;9791:19;;:5;:19;;;;9783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9889:1;9870:21;;:7;:21;;;;9862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9973:6;9943:11;:18;9955:5;9943:18;;;;;;;;;;;;;;;:27;9962:7;9943:27;;;;;;;;;;;;;;;:36;;;;10011:7;9995:32;;10004:5;9995:32;;;10020:6;9995:32;;;;;;:::i;:::-;;;;;;;;9698:337;;;:::o;10801:1503::-;10888:4;10933:1;10915:20;;:6;:20;;;;10907:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10995:1;10974:23;;:9;:23;;;;10966:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11043:1;11034:6;:10;11026:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;11079:16;;;;;;;;;;;11076:1221;;;11129:41;11144:6;11152:9;11163:6;11129:14;:41::i;:::-;11122:48;;;;11076:1221;11228:15;:23;11244:6;11228:23;;;;;;;;;;;;;;;;;;;;;;;;;11227:24;:55;;;;;11256:15;:26;11272:9;11256:26;;;;;;;;;;;;;;;;;;;;;;;;;11255:27;11227:55;:72;;;;;11286:13;;;;;;;;;;;11227:72;11224:152;;;11338:12;;11328:6;:22;;11320:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;11224:152;11393:28;11424:24;11442:4;11424:9;:24::i;:::-;11393:55;;11463:28;11518:23;;11494:20;:47;;11463:78;;11574:23;:44;;;;;11602:16;;;;;;;;;;;11601:17;11574:44;:69;;;;;11623:12;:20;11636:6;11623:20;;;;;;;;;;;;;;;;;;;;;;;;;11622:21;11574:69;:94;;;;;11647:21;;;;;;;;;;;11574:94;11570:165;;;11703:16;:14;:16::i;:::-;11570:165;11771:53;11793:6;11771:53;;;;;;;;;;;;;;;;;:9;:17;11781:6;11771:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11751:9;:17;11761:6;11751:17;;;;;;;;;;;;;;;:73;;;;11841:19;11863:31;11877:6;11884:9;11863:13;:31::i;:::-;:77;;11906:34;11914:6;11922:9;11933:6;11906:7;:34::i;:::-;11863:77;;;11897:6;11863:77;11841:99;;11960:16;;;;;;;;;;;:51;;;;;11981:19;:30;12001:9;11981:30;;;;;;;;;;;;;;;;;;;;;;;;;11980:31;11960:51;11957:164;;;12081:10;;12040:37;12065:11;12040:20;12050:9;12040;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;12032:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11957:164;12160:37;12185:11;12160:9;:20;12170:9;12160:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;12137:9;:20;12147:9;12137:20;;;;;;;;;;;;;;;:60;;;;12236:9;12219:40;;12228:6;12219:40;;;12247:11;12219:40;;;;;;:::i;:::-;;;;;;;;12281:4;12274:11;;;;;10801:1503;;;;;;:::o;1379:192::-;1465:7;1498:1;1493;:6;;1501:12;1485:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1525:9;1541:1;1537;:5;;;;:::i;:::-;1525:17;;1562:1;1555:8;;;1379:192;;;;;:::o;1235:136::-;1293:7;1320:43;1324:1;1327;1320:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1313:50;;1235:136;;;;:::o;1977:278::-;2063:7;2095:1;2091;:5;2098:12;2083:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2122:9;2138:1;2134;:5;;;;:::i;:::-;2122:17;;2246:1;2239:8;;;1977:278;;;;;:::o;12312:330::-;12405:4;12442:53;12464:6;12442:53;;;;;;;;;;;;;;;;;:9;:17;12452:6;12442:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12422:9;:17;12432:6;12422:17;;;;;;;;;;;;;;;:73;;;;12529:32;12554:6;12529:9;:20;12539:9;12529:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12506:9;:20;12516:9;12506:20;;;;;;;;;;;;;;;:55;;;;12594:9;12577:35;;12586:6;12577:35;;;12605:6;12577:35;;;;;;:::i;:::-;;;;;;;;12630:4;12623:11;;12312:330;;;;;:::o;12650:2115::-;7056:4;7037:16;;:23;;;;;;;;;;;;;;;;;;12717::::1;12743:24;12761:4;12743:9;:24::i;:::-;12717:50;;12802:1;12783:15;:20;12780:32;;;12805:7;;;12780:32;12824:23;12850:39;12871:17;;12850:16;;:20;;:39;;;;:::i;:::-;12824:65;;12900:17;12920:27;12935:11;;12920:10;;:14;;:27;;;;:::i;:::-;12900:47;;12958:20;12981:33;12999:14;;12981:13;;:17;;:33;;;;:::i;:::-;12958:56;;13025:19;13047:39;13068:17;;13047:16;;:20;;:39;;;;:::i;:::-;13025:61;;13099:16;13118:23;13131:9;;13118:8;;:12;;:23;;;;:::i;:::-;13099:42;;13172:1;13157:11;:16;13154:28;;;13175:7;;;;;;;;13154:28;13194:19;13216:60;13274:1;13216:53;13257:11;13216:36;13236:15;13216;:19;;:36;;;;:::i;:::-;:40;;:53;;;;:::i;:::-;:57;;:60;;;;:::i;:::-;13194:82;;13287:21;13311:32;13331:11;13311:15;:19;;:32;;;;:::i;:::-;13287:56;;13356:22;13381:21;13356:46;;13413:31;13430:13;13413:16;:31::i;:::-;13455:22;13480:41;13506:14;13480:21;:25;;:41;;;;:::i;:::-;13455:66;;13534:19;13556:39;13572:22;13592:1;13572:15;:19;;:22;;;;:::i;:::-;13556:11;:15;;:39;;;;:::i;:::-;13534:61;;13608:26;13637:59;13694:1;13637:52;13677:11;13637:35;13656:15;13637:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13608:88;;13707:20;13730:46;13764:11;13730:29;13749:9;13730:14;:18;;:29;;;;:::i;:::-;:33;;:46;;;;:::i;:::-;13707:69;;13787:23;13813:49;13850:11;13813:32;13832:12;13813:14;:18;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;13787:75;;13873:22;13898:48;13934:11;13898:31;13917:11;13898:14;:18;;:31;;;;:::i;:::-;:35;;:48;;;;:::i;:::-;13873:73;;13957:24;13984:97;14066:14;13984:77;14045:15;13984:56;14027:12;13984:38;14003:18;13984:14;:18;;:38;;;;:::i;:::-;:42;;:56;;;;:::i;:::-;:60;;:77;;;;:::i;:::-;:81;;:97;;;;:::i;:::-;13957:124;;14112:1;14097:12;:16;14094:244;;;14130:10;14158:1;14143:12;:16;;;;:::i;:::-;14130:29;;14174:40;14195:11;;;;;;;;;;;14208:5;14174:20;:40::i;:::-;14229;14250:11;;;;;;;;;;;14263:5;14229:20;:40::i;:::-;14284:42;14305:13;;;;;;;;;;;14320:5;14284:20;:42::i;:::-;14094:244;;14371:1;14353:15;:19;14350:88;;;14387:51;14408:12;;;;;;;;;;;14422:15;14387:20;:51::i;:::-;14350:88;14471:1;14454:14;:18;14451:85;;;14487:49;14508:11;;;;;;;;;;;14521:14;14487:20;:49::i;:::-;14451:85;14571:1;14552:16;:20;14549:91;;;14587:53;14608:13;;;;;;;;;;;14623:16;14587:20;:53::i;:::-;14549:91;14677:1;14656:18;:22;:41;;;;;14696:1;14682:11;:15;14656:41;14653:104;;;14712:45;14725:11;14738:18;14712:12;:45::i;:::-;14653:104;7071:1;;;;;;;;;;;;;;;;;7102:5:::0;7083:16;;:24;;;;;;;;;;;;;;;;;;12650:2115::o;16109:366::-;16190:4;16210:17;:25;16228:6;16210:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;16239:17;:28;16257:9;16239:28;;;;;;;;;;;;;;;;;;;;;;;;;16210:57;16207:261;;;16291:4;16284:11;;;;16207:261;16326:12;:20;16339:6;16326:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;16350:12;:23;16363:9;16350:23;;;;;;;;;;;;;;;;;;;;;;;;;16326:47;16322:146;;;16397:5;16390:12;;;;16322:146;16451:5;16444:12;;16109:366;;;;;:::o;16483:742::-;16569:7;16599:14;16656:12;:20;16669:6;16656:20;;;;;;;;;;;;;;;;;;;;;;;;;16653:293;;;16711:37;6147:4;16711:20;16722:8;;16711:6;:10;;:20;;;;:::i;:::-;:24;;:37;;;;:::i;:::-;16699:49;;16653:293;;;16800:12;:23;16813:9;16800:23;;;;;;;;;;;;;;;;;;;;;;;;;16797:149;;;16874:38;6147:4;16874:21;16885:9;;16874:6;:10;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;16862:50;;16797:149;16653:293;16982:1;16970:9;:13;16967:185;;;17031:39;17060:9;17031;:24;17049:4;17031:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17004:9;:24;17022:4;17004:24;;;;;;;;;;;;;;;:66;;;;17119:4;17094:42;;17103:6;17094:42;;;17126:9;17094:42;;;;;;:::i;:::-;;;;;;;;16967:185;17175:21;17186:9;17175:6;:10;;:21;;;;:::i;:::-;17168:28;;;16483:742;;;;;:::o;14912:658::-;15038:21;15076:1;15062:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15038:40;;15107:4;15089;15094:1;15089:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15133:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15123:4;15128:1;15123:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;15168:62;15185:4;15200:15;;;;;;;;;;;15218:11;15168:8;:62::i;:::-;15269:15;;;;;;;;;;;:66;;;15350:11;15376:1;15420:4;15447;15483:15;15269:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15527:35;15544:11;15557:4;15527:35;;;;;;;:::i;:::-;;;;;;;;14912:658;;:::o;14773:127::-;14865:9;14857:27;;:35;14885:6;14857:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14773:127;;:::o;15578:523::-;15726:62;15743:4;15758:15;;;;;;;;;;;15776:11;15726:8;:62::i;:::-;15831:15;;;;;;;;;;;:31;;;15870:9;15903:4;15923:11;15949:1;15992;16035:17;;;;;;;;;;;16067:15;15831:262;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15578:523;;:::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:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:165::-;642:5;680:6;667:20;658:29;;696:46;736:5;696:46;:::i;:::-;648:100;;;;:::o;754:139::-;800:5;838:6;825:20;816:29;;854:33;881:5;854:33;:::i;:::-;806:87;;;;:::o;899:143::-;956:5;987:6;981:13;972:22;;1003:33;1030:5;1003:33;:::i;:::-;962:80;;;;:::o;1048:262::-;1107:6;1156:2;1144:9;1135:7;1131:23;1127:32;1124:2;;;1172:1;1169;1162:12;1124:2;1215:1;1240:53;1285:7;1276:6;1265:9;1261:22;1240:53;:::i;:::-;1230:63;;1186:117;1114:196;;;;:::o;1316:284::-;1386:6;1435:2;1423:9;1414:7;1410:23;1406:32;1403:2;;;1451:1;1448;1441:12;1403:2;1494:1;1519:64;1575:7;1566:6;1555:9;1551:22;1519:64;:::i;:::-;1509:74;;1465:128;1393:207;;;;:::o;1606:407::-;1674:6;1682;1731:2;1719:9;1710:7;1706:23;1702:32;1699:2;;;1747:1;1744;1737:12;1699:2;1790:1;1815:53;1860:7;1851:6;1840:9;1836:22;1815:53;:::i;:::-;1805:63;;1761:117;1917:2;1943:53;1988:7;1979:6;1968:9;1964:22;1943:53;:::i;:::-;1933:63;;1888:118;1689:324;;;;;:::o;2019:552::-;2096:6;2104;2112;2161:2;2149:9;2140:7;2136:23;2132:32;2129:2;;;2177:1;2174;2167:12;2129:2;2220:1;2245:53;2290:7;2281:6;2270:9;2266:22;2245:53;:::i;:::-;2235:63;;2191:117;2347:2;2373:53;2418:7;2409:6;2398:9;2394:22;2373:53;:::i;:::-;2363:63;;2318:118;2475:2;2501:53;2546:7;2537:6;2526:9;2522:22;2501:53;:::i;:::-;2491:63;;2446:118;2119:452;;;;;:::o;2577:552::-;2654:6;2662;2670;2719:2;2707:9;2698:7;2694:23;2690:32;2687:2;;;2735:1;2732;2725:12;2687:2;2778:1;2803:53;2848:7;2839:6;2828:9;2824:22;2803:53;:::i;:::-;2793:63;;2749:117;2905:2;2931:53;2976:7;2967:6;2956:9;2952:22;2931:53;:::i;:::-;2921:63;;2876:118;3033:2;3059:53;3104:7;3095:6;3084:9;3080:22;3059:53;:::i;:::-;3049:63;;3004:118;2677:452;;;;;:::o;3135:401::-;3200:6;3208;3257:2;3245:9;3236:7;3232:23;3228:32;3225:2;;;3273:1;3270;3263:12;3225:2;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:50;3511:7;3502:6;3491:9;3487:22;3469:50;:::i;:::-;3459:60;;3414:115;3215:321;;;;;:::o;3542:407::-;3610:6;3618;3667:2;3655:9;3646:7;3642:23;3638:32;3635:2;;;3683:1;3680;3673:12;3635:2;3726:1;3751:53;3796:7;3787:6;3776:9;3772:22;3751:53;:::i;:::-;3741:63;;3697:117;3853:2;3879:53;3924:7;3915:6;3904:9;3900:22;3879:53;:::i;:::-;3869:63;;3824:118;3625:324;;;;;:::o;3955:256::-;4011:6;4060:2;4048:9;4039:7;4035:23;4031:32;4028:2;;;4076:1;4073;4066:12;4028:2;4119:1;4144:50;4186:7;4177:6;4166:9;4162:22;4144:50;:::i;:::-;4134:60;;4090:114;4018:193;;;;:::o;4217:278::-;4284:6;4333:2;4321:9;4312:7;4308:23;4304:32;4301:2;;;4349:1;4346;4339:12;4301:2;4392:1;4417:61;4470:7;4461:6;4450:9;4446:22;4417:61;:::i;:::-;4407:71;;4363:125;4291:204;;;;:::o;4501:578::-;4591:6;4599;4607;4656:2;4644:9;4635:7;4631:23;4627:32;4624:2;;;4672:1;4669;4662:12;4624:2;4715:1;4740:66;4798:7;4789:6;4778:9;4774:22;4740:66;:::i;:::-;4730:76;;4686:130;4855:2;4881:53;4926:7;4917:6;4906:9;4902:22;4881:53;:::i;:::-;4871:63;;4826:118;4983:2;5009:53;5054:7;5045:6;5034:9;5030:22;5009:53;:::i;:::-;4999:63;;4954:118;4614:465;;;;;:::o;5085:262::-;5144:6;5193:2;5181:9;5172:7;5168:23;5164:32;5161:2;;;5209:1;5206;5199:12;5161:2;5252:1;5277:53;5322:7;5313:6;5302:9;5298:22;5277:53;:::i;:::-;5267:63;;5223:117;5151:196;;;;:::o;5353:596::-;5441:6;5449;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:2;;;5522:1;5519;5512:12;5474:2;5565:1;5590:64;5646:7;5637:6;5626:9;5622:22;5590:64;:::i;:::-;5580:74;;5536:128;5703:2;5729:64;5785:7;5776:6;5765:9;5761:22;5729:64;:::i;:::-;5719:74;;5674:129;5842:2;5868:64;5924:7;5915:6;5904:9;5900:22;5868:64;:::i;:::-;5858:74;;5813:129;5464:485;;;;;:::o;5955:844::-;6050:6;6058;6066;6074;6082;6131:3;6119:9;6110:7;6106:23;6102:33;6099:2;;;6148:1;6145;6138:12;6099:2;6191:1;6216:53;6261:7;6252:6;6241:9;6237:22;6216:53;:::i;:::-;6206:63;;6162:117;6318:2;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6289:118;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;6574:2;6600:53;6645:7;6636:6;6625:9;6621:22;6600:53;:::i;:::-;6590:63;;6545:118;6702:3;6729:53;6774:7;6765:6;6754:9;6750:22;6729:53;:::i;:::-;6719:63;;6673:119;6089:710;;;;;;;;:::o;6805:179::-;6874:10;6895:46;6937:3;6929:6;6895:46;:::i;:::-;6973:4;6968:3;6964:14;6950:28;;6885:99;;;;:::o;6990:108::-;7067:24;7085:5;7067:24;:::i;:::-;7062:3;7055:37;7045:53;;:::o;7104:118::-;7191:24;7209:5;7191:24;:::i;:::-;7186:3;7179:37;7169:53;;:::o;7258:732::-;7377:3;7406:54;7454:5;7406:54;:::i;:::-;7476:86;7555:6;7550:3;7476:86;:::i;:::-;7469:93;;7586:56;7636:5;7586:56;:::i;:::-;7665:7;7696:1;7681:284;7706:6;7703:1;7700:13;7681:284;;;7782:6;7776:13;7809:63;7868:3;7853:13;7809:63;:::i;:::-;7802:70;;7895:60;7948:6;7895:60;:::i;:::-;7885:70;;7741:224;7728:1;7725;7721:9;7716:14;;7681:284;;;7685:14;7981:3;7974:10;;7382:608;;;;;;;:::o;7996:109::-;8077:21;8092:5;8077:21;:::i;:::-;8072:3;8065:34;8055:50;;:::o;8111:183::-;8224:63;8281:5;8224:63;:::i;:::-;8219:3;8212:76;8202:92;;:::o;8300:147::-;8395:45;8434:5;8395:45;:::i;:::-;8390:3;8383:58;8373:74;;:::o;8453:364::-;8541:3;8569:39;8602:5;8569:39;:::i;:::-;8624:71;8688:6;8683:3;8624:71;:::i;:::-;8617:78;;8704:52;8749:6;8744:3;8737:4;8730:5;8726:16;8704:52;:::i;:::-;8781:29;8803:6;8781:29;:::i;:::-;8776:3;8772:39;8765:46;;8545:272;;;;;:::o;8823:366::-;8965:3;8986:67;9050:2;9045:3;8986:67;:::i;:::-;8979:74;;9062:93;9151:3;9062:93;:::i;:::-;9180:2;9175:3;9171:12;9164:19;;8969:220;;;:::o;9195:366::-;9337:3;9358:67;9422:2;9417:3;9358:67;:::i;:::-;9351:74;;9434:93;9523:3;9434:93;:::i;:::-;9552:2;9547:3;9543:12;9536:19;;9341:220;;;:::o;9567:366::-;9709:3;9730:67;9794:2;9789:3;9730:67;:::i;:::-;9723:74;;9806:93;9895:3;9806:93;:::i;:::-;9924:2;9919:3;9915:12;9908:19;;9713:220;;;:::o;9939:366::-;10081:3;10102:67;10166:2;10161:3;10102:67;:::i;:::-;10095:74;;10178:93;10267:3;10178:93;:::i;:::-;10296:2;10291:3;10287:12;10280:19;;10085:220;;;:::o;10311:366::-;10453:3;10474:67;10538:2;10533:3;10474:67;:::i;:::-;10467:74;;10550:93;10639:3;10550:93;:::i;:::-;10668:2;10663:3;10659:12;10652:19;;10457:220;;;:::o;10683:366::-;10825:3;10846:67;10910:2;10905:3;10846:67;:::i;:::-;10839:74;;10922:93;11011:3;10922:93;:::i;:::-;11040:2;11035:3;11031:12;11024:19;;10829:220;;;:::o;11055:366::-;11197:3;11218:67;11282:2;11277:3;11218:67;:::i;:::-;11211:74;;11294:93;11383:3;11294:93;:::i;:::-;11412:2;11407:3;11403:12;11396:19;;11201:220;;;:::o;11427:366::-;11569:3;11590:67;11654:2;11649:3;11590:67;:::i;:::-;11583:74;;11666:93;11755:3;11666:93;:::i;:::-;11784:2;11779:3;11775:12;11768:19;;11573:220;;;:::o;11799:366::-;11941:3;11962:67;12026:2;12021:3;11962:67;:::i;:::-;11955:74;;12038:93;12127:3;12038:93;:::i;:::-;12156:2;12151:3;12147:12;12140:19;;11945:220;;;:::o;12171:365::-;12313:3;12334:66;12398:1;12393:3;12334:66;:::i;:::-;12327:73;;12409:93;12498:3;12409:93;:::i;:::-;12527:2;12522:3;12518:12;12511:19;;12317:219;;;:::o;12542:366::-;12684:3;12705:67;12769:2;12764:3;12705:67;:::i;:::-;12698:74;;12781:93;12870:3;12781:93;:::i;:::-;12899:2;12894:3;12890:12;12883:19;;12688:220;;;:::o;12914:366::-;13056:3;13077:67;13141:2;13136:3;13077:67;:::i;:::-;13070:74;;13153:93;13242:3;13153:93;:::i;:::-;13271:2;13266:3;13262:12;13255:19;;13060:220;;;:::o;13286:398::-;13445:3;13466:83;13547:1;13542:3;13466:83;:::i;:::-;13459:90;;13558:93;13647:3;13558:93;:::i;:::-;13676:1;13671:3;13667:11;13660:18;;13449:235;;;:::o;13690:366::-;13832:3;13853:67;13917:2;13912:3;13853:67;:::i;:::-;13846:74;;13929:93;14018:3;13929:93;:::i;:::-;14047:2;14042:3;14038:12;14031:19;;13836:220;;;:::o;14062:366::-;14204:3;14225:67;14289:2;14284:3;14225:67;:::i;:::-;14218:74;;14301:93;14390:3;14301:93;:::i;:::-;14419:2;14414:3;14410:12;14403:19;;14208:220;;;:::o;14434:118::-;14521:24;14539:5;14521:24;:::i;:::-;14516:3;14509:37;14499:53;;:::o;14558:112::-;14641:22;14657:5;14641:22;:::i;:::-;14636:3;14629:35;14619:51;;:::o;14676:379::-;14860:3;14882:147;15025:3;14882:147;:::i;:::-;14875:154;;15046:3;15039:10;;14864:191;;;:::o;15061:222::-;15154:4;15192:2;15181:9;15177:18;15169:26;;15205:71;15273:1;15262:9;15258:17;15249:6;15205:71;:::i;:::-;15159:124;;;;:::o;15289:332::-;15410:4;15448:2;15437:9;15433:18;15425:26;;15461:71;15529:1;15518:9;15514:17;15505:6;15461:71;:::i;:::-;15542:72;15610:2;15599:9;15595:18;15586:6;15542:72;:::i;:::-;15415:206;;;;;:::o;15627:332::-;15748:4;15786:2;15775:9;15771:18;15763:26;;15799:71;15867:1;15856:9;15852:17;15843:6;15799:71;:::i;:::-;15880:72;15948:2;15937:9;15933:18;15924:6;15880:72;:::i;:::-;15753:206;;;;;:::o;15965:807::-;16214:4;16252:3;16241:9;16237:19;16229:27;;16266:71;16334:1;16323:9;16319:17;16310:6;16266:71;:::i;:::-;16347:72;16415:2;16404:9;16400:18;16391:6;16347:72;:::i;:::-;16429:80;16505:2;16494:9;16490:18;16481:6;16429:80;:::i;:::-;16519;16595:2;16584:9;16580:18;16571:6;16519:80;:::i;:::-;16609:73;16677:3;16666:9;16662:19;16653:6;16609:73;:::i;:::-;16692;16760:3;16749:9;16745:19;16736:6;16692:73;:::i;:::-;16219:553;;;;;;;;;:::o;16778:210::-;16865:4;16903:2;16892:9;16888:18;16880:26;;16916:65;16978:1;16967:9;16963:17;16954:6;16916:65;:::i;:::-;16870:118;;;;:::o;16994:274::-;17113:4;17151:2;17140:9;17136:18;17128:26;;17164:97;17258:1;17247:9;17243:17;17234:6;17164:97;:::i;:::-;17118:150;;;;:::o;17274:313::-;17387:4;17425:2;17414:9;17410:18;17402:26;;17474:9;17468:4;17464:20;17460:1;17449:9;17445:17;17438:47;17502:78;17575:4;17566:6;17502:78;:::i;:::-;17494:86;;17392:195;;;;:::o;17593:419::-;17759:4;17797:2;17786:9;17782:18;17774:26;;17846:9;17840:4;17836:20;17832:1;17821:9;17817:17;17810:47;17874:131;18000:4;17874:131;:::i;:::-;17866:139;;17764:248;;;:::o;18018:419::-;18184:4;18222:2;18211:9;18207:18;18199:26;;18271:9;18265:4;18261:20;18257:1;18246:9;18242:17;18235:47;18299:131;18425:4;18299:131;:::i;:::-;18291:139;;18189:248;;;:::o;18443:419::-;18609:4;18647:2;18636:9;18632:18;18624:26;;18696:9;18690:4;18686:20;18682:1;18671:9;18667:17;18660:47;18724:131;18850:4;18724:131;:::i;:::-;18716:139;;18614:248;;;:::o;18868:419::-;19034:4;19072:2;19061:9;19057:18;19049:26;;19121:9;19115:4;19111:20;19107:1;19096:9;19092:17;19085:47;19149:131;19275:4;19149:131;:::i;:::-;19141:139;;19039:248;;;:::o;19293:419::-;19459:4;19497:2;19486:9;19482:18;19474:26;;19546:9;19540:4;19536:20;19532:1;19521:9;19517:17;19510:47;19574:131;19700:4;19574:131;:::i;:::-;19566:139;;19464:248;;;:::o;19718:419::-;19884:4;19922:2;19911:9;19907:18;19899:26;;19971:9;19965:4;19961:20;19957:1;19946:9;19942:17;19935:47;19999:131;20125:4;19999:131;:::i;:::-;19991:139;;19889:248;;;:::o;20143:419::-;20309:4;20347:2;20336:9;20332:18;20324:26;;20396:9;20390:4;20386:20;20382:1;20371:9;20367:17;20360:47;20424:131;20550:4;20424:131;:::i;:::-;20416:139;;20314:248;;;:::o;20568:419::-;20734:4;20772:2;20761:9;20757:18;20749:26;;20821:9;20815:4;20811:20;20807:1;20796:9;20792:17;20785:47;20849:131;20975:4;20849:131;:::i;:::-;20841:139;;20739:248;;;:::o;20993:419::-;21159:4;21197:2;21186:9;21182:18;21174:26;;21246:9;21240:4;21236:20;21232:1;21221:9;21217:17;21210:47;21274:131;21400:4;21274:131;:::i;:::-;21266:139;;21164:248;;;:::o;21418:419::-;21584:4;21622:2;21611:9;21607:18;21599:26;;21671:9;21665:4;21661:20;21657:1;21646:9;21642:17;21635:47;21699:131;21825:4;21699:131;:::i;:::-;21691:139;;21589:248;;;:::o;21843:419::-;22009:4;22047:2;22036:9;22032:18;22024:26;;22096:9;22090:4;22086:20;22082:1;22071:9;22067:17;22060:47;22124:131;22250:4;22124:131;:::i;:::-;22116:139;;22014:248;;;:::o;22268:419::-;22434:4;22472:2;22461:9;22457:18;22449:26;;22521:9;22515:4;22511:20;22507:1;22496:9;22492:17;22485:47;22549:131;22675:4;22549:131;:::i;:::-;22541:139;;22439:248;;;:::o;22693:419::-;22859:4;22897:2;22886:9;22882:18;22874:26;;22946:9;22940:4;22936:20;22932:1;22921:9;22917:17;22910:47;22974:131;23100:4;22974:131;:::i;:::-;22966:139;;22864:248;;;:::o;23118:419::-;23284:4;23322:2;23311:9;23307:18;23299:26;;23371:9;23365:4;23361:20;23357:1;23346:9;23342:17;23335:47;23399:131;23525:4;23399:131;:::i;:::-;23391:139;;23289:248;;;:::o;23543:222::-;23636:4;23674:2;23663:9;23659:18;23651:26;;23687:71;23755:1;23744:9;23740:17;23731:6;23687:71;:::i;:::-;23641:124;;;;:::o;23771:483::-;23942:4;23980:2;23969:9;23965:18;23957:26;;23993:71;24061:1;24050:9;24046:17;24037:6;23993:71;:::i;:::-;24111:9;24105:4;24101:20;24096:2;24085:9;24081:18;24074:48;24139:108;24242:4;24233:6;24139:108;:::i;:::-;24131:116;;23947:307;;;;;:::o;24260:831::-;24523:4;24561:3;24550:9;24546:19;24538:27;;24575:71;24643:1;24632:9;24628:17;24619:6;24575:71;:::i;:::-;24656:80;24732:2;24721:9;24717:18;24708:6;24656:80;:::i;:::-;24783:9;24777:4;24773:20;24768:2;24757:9;24753:18;24746:48;24811:108;24914:4;24905:6;24811:108;:::i;:::-;24803:116;;24929:72;24997:2;24986:9;24982:18;24973:6;24929:72;:::i;:::-;25011:73;25079:3;25068:9;25064:19;25055:6;25011:73;:::i;:::-;24528:563;;;;;;;;:::o;25097:214::-;25186:4;25224:2;25213:9;25209:18;25201:26;;25237:67;25301:1;25290:9;25286:17;25277:6;25237:67;:::i;:::-;25191:120;;;;:::o;25317:132::-;25384:4;25407:3;25399:11;;25437:4;25432:3;25428:14;25420:22;;25389:60;;;:::o;25455:114::-;25522:6;25556:5;25550:12;25540:22;;25529:40;;;:::o;25575:99::-;25627:6;25661:5;25655:12;25645:22;;25634:40;;;:::o;25680:113::-;25750:4;25782;25777:3;25773:14;25765:22;;25755:38;;;:::o;25799:184::-;25898:11;25932:6;25927:3;25920:19;25972:4;25967:3;25963:14;25948:29;;25910:73;;;;:::o;25989:147::-;26090:11;26127:3;26112:18;;26102:34;;;;:::o;26142:169::-;26226:11;26260:6;26255:3;26248:19;26300:4;26295:3;26291:14;26276:29;;26238:73;;;;:::o;26317:305::-;26357:3;26376:20;26394:1;26376:20;:::i;:::-;26371:25;;26410:20;26428:1;26410:20;:::i;:::-;26405:25;;26564:1;26496:66;26492:74;26489:1;26486:81;26483:2;;;26570:18;;:::i;:::-;26483:2;26614:1;26611;26607:9;26600:16;;26361:261;;;;:::o;26628:185::-;26668:1;26685:20;26703:1;26685:20;:::i;:::-;26680:25;;26719:20;26737:1;26719:20;:::i;:::-;26714:25;;26758:1;26748:2;;26763:18;;:::i;:::-;26748:2;26805:1;26802;26798:9;26793:14;;26670:143;;;;:::o;26819:348::-;26859:7;26882:20;26900:1;26882:20;:::i;:::-;26877:25;;26916:20;26934:1;26916:20;:::i;:::-;26911:25;;27104:1;27036:66;27032:74;27029:1;27026:81;27021:1;27014:9;27007:17;27003:105;27000:2;;;27111:18;;:::i;:::-;27000:2;27159:1;27156;27152:9;27141:20;;26867:300;;;;:::o;27173:191::-;27213:4;27233:20;27251:1;27233:20;:::i;:::-;27228:25;;27267:20;27285:1;27267:20;:::i;:::-;27262:25;;27306:1;27303;27300:8;27297:2;;;27311:18;;:::i;:::-;27297:2;27356:1;27353;27349:9;27341:17;;27218:146;;;;:::o;27370:96::-;27407:7;27436:24;27454:5;27436:24;:::i;:::-;27425:35;;27415:51;;;:::o;27472:90::-;27506:7;27549:5;27542:13;27535:21;27524:32;;27514:48;;;:::o;27568:109::-;27618:7;27647:24;27665:5;27647:24;:::i;:::-;27636:35;;27626:51;;;:::o;27683:126::-;27720:7;27760:42;27753:5;27749:54;27738:65;;27728:81;;;:::o;27815:77::-;27852:7;27881:5;27870:16;;27860:32;;;:::o;27898:86::-;27933:7;27973:4;27966:5;27962:16;27951:27;;27941:43;;;:::o;27990:178::-;28066:9;28099:63;28156:5;28099:63;:::i;:::-;28086:76;;28076:92;;;:::o;28174:139::-;28250:9;28283:24;28301:5;28283:24;:::i;:::-;28270:37;;28260:53;;;:::o;28319:121::-;28377:9;28410:24;28428:5;28410:24;:::i;:::-;28397:37;;28387:53;;;:::o;28446:307::-;28514:1;28524:113;28538:6;28535:1;28532:13;28524:113;;;28623:1;28618:3;28614:11;28608:18;28604:1;28599:3;28595:11;28588:39;28560:2;28557:1;28553:10;28548:15;;28524:113;;;28655:6;28652:1;28649:13;28646:2;;;28735:1;28726:6;28721:3;28717:16;28710:27;28646:2;28495:258;;;;:::o;28759:320::-;28803:6;28840:1;28834:4;28830:12;28820:22;;28887:1;28881:4;28877:12;28908:18;28898:2;;28964:4;28956:6;28952:17;28942:27;;28898:2;29026;29018:6;29015:14;28995:18;28992:38;28989:2;;;29045:18;;:::i;:::-;28989:2;28810:269;;;;:::o;29085:180::-;29133:77;29130:1;29123:88;29230:4;29227:1;29220:15;29254:4;29251:1;29244:15;29271:180;29319:77;29316:1;29309:88;29416:4;29413:1;29406:15;29440:4;29437:1;29430:15;29457:180;29505:77;29502:1;29495:88;29602:4;29599:1;29592:15;29626:4;29623:1;29616:15;29643:102;29684:6;29735:2;29731:7;29726:2;29719:5;29715:14;29711:28;29701:38;;29691:54;;;:::o;29751:225::-;29891:34;29887:1;29879:6;29875:14;29868:58;29960:8;29955:2;29947:6;29943:15;29936:33;29857:119;:::o;29982:221::-;30122:34;30118:1;30110:6;30106:14;30099:58;30191:4;30186:2;30178:6;30174:15;30167:29;30088:115;:::o;30209:177::-;30349:29;30345:1;30337:6;30333:14;30326:53;30315:71;:::o;30392:164::-;30532:16;30528:1;30520:6;30516:14;30509:40;30498:58;:::o;30562:163::-;30702:15;30698:1;30690:6;30686:14;30679:39;30668:57;:::o;30731:165::-;30871:17;30867:1;30859:6;30855:14;30848:41;30837:59;:::o;30902:220::-;31042:34;31038:1;31030:6;31026:14;31019:58;31111:3;31106:2;31098:6;31094:15;31087:28;31008:114;:::o;31128:160::-;31268:12;31264:1;31256:6;31252:14;31245:36;31234:54;:::o;31294:182::-;31434:34;31430:1;31422:6;31418:14;31411:58;31400:76;:::o;31482:156::-;31622:8;31618:1;31610:6;31606:14;31599:32;31588:50;:::o;31644:221::-;31784:34;31780:1;31772:6;31768:14;31761:58;31853:4;31848:2;31840:6;31836:15;31829:29;31750:115;:::o;31871:163::-;32011:15;32007:1;31999:6;31995:14;31988:39;31977:57;:::o;32040:114::-;32146:8;:::o;32160:223::-;32300:34;32296:1;32288:6;32284:14;32277:58;32369:6;32364:2;32356:6;32352:15;32345:31;32266:117;:::o;32389:170::-;32529:22;32525:1;32517:6;32513:14;32506:46;32495:64;:::o;32565:122::-;32638:24;32656:5;32638:24;:::i;:::-;32631:5;32628:35;32618:2;;32677:1;32674;32667:12;32618:2;32608:79;:::o;32693:116::-;32763:21;32778:5;32763:21;:::i;:::-;32756:5;32753:32;32743:2;;32799:1;32796;32789:12;32743:2;32733:76;:::o;32815:148::-;32901:37;32932:5;32901:37;:::i;:::-;32894:5;32891:48;32881:2;;32953:1;32950;32943:12;32881:2;32871:92;:::o;32969:122::-;33042:24;33060:5;33042:24;:::i;:::-;33035:5;33032:35;33022:2;;33081:1;33078;33071:12;33022:2;33012:79;:::o

Swarm Source

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