ETH Price: $3,258.55 (-0.50%)
Gas: 6 Gwei

Token

Mothers Id Like to Fund (MILF)
 

Overview

Max Total Supply

1,000,000,000,000 MILF

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
dukeflossington.eth
Balance
0 MILF

Value
$0.00
0xe4eee5580b2e91130fa65b14d5e2abc1bd250811
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MILF

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-19
*/

/**
 * 
 * 
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract MILF is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;
    mapping (address => bool) private _bots;
    mapping (address => bool) private _presale;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = "Mothers Id Like to Fund";
    string private constant _symbol = "MILF";
    
    uint256 private minContractTokensToSwap = 1e9 * 10**9;
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 0;
    uint256 private _teamFee = 0;
    uint256 private _liquidityFeePercentage = 25;
    uint256 private _maxWalletSize = 2e10 * 10**9;

    uint256 private _buyFee = 0;
    uint256 private _sellFee = 16;
    uint256 private _transferFee = 0;

    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;

    address payable private _devWallet;
    address payable private _marketingWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _presaleDone = false;
    bool private _noTaxMode = false;
    bool private _swapAll = false;
    bool private _takeFeeFromTransfer = false;
    bool private inSwap = false;

    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    event Response(bool feeSent, bool marketingSent);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable devWallet, address payable marketingWallet) {
        _devWallet = devWallet;
        _marketingWallet = marketingWallet;
        
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[devWallet] = true;
        _isExcludedFromFee[marketingWallet] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[devWallet] = true;
        _isExcludedFromMaxWallet[marketingWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);

            if(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to]) {
                require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                require( _presaleDone || _presale[to], "Not in presale.");
                _teamFee = _buyFee;
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                _teamFee = _sellFee;

                if(contractTokenBalance > minContractTokensToSwap) {
                    if(!_swapAll) {
                        contractTokenBalance = minContractTokensToSwap;
                    }

                    if (_liquidityFeePercentage > 0) {
                        swapAndLiquify(contractTokenBalance);
                    } else {
                        swapWithoutLiquify(contractTokenBalance);
                    }                         
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _noTaxMode) {
            takeFee = false;
        }

        if(!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) {
            if (_takeFeeFromTransfer) {
                _teamFee = _transferFee;
            } else {
                takeFee = false;
            }
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    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
            owner(),
            block.timestamp
        );
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 teamFeePercentage = 100 - _liquidityFeePercentage;
        uint256 amtForLiquidity = contractTokenBalance.mul(_liquidityFeePercentage).div(100);
        uint256 halfLiq = amtForLiquidity.div(2);

        uint256 amountToSwapForETH = contractTokenBalance.sub(halfLiq);
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 feeBalance = ethBalance.mul(teamFeePercentage).div(100);
        sendETHToFee(feeBalance);

        uint256 ethForLiquidity = ethBalance - feeBalance;

        if (halfLiq > 0 && ethForLiquidity > 0) {
            // add liquidity
            addLiquidity(halfLiq, ethForLiquidity);

            emit SwapAndLiquify(amountToSwapForETH, ethForLiquidity, amtForLiquidity);
        }
    }

    function swapWithoutLiquify(uint256 contractTokenBalance) private lockTheSwap {
        
        swapTokensForEth(contractTokenBalance);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            sendETHToFee(address(this).balance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function manualSwapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        (bool dev, ) = _devWallet.call{value: amount.div(2)}("");
        (bool marketing, ) = _marketingWallet.call{value: amount.div(2)}("");

        emit Response(dev, marketing);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        automatedMarketMakerPairs[uniswapV2Pair] = true;
    }
    
    function setMarketingWallet (address payable marketing) external onlyOwner {
        _isExcludedFromFee[_marketingWallet] = false;
        _marketingWallet = marketing;
        _isExcludedFromFee[marketing] = true;
    }

    function setDevWallet (address payable dev) external onlyOwner() {
        _isExcludedFromFee[_devWallet] = false;
        _devWallet = dev;
        _isExcludedFromFee[dev] = true;
    }

    function excludeFromFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external onlyOwner {
        _isExcludedFromFee[ad] = false;
    }

    function isExcludedToFee(address ad) public view returns (bool) {
        return _isExcludedFromFee[ad];
    }

    function excludeFromMaxWallet(address[] calldata ads, bool onoff) public onlyOwner {
        for (uint i = 0; i < ads.length; i++) {
            _isExcludedFromMaxWallet[ads[i]] = onoff;
        }
    }
    
    function isExcludedMaxWallet(address ad) public view returns (bool) {
        return _isExcludedFromMaxWallet[ad];
    }
    
    function setNoTaxMode(bool onoff) external onlyOwner {
        _noTaxMode = onoff;
    }

    function setTakeFeeFromTransfer(bool onoff) external onlyOwner {
        _takeFeeFromTransfer = onoff;
    }
    
    function setBuyFee(uint256 buy) external onlyOwner {
        require(buy <= 16, "Buy fee must be less than 16");
        _buyFee = buy;
    }

    function setSellFee(uint256 sell) external onlyOwner {
        require(sell <= 16, "Sell fee must be less than 16");
        _sellFee = sell;
    }

    function setTransferFee(uint256 fee) external onlyOwner {
        require(fee <= 16, "Transfer fee must be less than 16");
        _transferFee = fee;
    }
        
    function setTaxFee(uint256 tax) external onlyOwner {
        require(tax <= 5, "tax must be less than 5");
        _taxFee = tax;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner {
		require(_liquidityFeePercentage >= 0 && _liquidityFeePercentage <= 100, "liquidity fee percentage must be between 0 to 100");
        _liquidityFeePercentage = liquidityFee;
    }

    function setMinContractTokensToSwap(uint256 numToken) external onlyOwner {
        minContractTokensToSwap = numToken * 10**9;
    }

    function setMaxWallet(uint256 amt) external onlyOwner {
        _maxWalletSize = amt * 10**9;
    }

    function setSwapAll(bool onoff) external onlyOwner {
        _swapAll = onoff;
    }
    
    function setBots(address[] calldata bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }

    function setPresale(address[] calldata _ads) public onlyOwner {
        for (uint i = 0; i < _ads.length; i++) {
            _presale[_ads[i]] = true;
        }
    }
    
    function delPresale(address ad) public onlyOwner {
        _presale[ad] = false;
    }
    
    function isPresale(address ad) public view returns (bool) {
        return _presale[ad];
    }

    function endPresale() public onlyOwner {
        _presaleDone = true;
    }
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        manualSwapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"devWallet","type":"address"},{"internalType":"address payable","name":"marketingWallet","type":"address"}],"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":"bool","name":"feeSent","type":"bool"},{"indexed":false,"internalType":"bool","name":"marketingSent","type":"bool"}],"name":"Response","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":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":[{"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":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"delPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedToFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isPresale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"dev","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_ads","type":"address[]"}],"name":"setPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setTakeFeeFromTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000769565b6000196200002c9190620006f0565b600955670de0b6b3a7640000600b556000600c556000600d556019600e556801158e460913d00000600f55600060105560106011556000601255600c54601355600d546014556000601860146101000a81548160ff0219169083151502179055506000601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055506000601860176101000a81548160ff02191690831515021790555060006018806101000a81548160ff0219169083151502179055506000601860196101000a81548160ff0219169083151502179055503480156200012057600080fd5b50604051620063b8380380620063b883398181016040528101906200014691906200067b565b6000620001586200063360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260006200028f6200063360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002e36200063b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620004526200063b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005bb6200063360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006239190620006d3565b60405180910390a350506200081e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006758162000804565b92915050565b60008060408385031215620006955762000694620007ff565b5b6000620006a58582860162000664565b9250506020620006b88582860162000664565b9150509250929050565b620006cd816200075f565b82525050565b6000602082019050620006ea6000830184620006c2565b92915050565b6000620006fd826200075f565b91506200070a836200075f565b92508282101562000720576200071f620007a1565b5b828203905092915050565b600062000738826200073f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000776826200075f565b915062000783836200075f565b925082620007965762000795620007d0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6200080f816200072b565b81146200081b57600080fd5b50565b615b8a806200082e6000396000f3fe60806040526004361061024a5760003560e01c80638b4cee0811610139578063b515566a116100b6578063cf0848f71161007a578063cf0848f71461082f578063db8aeab114610858578063db92dbb614610881578063dd62ed3e146108ac578063de30aad1146108e9578063e1ab04c91461091257610251565b8063b515566a14610786578063c1187569146107af578063c3c8cd80146107d8578063c4081a4c146107ef578063c9567bf91461081857610251565b80639a7a23d6116100fd5780639a7a23d6146106a35780639bcadc14146106cc578063a43be57b14610709578063a9059cbb14610720578063b0c6030b1461075d57610251565b80638b4cee08146105d25780638da5cb5b146105fb5780638ee88c53146106265780638f02bb5b1461064f57806395d89b411461067857610251565b80633bbac579116101c75780636fc3eaec1161018b5780636fc3eaec1461050157806370a0823114610518578063715018a6146105555780638283052d1461056c578063844f30fb1461059557610251565b80633bbac57914610420578063437823ec1461045d5780634b740b16146104865780635d0044ca146104af5780635d098b38146104d857610251565b80631f53ac021161020e5780631f53ac021461033b57806323b872dd14610364578063273123b7146103a157806327f3a72a146103ca578063313ce567146103f557610251565b806306fdde0314610256578063095ea7b3146102815780630cc835a3146102be57806312dfbd33146102e757806318160ddd1461031057610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b61094f565b6040516102789190614f87565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906148d4565b61098c565b6040516102b59190614f43565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190614a1b565b6109aa565b005b3480156102f357600080fd5b5061030e60048036038101906103099190614a1b565b610a8d565b005b34801561031c57600080fd5b50610325610b3b565b6040516103329190615209565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d91906147d4565b610b4c565b005b34801561037057600080fd5b5061038b60048036038101906103869190614841565b610cf7565b6040516103989190614f43565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061477a565b610dd0565b005b3480156103d657600080fd5b506103df610ec0565b6040516103ec9190615209565b60405180910390f35b34801561040157600080fd5b5061040a610ed0565b60405161041791906152b5565b60405180910390f35b34801561042c57600080fd5b506104476004803603810190610442919061477a565b610ed9565b6040516104549190614f43565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f91906147d4565b610f2f565b005b34801561049257600080fd5b506104ad60048036038101906104a891906149c1565b61101f565b005b3480156104bb57600080fd5b506104d660048036038101906104d19190614a1b565b6110d1565b005b3480156104e457600080fd5b506104ff60048036038101906104fa91906147d4565b61117f565b005b34801561050d57600080fd5b5061051661132a565b005b34801561052457600080fd5b5061053f600480360381019061053a919061477a565b6113d0565b60405161054c9190615209565b60405180910390f35b34801561056157600080fd5b5061056a611421565b005b34801561057857600080fd5b50610593600480360381019061058e919061477a565b611574565b005b3480156105a157600080fd5b506105bc60048036038101906105b7919061477a565b611664565b6040516105c99190614f43565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190614a1b565b6116ba565b005b34801561060757600080fd5b5061061061179d565b60405161061d9190614e75565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190614a1b565b6117c6565b005b34801561065b57600080fd5b5061067660048036038101906106719190614a1b565b6118ba565b005b34801561068457600080fd5b5061068d61199d565b60405161069a9190614f87565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c59190614894565b6119da565b005b3480156106d857600080fd5b506106f360048036038101906106ee919061477a565b611b0e565b6040516107009190614f43565b60405180910390f35b34801561071557600080fd5b5061071e611b64565b005b34801561072c57600080fd5b50610747600480360381019061074291906148d4565b611c16565b6040516107549190614f43565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190614914565b611c34565b005b34801561079257600080fd5b506107ad60048036038101906107a89190614914565b611d6e565b005b3480156107bb57600080fd5b506107d660048036038101906107d191906149c1565b611fa8565b005b3480156107e457600080fd5b506107ed612059565b005b3480156107fb57600080fd5b5061081660048036038101906108119190614a1b565b612107565b005b34801561082457600080fd5b5061082d6121ea565b005b34801561083b57600080fd5b50610856600480360381019061085191906147d4565b61277b565b005b34801561086457600080fd5b5061087f600480360381019061087a9190614961565b61286b565b005b34801561088d57600080fd5b506108966129a5565b6040516108a39190615209565b60405180910390f35b3480156108b857600080fd5b506108d360048036038101906108ce9190614801565b6129d7565b6040516108e09190615209565b60405180910390f35b3480156108f557600080fd5b50610910600480360381019061090b91906149c1565b612a5e565b005b34801561091e57600080fd5b506109396004803603810190610934919061477a565b612b10565b6040516109469190614f43565b60405180910390f35b60606040518060400160405280601781526020017f4d6f7468657273204964204c696b6520746f2046756e64000000000000000000815250905090565b60006109a0610999612b66565b8484612b6e565b6001905092915050565b6109b2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a36906150c9565b60405180910390fd5b6010811115610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90615069565b60405180910390fd5b8060108190555050565b610a95612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906150c9565b60405180910390fd5b633b9aca0081610b3291906153b7565b600b8190555050565b6000683635c9adc5dea00000905090565b610b54612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906150c9565b60405180910390fd5b600060056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610d04848484612d39565b610dc584610d10612b66565b610dc085604051806060016040528060288152602001615b2d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d76612b66565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461351f9092919063ffffffff16565b612b6e565b600190509392505050565b610dd8612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906150c9565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610ecb306113d0565b905090565b60006009905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610f37612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb906150c9565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611027612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906150c9565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b6110d9612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d906150c9565b60405180910390fd5b633b9aca008161117691906153b7565b600f8190555050565b611187612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b906150c9565b60405180910390fd5b600060056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611332612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b6906150c9565b60405180910390fd5b60004790506113cd81613583565b50565b600061141a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613703565b9050919050565b611429612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906150c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61157c612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611600906150c9565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6116c2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611746906150c9565b60405180910390fd5b6010811115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a90615189565b60405180910390fd5b8060118190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117ce612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906150c9565b60405180910390fd5b6000600e541015801561187157506064600e5411155b6118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790615089565b60405180910390fd5b80600e8190555050565b6118c2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611946906150c9565b60405180910390fd5b6010811115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90615109565b60405180910390fd5b8060128190555050565b60606040518060400160405280600481526020017f4d494c4600000000000000000000000000000000000000000000000000000000815250905090565b6119e2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a66906150c9565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af790615029565b60405180910390fd5b611b0a8282613771565b5050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611b6c612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf0906150c9565b60405180910390fd5b6001601860156101000a81548160ff021916908315150217905550565b6000611c2a611c23612b66565b8484612d39565b6001905092915050565b611c3c612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc0906150c9565b60405180910390fd5b60005b82829050811015611d6957600160086000858585818110611cf057611cef615598565b5b9050602002016020810190611d05919061477a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d61906154f1565b915050611ccc565b505050565b611d76612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfa906150c9565b60405180910390fd5b60005b82829050811015611fa357601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611e5d57611e5c615598565b5b9050602002016020810190611e72919061477a565b73ffffffffffffffffffffffffffffffffffffffff1614158015611f0b5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611edd57611edc615598565b5b9050602002016020810190611ef2919061477a565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611f9057600160076000858585818110611f2957611f28615598565b5b9050602002016020810190611f3e919061477a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611f9b906154f1565b915050611e06565b505050565b611fb0612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612034906150c9565b60405180910390fd5b806018806101000a81548160ff02191690831515021790555050565b612061612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e5906150c9565b60405180910390fd5b60006120f9306113d0565b9050612104816137cc565b50565b61210f612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612193906150c9565b60405180910390fd5b60058111156121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d790615049565b60405180910390fd5b80600c8190555050565b6121f2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461227f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612276906150c9565b60405180910390fd5b601860149054906101000a900460ff16156122cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c6906151c9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061235f30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612b6e565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a557600080fd5b505afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd91906147a7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247791906147a7565b6040518363ffffffff1660e01b8152600401612494929190614e90565b602060405180830381600087803b1580156124ae57600080fd5b505af11580156124c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e691906147a7565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061256f306113d0565b60008061257a61179d565b426040518863ffffffff1660e01b815260040161259c96959493929190614ee2565b6060604051808303818588803b1580156125b557600080fd5b505af11580156125c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125ee9190614a48565b505050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612690929190614eb9565b602060405180830381600087803b1580156126aa57600080fd5b505af11580156126be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e291906149ee565b506001601860146101000a81548160ff021916908315150217905550600160196000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612783612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612807906150c9565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612873612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f7906150c9565b60405180910390fd5b60005b8383905081101561299f57816006600086868581811061292657612925615598565b5b905060200201602081019061293b919061477a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612997906154f1565b915050612903565b50505050565b60006129d2601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a66612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aea906150c9565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd5906151a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4590614fe9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d2c9190615209565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da090615149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1090614fa9565b60405180910390fd5b60008111612e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e53906150e9565b60405180910390fd5b612e6461179d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ed25750612ea261179d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561337557600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f7b5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612f8457600080fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561302c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561308a57600f548161303e846113d0565b6130489190615330565b1115613089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161308090615169565b60405180910390fd5b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156131355750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561318b5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561328c57601860149054906101000a900460ff166131df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d6906151e9565b60405180910390fd5b601860159054906101000a900460ff16806132435750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327990615129565b60405180910390fd5b601054600d819055505b6000613297306113d0565b9050601860199054906101000a900460ff161580156133045750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561331c5750601860149054906101000a900460ff165b1561337357601154600d81905550600b5481111561337257601860179054906101000a900460ff1661334e57600b5490505b6000600e5411156133675761336281613a54565b613371565b61337081613bc6565b5b5b5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061341c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806134335750601860169054906101000a900460ff165b1561343d57600090505b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134e15750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561350d5760188054906101000a900460ff161561350757601254600d8190555061350c565b600090505b5b61351984848484613c21565b50505050565b6000838311158290613567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355e9190614f87565b60405180910390fd5b50600083856135769190615411565b9050809150509392505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135d2600284613c4e90919063ffffffff16565b6040516135de90614e60565b60006040518083038185875af1925050503d806000811461361b576040519150601f19603f3d011682016040523d82523d6000602084013e613620565b606091505b505090506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613673600285613c4e90919063ffffffff16565b60405161367f90614e60565b60006040518083038185875af1925050503d80600081146136bc576040519150601f19603f3d011682016040523d82523d6000602084013e6136c1565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b982826040516136f6929190614f5e565b60405180910390a1505050565b600060095482111561374a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161374190614fc9565b60405180910390fd5b6000613754613c98565b90506137698184613c4e90919063ffffffff16565b915050919050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601860196101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613804576138036155c7565b5b6040519080825280602002602001820160405280156138325781602001602082028036833780820191505090505b509050308160008151811061384a57613849615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b505afa158015613900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392491906147a7565b8160018151811061393857613937615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061399f30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b6e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a03959493929190615224565b600060405180830381600087803b158015613a1d57600080fd5b505af1158015613a31573d6000803e3d6000fd5b50505050506000601860196101000a81548160ff02191690831515021790555050565b6001601860196101000a81548160ff0219169083151502179055506000600e546064613a809190615411565b90506000613aac6064613a9e600e5486613cc390919063ffffffff16565b613c4e90919063ffffffff16565b90506000613ac4600283613c4e90919063ffffffff16565b90506000613adb8286613d3e90919063ffffffff16565b90506000479050613aeb82613d88565b6000613b008247613d3e90919063ffffffff16565b90506000613b2a6064613b1c8985613cc390919063ffffffff16565b613c4e90919063ffffffff16565b9050613b3581613583565b60008183613b439190615411565b9050600086118015613b555750600081115b15613ba057613b648682613fda565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858289604051613b979392919061527e565b60405180910390a15b50505050505050506000601860196101000a81548160ff02191690831515021790555050565b6001601860196101000a81548160ff021916908315150217905550613bea81613d88565b60004790506000811115613c0257613c0147613583565b5b506000601860196101000a81548160ff02191690831515021790555050565b80613c2f57613c2e6140ce565b5b613c3a848484614111565b80613c4857613c476142dc565b5b50505050565b6000613c9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506142f0565b905092915050565b6000806000613ca5614353565b91509150613cbc8183613c4e90919063ffffffff16565b9250505090565b600080831415613cd65760009050613d38565b60008284613ce491906153b7565b9050828482613cf39190615386565b14613d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d2a906150a9565b60405180910390fd5b809150505b92915050565b6000613d8083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061351f565b905092915050565b6000600267ffffffffffffffff811115613da557613da46155c7565b5b604051908082528060200260200182016040528015613dd35781602001602082028036833780820191505090505b5090503081600081518110613deb57613dea615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613e8d57600080fd5b505afa158015613ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec591906147a7565b81600181518110613ed957613ed8615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f4030601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b6e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fa4959493929190615224565b600060405180830381600087803b158015613fbe57600080fd5b505af1158015613fd2573d6000803e3d6000fd5b505050505050565b61400730601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b6e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061405361179d565b426040518863ffffffff1660e01b815260040161407596959493929190614ee2565b6060604051808303818588803b15801561408e57600080fd5b505af11580156140a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140c79190614a48565b5050505050565b6000600c541480156140e257506000600d54145b156140ec5761410f565b600c54601381905550600d546014819055506000600c819055506000600d819055505b565b600080600080600080614123876143b5565b95509550955095509550955061418186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d3e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061421685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506142628161447b565b61426c8483614538565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516142c99190615209565b60405180910390a3505050505050505050565b601354600c81905550601454600d81905550565b60008083118290614337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161432e9190614f87565b60405180910390fd5b50600083856143469190615386565b9050809150509392505050565b600080600060095490506000683635c9adc5dea000009050614389683635c9adc5dea00000600954613c4e90919063ffffffff16565b8210156143a857600954683635c9adc5dea000009350935050506143b1565b81819350935050505b9091565b60008060008060008060008060006143d28a600c54600d54614572565b92509250925060006143e2613c98565b905060008060006143f58e878787614608565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600080828461442c9190615330565b905083811015614471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161446890615009565b60405180910390fd5b8091505092915050565b6000614485613c98565b9050600061449c8284613cc390919063ffffffff16565b90506144f081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61454d82600954613d3e90919063ffffffff16565b60098190555061456881600a5461441d90919063ffffffff16565b600a819055505050565b60008060008061459e6064614590888a613cc390919063ffffffff16565b613c4e90919063ffffffff16565b905060006145c860646145ba888b613cc390919063ffffffff16565b613c4e90919063ffffffff16565b905060006145f1826145e3858c613d3e90919063ffffffff16565b613d3e90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806146218589613cc390919063ffffffff16565b905060006146388689613cc390919063ffffffff16565b9050600061464f8789613cc390919063ffffffff16565b905060006146788261466a8587613d3e90919063ffffffff16565b613d3e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506146a081615ad0565b92915050565b6000815190506146b581615ad0565b92915050565b6000813590506146ca81615ae7565b92915050565b60008083601f8401126146e6576146e56155fb565b5b8235905067ffffffffffffffff811115614703576147026155f6565b5b60208301915083602082028301111561471f5761471e615600565b5b9250929050565b60008135905061473581615afe565b92915050565b60008151905061474a81615afe565b92915050565b60008135905061475f81615b15565b92915050565b60008151905061477481615b15565b92915050565b6000602082840312156147905761478f61560a565b5b600061479e84828501614691565b91505092915050565b6000602082840312156147bd576147bc61560a565b5b60006147cb848285016146a6565b91505092915050565b6000602082840312156147ea576147e961560a565b5b60006147f8848285016146bb565b91505092915050565b600080604083850312156148185761481761560a565b5b600061482685828601614691565b925050602061483785828601614691565b9150509250929050565b60008060006060848603121561485a5761485961560a565b5b600061486886828701614691565b935050602061487986828701614691565b925050604061488a86828701614750565b9150509250925092565b600080604083850312156148ab576148aa61560a565b5b60006148b985828601614691565b92505060206148ca85828601614726565b9150509250929050565b600080604083850312156148eb576148ea61560a565b5b60006148f985828601614691565b925050602061490a85828601614750565b9150509250929050565b6000806020838503121561492b5761492a61560a565b5b600083013567ffffffffffffffff81111561494957614948615605565b5b614955858286016146d0565b92509250509250929050565b60008060006040848603121561497a5761497961560a565b5b600084013567ffffffffffffffff81111561499857614997615605565b5b6149a4868287016146d0565b935093505060206149b786828701614726565b9150509250925092565b6000602082840312156149d7576149d661560a565b5b60006149e584828501614726565b91505092915050565b600060208284031215614a0457614a0361560a565b5b6000614a128482850161473b565b91505092915050565b600060208284031215614a3157614a3061560a565b5b6000614a3f84828501614750565b91505092915050565b600080600060608486031215614a6157614a6061560a565b5b6000614a6f86828701614765565b9350506020614a8086828701614765565b9250506040614a9186828701614765565b9150509250925092565b6000614aa78383614ab3565b60208301905092915050565b614abc81615445565b82525050565b614acb81615445565b82525050565b6000614adc826152e0565b614ae68185615303565b9350614af1836152d0565b8060005b83811015614b22578151614b098882614a9b565b9750614b14836152f6565b925050600181019050614af5565b5085935050505092915050565b614b3881615469565b82525050565b614b47816154ac565b82525050565b6000614b58826152eb565b614b62818561531f565b9350614b728185602086016154be565b614b7b8161560f565b840191505092915050565b6000614b9360238361531f565b9150614b9e82615620565b604082019050919050565b6000614bb6602a8361531f565b9150614bc18261566f565b604082019050919050565b6000614bd960228361531f565b9150614be4826156be565b604082019050919050565b6000614bfc601b8361531f565b9150614c078261570d565b602082019050919050565b6000614c1f60398361531f565b9150614c2a82615736565b604082019050919050565b6000614c4260178361531f565b9150614c4d82615785565b602082019050919050565b6000614c65601c8361531f565b9150614c70826157ae565b602082019050919050565b6000614c8860318361531f565b9150614c93826157d7565b604082019050919050565b6000614cab60218361531f565b9150614cb682615826565b604082019050919050565b6000614cce60208361531f565b9150614cd982615875565b602082019050919050565b6000614cf160298361531f565b9150614cfc8261589e565b604082019050919050565b6000614d1460218361531f565b9150614d1f826158ed565b604082019050919050565b6000614d37600f8361531f565b9150614d428261593c565b602082019050919050565b6000614d5a60258361531f565b9150614d6582615965565b604082019050919050565b6000614d7d60238361531f565b9150614d88826159b4565b604082019050919050565b6000614da0601d8361531f565b9150614dab82615a03565b602082019050919050565b6000614dc3600083615314565b9150614dce82615a2c565b600082019050919050565b6000614de660248361531f565b9150614df182615a2f565b604082019050919050565b6000614e0960178361531f565b9150614e1482615a7e565b602082019050919050565b6000614e2c60188361531f565b9150614e3782615aa7565b602082019050919050565b614e4b81615495565b82525050565b614e5a8161549f565b82525050565b6000614e6b82614db6565b9150819050919050565b6000602082019050614e8a6000830184614ac2565b92915050565b6000604082019050614ea56000830185614ac2565b614eb26020830184614ac2565b9392505050565b6000604082019050614ece6000830185614ac2565b614edb6020830184614e42565b9392505050565b600060c082019050614ef76000830189614ac2565b614f046020830188614e42565b614f116040830187614b3e565b614f1e6060830186614b3e565b614f2b6080830185614ac2565b614f3860a0830184614e42565b979650505050505050565b6000602082019050614f586000830184614b2f565b92915050565b6000604082019050614f736000830185614b2f565b614f806020830184614b2f565b9392505050565b60006020820190508181036000830152614fa18184614b4d565b905092915050565b60006020820190508181036000830152614fc281614b86565b9050919050565b60006020820190508181036000830152614fe281614ba9565b9050919050565b6000602082019050818103600083015261500281614bcc565b9050919050565b6000602082019050818103600083015261502281614bef565b9050919050565b6000602082019050818103600083015261504281614c12565b9050919050565b6000602082019050818103600083015261506281614c35565b9050919050565b6000602082019050818103600083015261508281614c58565b9050919050565b600060208201905081810360008301526150a281614c7b565b9050919050565b600060208201905081810360008301526150c281614c9e565b9050919050565b600060208201905081810360008301526150e281614cc1565b9050919050565b6000602082019050818103600083015261510281614ce4565b9050919050565b6000602082019050818103600083015261512281614d07565b9050919050565b6000602082019050818103600083015261514281614d2a565b9050919050565b6000602082019050818103600083015261516281614d4d565b9050919050565b6000602082019050818103600083015261518281614d70565b9050919050565b600060208201905081810360008301526151a281614d93565b9050919050565b600060208201905081810360008301526151c281614dd9565b9050919050565b600060208201905081810360008301526151e281614dfc565b9050919050565b6000602082019050818103600083015261520281614e1f565b9050919050565b600060208201905061521e6000830184614e42565b92915050565b600060a0820190506152396000830188614e42565b6152466020830187614b3e565b81810360408301526152588186614ad1565b90506152676060830185614ac2565b6152746080830184614e42565b9695505050505050565b60006060820190506152936000830186614e42565b6152a06020830185614e42565b6152ad6040830184614e42565b949350505050565b60006020820190506152ca6000830184614e51565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061533b82615495565b915061534683615495565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561537b5761537a61553a565b5b828201905092915050565b600061539182615495565b915061539c83615495565b9250826153ac576153ab615569565b5b828204905092915050565b60006153c282615495565b91506153cd83615495565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156154065761540561553a565b5b828202905092915050565b600061541c82615495565b915061542783615495565b92508282101561543a5761543961553a565b5b828203905092915050565b600061545082615475565b9050919050565b600061546282615475565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006154b782615495565b9050919050565b60005b838110156154dc5780820151818401526020810190506154c1565b838111156154eb576000848401525b50505050565b60006154fc82615495565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561552f5761552e61553a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20313600000000600082015250565b7f6c6971756964697479206665652070657263656e74616765206d75737420626560008201527f206265747765656e203020746f20313030000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220666565206d757374206265206c657373207468616e203160008201527f3600000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420696e2070726573616c652e0000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203136000000600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b615ad981615445565b8114615ae457600080fd5b50565b615af081615457565b8114615afb57600080fd5b50565b615b0781615469565b8114615b1257600080fd5b50565b615b1e81615495565b8114615b2957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122021c353b66714fdadb476583a51040a3e4ee2efe53d283aaf5f7b69cf6f4b5f9c64736f6c6343000805003300000000000000000000000090f7d9821bb15f29178b0e32d736ccfb1aff10a600000000000000000000000079dcac4c939ca9c15e597f94e841f292bb4e8e04

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80638b4cee0811610139578063b515566a116100b6578063cf0848f71161007a578063cf0848f71461082f578063db8aeab114610858578063db92dbb614610881578063dd62ed3e146108ac578063de30aad1146108e9578063e1ab04c91461091257610251565b8063b515566a14610786578063c1187569146107af578063c3c8cd80146107d8578063c4081a4c146107ef578063c9567bf91461081857610251565b80639a7a23d6116100fd5780639a7a23d6146106a35780639bcadc14146106cc578063a43be57b14610709578063a9059cbb14610720578063b0c6030b1461075d57610251565b80638b4cee08146105d25780638da5cb5b146105fb5780638ee88c53146106265780638f02bb5b1461064f57806395d89b411461067857610251565b80633bbac579116101c75780636fc3eaec1161018b5780636fc3eaec1461050157806370a0823114610518578063715018a6146105555780638283052d1461056c578063844f30fb1461059557610251565b80633bbac57914610420578063437823ec1461045d5780634b740b16146104865780635d0044ca146104af5780635d098b38146104d857610251565b80631f53ac021161020e5780631f53ac021461033b57806323b872dd14610364578063273123b7146103a157806327f3a72a146103ca578063313ce567146103f557610251565b806306fdde0314610256578063095ea7b3146102815780630cc835a3146102be57806312dfbd33146102e757806318160ddd1461031057610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b61094f565b6040516102789190614f87565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906148d4565b61098c565b6040516102b59190614f43565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e09190614a1b565b6109aa565b005b3480156102f357600080fd5b5061030e60048036038101906103099190614a1b565b610a8d565b005b34801561031c57600080fd5b50610325610b3b565b6040516103329190615209565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d91906147d4565b610b4c565b005b34801561037057600080fd5b5061038b60048036038101906103869190614841565b610cf7565b6040516103989190614f43565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c3919061477a565b610dd0565b005b3480156103d657600080fd5b506103df610ec0565b6040516103ec9190615209565b60405180910390f35b34801561040157600080fd5b5061040a610ed0565b60405161041791906152b5565b60405180910390f35b34801561042c57600080fd5b506104476004803603810190610442919061477a565b610ed9565b6040516104549190614f43565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f91906147d4565b610f2f565b005b34801561049257600080fd5b506104ad60048036038101906104a891906149c1565b61101f565b005b3480156104bb57600080fd5b506104d660048036038101906104d19190614a1b565b6110d1565b005b3480156104e457600080fd5b506104ff60048036038101906104fa91906147d4565b61117f565b005b34801561050d57600080fd5b5061051661132a565b005b34801561052457600080fd5b5061053f600480360381019061053a919061477a565b6113d0565b60405161054c9190615209565b60405180910390f35b34801561056157600080fd5b5061056a611421565b005b34801561057857600080fd5b50610593600480360381019061058e919061477a565b611574565b005b3480156105a157600080fd5b506105bc60048036038101906105b7919061477a565b611664565b6040516105c99190614f43565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190614a1b565b6116ba565b005b34801561060757600080fd5b5061061061179d565b60405161061d9190614e75565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190614a1b565b6117c6565b005b34801561065b57600080fd5b5061067660048036038101906106719190614a1b565b6118ba565b005b34801561068457600080fd5b5061068d61199d565b60405161069a9190614f87565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c59190614894565b6119da565b005b3480156106d857600080fd5b506106f360048036038101906106ee919061477a565b611b0e565b6040516107009190614f43565b60405180910390f35b34801561071557600080fd5b5061071e611b64565b005b34801561072c57600080fd5b50610747600480360381019061074291906148d4565b611c16565b6040516107549190614f43565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190614914565b611c34565b005b34801561079257600080fd5b506107ad60048036038101906107a89190614914565b611d6e565b005b3480156107bb57600080fd5b506107d660048036038101906107d191906149c1565b611fa8565b005b3480156107e457600080fd5b506107ed612059565b005b3480156107fb57600080fd5b5061081660048036038101906108119190614a1b565b612107565b005b34801561082457600080fd5b5061082d6121ea565b005b34801561083b57600080fd5b50610856600480360381019061085191906147d4565b61277b565b005b34801561086457600080fd5b5061087f600480360381019061087a9190614961565b61286b565b005b34801561088d57600080fd5b506108966129a5565b6040516108a39190615209565b60405180910390f35b3480156108b857600080fd5b506108d360048036038101906108ce9190614801565b6129d7565b6040516108e09190615209565b60405180910390f35b3480156108f557600080fd5b50610910600480360381019061090b91906149c1565b612a5e565b005b34801561091e57600080fd5b506109396004803603810190610934919061477a565b612b10565b6040516109469190614f43565b60405180910390f35b60606040518060400160405280601781526020017f4d6f7468657273204964204c696b6520746f2046756e64000000000000000000815250905090565b60006109a0610999612b66565b8484612b6e565b6001905092915050565b6109b2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a36906150c9565b60405180910390fd5b6010811115610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90615069565b60405180910390fd5b8060108190555050565b610a95612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b19906150c9565b60405180910390fd5b633b9aca0081610b3291906153b7565b600b8190555050565b6000683635c9adc5dea00000905090565b610b54612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd8906150c9565b60405180910390fd5b600060056000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610d04848484612d39565b610dc584610d10612b66565b610dc085604051806060016040528060288152602001615b2d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d76612b66565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461351f9092919063ffffffff16565b612b6e565b600190509392505050565b610dd8612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c906150c9565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610ecb306113d0565b905090565b60006009905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610f37612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbb906150c9565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611027612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906150c9565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b6110d9612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d906150c9565b60405180910390fd5b633b9aca008161117691906153b7565b600f8190555050565b611187612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b906150c9565b60405180910390fd5b600060056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611332612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b6906150c9565b60405180910390fd5b60004790506113cd81613583565b50565b600061141a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613703565b9050919050565b611429612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906150c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61157c612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611600906150c9565b60405180910390fd5b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6116c2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611746906150c9565b60405180910390fd5b6010811115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a90615189565b60405180910390fd5b8060118190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117ce612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906150c9565b60405180910390fd5b6000600e541015801561187157506064600e5411155b6118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790615089565b60405180910390fd5b80600e8190555050565b6118c2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611946906150c9565b60405180910390fd5b6010811115611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90615109565b60405180910390fd5b8060128190555050565b60606040518060400160405280600481526020017f4d494c4600000000000000000000000000000000000000000000000000000000815250905090565b6119e2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a66906150c9565b60405180910390fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af790615029565b60405180910390fd5b611b0a8282613771565b5050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611b6c612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf0906150c9565b60405180910390fd5b6001601860156101000a81548160ff021916908315150217905550565b6000611c2a611c23612b66565b8484612d39565b6001905092915050565b611c3c612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc0906150c9565b60405180910390fd5b60005b82829050811015611d6957600160086000858585818110611cf057611cef615598565b5b9050602002016020810190611d05919061477a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d61906154f1565b915050611ccc565b505050565b611d76612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfa906150c9565b60405180910390fd5b60005b82829050811015611fa357601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611e5d57611e5c615598565b5b9050602002016020810190611e72919061477a565b73ffffffffffffffffffffffffffffffffffffffff1614158015611f0b5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16838383818110611edd57611edc615598565b5b9050602002016020810190611ef2919061477a565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611f9057600160076000858585818110611f2957611f28615598565b5b9050602002016020810190611f3e919061477a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611f9b906154f1565b915050611e06565b505050565b611fb0612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461203d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612034906150c9565b60405180910390fd5b806018806101000a81548160ff02191690831515021790555050565b612061612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e5906150c9565b60405180910390fd5b60006120f9306113d0565b9050612104816137cc565b50565b61210f612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612193906150c9565b60405180910390fd5b60058111156121e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d790615049565b60405180910390fd5b80600c8190555050565b6121f2612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461227f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612276906150c9565b60405180910390fd5b601860149054906101000a900460ff16156122cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c6906151c9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061235f30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000612b6e565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156123a557600080fd5b505afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd91906147a7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247791906147a7565b6040518363ffffffff1660e01b8152600401612494929190614e90565b602060405180830381600087803b1580156124ae57600080fd5b505af11580156124c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e691906147a7565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061256f306113d0565b60008061257a61179d565b426040518863ffffffff1660e01b815260040161259c96959493929190614ee2565b6060604051808303818588803b1580156125b557600080fd5b505af11580156125c9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125ee9190614a48565b505050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612690929190614eb9565b602060405180830381600087803b1580156126aa57600080fd5b505af11580156126be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e291906149ee565b506001601860146101000a81548160ff021916908315150217905550600160196000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612783612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612810576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612807906150c9565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612873612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f7906150c9565b60405180910390fd5b60005b8383905081101561299f57816006600086868581811061292657612925615598565b5b905060200201602081019061293b919061477a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080612997906154f1565b915050612903565b50505050565b60006129d2601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113d0565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612a66612b66565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aea906150c9565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd5906151a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4590614fe9565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d2c9190615209565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da090615149565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1090614fa9565b60405180910390fd5b60008111612e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e53906150e9565b60405180910390fd5b612e6461179d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ed25750612ea261179d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561337557600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f7b5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612f8457600080fd5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561302c5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561308a57600f548161303e846113d0565b6130489190615330565b1115613089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161308090615169565b60405180910390fd5b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156131355750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561318b5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561328c57601860149054906101000a900460ff166131df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d6906151e9565b60405180910390fd5b601860159054906101000a900460ff16806132435750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327990615129565b60405180910390fd5b601054600d819055505b6000613297306113d0565b9050601860199054906101000a900460ff161580156133045750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561331c5750601860149054906101000a900460ff165b1561337357601154600d81905550600b5481111561337257601860179054906101000a900460ff1661334e57600b5490505b6000600e5411156133675761336281613a54565b613371565b61337081613bc6565b5b5b5b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061341c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806134335750601860169054906101000a900460ff165b1561343d57600090505b601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134e15750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561350d5760188054906101000a900460ff161561350757601254600d8190555061350c565b600090505b5b61351984848484613c21565b50505050565b6000838311158290613567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355e9190614f87565b60405180910390fd5b50600083856135769190615411565b9050809150509392505050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135d2600284613c4e90919063ffffffff16565b6040516135de90614e60565b60006040518083038185875af1925050503d806000811461361b576040519150601f19603f3d011682016040523d82523d6000602084013e613620565b606091505b505090506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613673600285613c4e90919063ffffffff16565b60405161367f90614e60565b60006040518083038185875af1925050503d80600081146136bc576040519150601f19603f3d011682016040523d82523d6000602084013e6136c1565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b982826040516136f6929190614f5e565b60405180910390a1505050565b600060095482111561374a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161374190614fc9565b60405180910390fd5b6000613754613c98565b90506137698184613c4e90919063ffffffff16565b915050919050565b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6001601860196101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613804576138036155c7565b5b6040519080825280602002602001820160405280156138325781602001602082028036833780820191505090505b509050308160008151811061384a57613849615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ec57600080fd5b505afa158015613900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392491906147a7565b8160018151811061393857613937615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061399f30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b6e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a03959493929190615224565b600060405180830381600087803b158015613a1d57600080fd5b505af1158015613a31573d6000803e3d6000fd5b50505050506000601860196101000a81548160ff02191690831515021790555050565b6001601860196101000a81548160ff0219169083151502179055506000600e546064613a809190615411565b90506000613aac6064613a9e600e5486613cc390919063ffffffff16565b613c4e90919063ffffffff16565b90506000613ac4600283613c4e90919063ffffffff16565b90506000613adb8286613d3e90919063ffffffff16565b90506000479050613aeb82613d88565b6000613b008247613d3e90919063ffffffff16565b90506000613b2a6064613b1c8985613cc390919063ffffffff16565b613c4e90919063ffffffff16565b9050613b3581613583565b60008183613b439190615411565b9050600086118015613b555750600081115b15613ba057613b648682613fda565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561858289604051613b979392919061527e565b60405180910390a15b50505050505050506000601860196101000a81548160ff02191690831515021790555050565b6001601860196101000a81548160ff021916908315150217905550613bea81613d88565b60004790506000811115613c0257613c0147613583565b5b506000601860196101000a81548160ff02191690831515021790555050565b80613c2f57613c2e6140ce565b5b613c3a848484614111565b80613c4857613c476142dc565b5b50505050565b6000613c9083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506142f0565b905092915050565b6000806000613ca5614353565b91509150613cbc8183613c4e90919063ffffffff16565b9250505090565b600080831415613cd65760009050613d38565b60008284613ce491906153b7565b9050828482613cf39190615386565b14613d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d2a906150a9565b60405180910390fd5b809150505b92915050565b6000613d8083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061351f565b905092915050565b6000600267ffffffffffffffff811115613da557613da46155c7565b5b604051908082528060200260200182016040528015613dd35781602001602082028036833780820191505090505b5090503081600081518110613deb57613dea615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613e8d57600080fd5b505afa158015613ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ec591906147a7565b81600181518110613ed957613ed8615598565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613f4030601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b6e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613fa4959493929190615224565b600060405180830381600087803b158015613fbe57600080fd5b505af1158015613fd2573d6000803e3d6000fd5b505050505050565b61400730601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b6e565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061405361179d565b426040518863ffffffff1660e01b815260040161407596959493929190614ee2565b6060604051808303818588803b15801561408e57600080fd5b505af11580156140a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906140c79190614a48565b5050505050565b6000600c541480156140e257506000600d54145b156140ec5761410f565b600c54601381905550600d546014819055506000600c819055506000600d819055505b565b600080600080600080614123876143b5565b95509550955095509550955061418186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d3e90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061421685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506142628161447b565b61426c8483614538565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516142c99190615209565b60405180910390a3505050505050505050565b601354600c81905550601454600d81905550565b60008083118290614337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161432e9190614f87565b60405180910390fd5b50600083856143469190615386565b9050809150509392505050565b600080600060095490506000683635c9adc5dea000009050614389683635c9adc5dea00000600954613c4e90919063ffffffff16565b8210156143a857600954683635c9adc5dea000009350935050506143b1565b81819350935050505b9091565b60008060008060008060008060006143d28a600c54600d54614572565b92509250925060006143e2613c98565b905060008060006143f58e878787614608565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600080828461442c9190615330565b905083811015614471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161446890615009565b60405180910390fd5b8091505092915050565b6000614485613c98565b9050600061449c8284613cc390919063ffffffff16565b90506144f081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461441d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61454d82600954613d3e90919063ffffffff16565b60098190555061456881600a5461441d90919063ffffffff16565b600a819055505050565b60008060008061459e6064614590888a613cc390919063ffffffff16565b613c4e90919063ffffffff16565b905060006145c860646145ba888b613cc390919063ffffffff16565b613c4e90919063ffffffff16565b905060006145f1826145e3858c613d3e90919063ffffffff16565b613d3e90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806146218589613cc390919063ffffffff16565b905060006146388689613cc390919063ffffffff16565b9050600061464f8789613cc390919063ffffffff16565b905060006146788261466a8587613d3e90919063ffffffff16565b613d3e90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000813590506146a081615ad0565b92915050565b6000815190506146b581615ad0565b92915050565b6000813590506146ca81615ae7565b92915050565b60008083601f8401126146e6576146e56155fb565b5b8235905067ffffffffffffffff811115614703576147026155f6565b5b60208301915083602082028301111561471f5761471e615600565b5b9250929050565b60008135905061473581615afe565b92915050565b60008151905061474a81615afe565b92915050565b60008135905061475f81615b15565b92915050565b60008151905061477481615b15565b92915050565b6000602082840312156147905761478f61560a565b5b600061479e84828501614691565b91505092915050565b6000602082840312156147bd576147bc61560a565b5b60006147cb848285016146a6565b91505092915050565b6000602082840312156147ea576147e961560a565b5b60006147f8848285016146bb565b91505092915050565b600080604083850312156148185761481761560a565b5b600061482685828601614691565b925050602061483785828601614691565b9150509250929050565b60008060006060848603121561485a5761485961560a565b5b600061486886828701614691565b935050602061487986828701614691565b925050604061488a86828701614750565b9150509250925092565b600080604083850312156148ab576148aa61560a565b5b60006148b985828601614691565b92505060206148ca85828601614726565b9150509250929050565b600080604083850312156148eb576148ea61560a565b5b60006148f985828601614691565b925050602061490a85828601614750565b9150509250929050565b6000806020838503121561492b5761492a61560a565b5b600083013567ffffffffffffffff81111561494957614948615605565b5b614955858286016146d0565b92509250509250929050565b60008060006040848603121561497a5761497961560a565b5b600084013567ffffffffffffffff81111561499857614997615605565b5b6149a4868287016146d0565b935093505060206149b786828701614726565b9150509250925092565b6000602082840312156149d7576149d661560a565b5b60006149e584828501614726565b91505092915050565b600060208284031215614a0457614a0361560a565b5b6000614a128482850161473b565b91505092915050565b600060208284031215614a3157614a3061560a565b5b6000614a3f84828501614750565b91505092915050565b600080600060608486031215614a6157614a6061560a565b5b6000614a6f86828701614765565b9350506020614a8086828701614765565b9250506040614a9186828701614765565b9150509250925092565b6000614aa78383614ab3565b60208301905092915050565b614abc81615445565b82525050565b614acb81615445565b82525050565b6000614adc826152e0565b614ae68185615303565b9350614af1836152d0565b8060005b83811015614b22578151614b098882614a9b565b9750614b14836152f6565b925050600181019050614af5565b5085935050505092915050565b614b3881615469565b82525050565b614b47816154ac565b82525050565b6000614b58826152eb565b614b62818561531f565b9350614b728185602086016154be565b614b7b8161560f565b840191505092915050565b6000614b9360238361531f565b9150614b9e82615620565b604082019050919050565b6000614bb6602a8361531f565b9150614bc18261566f565b604082019050919050565b6000614bd960228361531f565b9150614be4826156be565b604082019050919050565b6000614bfc601b8361531f565b9150614c078261570d565b602082019050919050565b6000614c1f60398361531f565b9150614c2a82615736565b604082019050919050565b6000614c4260178361531f565b9150614c4d82615785565b602082019050919050565b6000614c65601c8361531f565b9150614c70826157ae565b602082019050919050565b6000614c8860318361531f565b9150614c93826157d7565b604082019050919050565b6000614cab60218361531f565b9150614cb682615826565b604082019050919050565b6000614cce60208361531f565b9150614cd982615875565b602082019050919050565b6000614cf160298361531f565b9150614cfc8261589e565b604082019050919050565b6000614d1460218361531f565b9150614d1f826158ed565b604082019050919050565b6000614d37600f8361531f565b9150614d428261593c565b602082019050919050565b6000614d5a60258361531f565b9150614d6582615965565b604082019050919050565b6000614d7d60238361531f565b9150614d88826159b4565b604082019050919050565b6000614da0601d8361531f565b9150614dab82615a03565b602082019050919050565b6000614dc3600083615314565b9150614dce82615a2c565b600082019050919050565b6000614de660248361531f565b9150614df182615a2f565b604082019050919050565b6000614e0960178361531f565b9150614e1482615a7e565b602082019050919050565b6000614e2c60188361531f565b9150614e3782615aa7565b602082019050919050565b614e4b81615495565b82525050565b614e5a8161549f565b82525050565b6000614e6b82614db6565b9150819050919050565b6000602082019050614e8a6000830184614ac2565b92915050565b6000604082019050614ea56000830185614ac2565b614eb26020830184614ac2565b9392505050565b6000604082019050614ece6000830185614ac2565b614edb6020830184614e42565b9392505050565b600060c082019050614ef76000830189614ac2565b614f046020830188614e42565b614f116040830187614b3e565b614f1e6060830186614b3e565b614f2b6080830185614ac2565b614f3860a0830184614e42565b979650505050505050565b6000602082019050614f586000830184614b2f565b92915050565b6000604082019050614f736000830185614b2f565b614f806020830184614b2f565b9392505050565b60006020820190508181036000830152614fa18184614b4d565b905092915050565b60006020820190508181036000830152614fc281614b86565b9050919050565b60006020820190508181036000830152614fe281614ba9565b9050919050565b6000602082019050818103600083015261500281614bcc565b9050919050565b6000602082019050818103600083015261502281614bef565b9050919050565b6000602082019050818103600083015261504281614c12565b9050919050565b6000602082019050818103600083015261506281614c35565b9050919050565b6000602082019050818103600083015261508281614c58565b9050919050565b600060208201905081810360008301526150a281614c7b565b9050919050565b600060208201905081810360008301526150c281614c9e565b9050919050565b600060208201905081810360008301526150e281614cc1565b9050919050565b6000602082019050818103600083015261510281614ce4565b9050919050565b6000602082019050818103600083015261512281614d07565b9050919050565b6000602082019050818103600083015261514281614d2a565b9050919050565b6000602082019050818103600083015261516281614d4d565b9050919050565b6000602082019050818103600083015261518281614d70565b9050919050565b600060208201905081810360008301526151a281614d93565b9050919050565b600060208201905081810360008301526151c281614dd9565b9050919050565b600060208201905081810360008301526151e281614dfc565b9050919050565b6000602082019050818103600083015261520281614e1f565b9050919050565b600060208201905061521e6000830184614e42565b92915050565b600060a0820190506152396000830188614e42565b6152466020830187614b3e565b81810360408301526152588186614ad1565b90506152676060830185614ac2565b6152746080830184614e42565b9695505050505050565b60006060820190506152936000830186614e42565b6152a06020830185614e42565b6152ad6040830184614e42565b949350505050565b60006020820190506152ca6000830184614e51565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061533b82615495565b915061534683615495565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561537b5761537a61553a565b5b828201905092915050565b600061539182615495565b915061539c83615495565b9250826153ac576153ab615569565b5b828204905092915050565b60006153c282615495565b91506153cd83615495565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156154065761540561553a565b5b828202905092915050565b600061541c82615495565b915061542783615495565b92508282101561543a5761543961553a565b5b828203905092915050565b600061545082615475565b9050919050565b600061546282615475565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006154b782615495565b9050919050565b60005b838110156154dc5780820151818401526020810190506154c1565b838111156154eb576000848401525b50505050565b60006154fc82615495565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561552f5761552e61553a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f746178206d757374206265206c657373207468616e2035000000000000000000600082015250565b7f42757920666565206d757374206265206c657373207468616e20313600000000600082015250565b7f6c6971756964697479206665652070657263656e74616765206d75737420626560008201527f206265747765656e203020746f20313030000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220666565206d757374206265206c657373207468616e203160008201527f3600000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420696e2070726573616c652e0000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c20666565206d757374206265206c657373207468616e203136000000600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b615ad981615445565b8114615ae457600080fd5b50565b615af081615457565b8114615afb57600080fd5b50565b615b0781615469565b8114615b1257600080fd5b50565b615b1e81615495565b8114615b2957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122021c353b66714fdadb476583a51040a3e4ee2efe53d283aaf5f7b69cf6f4b5f9c64736f6c63430008050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000090f7d9821bb15f29178b0e32d736ccfb1aff10a600000000000000000000000079dcac4c939ca9c15e597f94e841f292bb4e8e04

-----Decoded View---------------
Arg [0] : devWallet (address): 0x90f7d9821BB15F29178b0e32d736cCFB1AFF10A6
Arg [1] : marketingWallet (address): 0x79DCAC4c939ca9C15e597F94E841F292Bb4E8e04

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000090f7d9821bb15f29178b0e32d736ccfb1aff10a6
Arg [1] : 00000000000000000000000079dcac4c939ca9c15e597f94e841f292bb4e8e04


Deployed Bytecode Sourcemap

3858:18353:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6609:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7461:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19072:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19970:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6886:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17939:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7630:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20603:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21609:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6795:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20704:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18137:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18852:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20112:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17707:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21448:153;;;;;;;;;;;;;:::i;:::-;;6989:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:148;;;;;;;;;;;;;:::i;:::-;;20983:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18380:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19224:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2723:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19703:259;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19382:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6700:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21826:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21083:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21187:77;;;;;;;;;;;;;:::i;:::-;;7135:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20801:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20319:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18950:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21276:160;;;;;;;;;;;;;:::i;:::-;;19557:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16928:767;;;;;;;;;;;;;:::i;:::-;;18261:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18500:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21717:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7310:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20221:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18718:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6609:83;6646:13;6679:5;;;;;;;;;;;;;;;;;6672:12;;6609:83;:::o;7461:161::-;7536:4;7553:39;7562:12;:10;:12::i;:::-;7576:7;7585:6;7553:8;:39::i;:::-;7610:4;7603:11;;7461:161;;;;:::o;19072:144::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19149:2:::1;19142:3;:9;;19134:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19205:3;19195:7;:13;;;;19072:144:::0;:::o;19970:134::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20091:5:::1;20080:8;:16;;;;:::i;:::-;20054:23;:42;;;;19970:134:::0;:::o;6886:95::-;6939:7;4421:12;6959:14;;6886:95;:::o;17939:190::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18048:5:::1;18015:18;:30;18034:10;;;;;;;;;;;18015:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18077:3;18064:10;;:16;;;;;;;;;;;;;;;;;;18117:4;18091:18;:23;18110:3;18091:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;17939:190:::0;:::o;7630:313::-;7728:4;7745:36;7755:6;7763:9;7774:6;7745:9;:36::i;:::-;7792:121;7801:6;7809:12;:10;:12::i;:::-;7823:89;7861:6;7823:89;;;;;;;;;;;;;;;;;:11;:19;7835:6;7823:19;;;;;;;;;;;;;;;:33;7843:12;:10;:12::i;:::-;7823:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7792:8;:121::i;:::-;7931:4;7924:11;;7630:313;;;;;:::o;20603:89::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20679:5:::1;20663;:13;20669:6;20663:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;20603:89:::0;:::o;21609:100::-;21653:4;21677:24;21695:4;21677:9;:24::i;:::-;21670:31;;21609:100;:::o;6795:83::-;6836:5;4747:1;6854:16;;6795:83;:::o;20704:89::-;20752:4;20776:5;:9;20782:2;20776:9;;;;;;;;;;;;;;;;;;;;;;;;;20769:16;;20704:89;;;:::o;18137:112::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18237:4:::1;18212:18;:22;18231:2;18212:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18137:112:::0;:::o;18852:90::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18929:5:::1;18916:10;;:18;;;;;;;;;;;;;;;;;;18852:90:::0;:::o;20112:101::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20200:5:::1;20194:3;:11;;;;:::i;:::-;20177:14;:28;;;;20112:101:::0;:::o;17707:224::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17832:5:::1;17793:18;:36;17812:16;;;;;;;;;;;17793:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;17867:9;17848:16;;:28;;;;;;;;;;;;;;;;;;17919:4;17887:18;:29;17906:9;17887:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17707:224:::0;:::o;21448:153::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21500:26:::1;21529:21;21500:50;;21561:32;21574:18;21561:12;:32::i;:::-;21489:112;21448:153::o:0;6989:138::-;7055:7;7082:37;7102:7;:16;7110:7;7102:16;;;;;;;;;;;;;;;;7082:19;:37::i;:::-;7075:44;;6989:138;;;:::o;2937:148::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3044:1:::1;3007:40;;3028:6;::::0;::::1;;;;;;;;3007:40;;;;;;;;;;;;3075:1;3058:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2937:148::o:0;20983:88::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21058:5:::1;21043:8;:12;21052:2;21043:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;20983:88:::0;:::o;18380:112::-;18438:4;18462:18;:22;18481:2;18462:22;;;;;;;;;;;;;;;;;;;;;;;;;18455:29;;18380:112;;;:::o;19224:150::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19304:2:::1;19296:4;:10;;19288:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;19362:4;19351:8;:15;;;;19224:150:::0;:::o;2723:79::-;2761:7;2788:6;;;;;;;;;;;2781:13;;2723:79;:::o;19703:259::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19816:1:::1;19789:23;;:28;;:62;;;;;19848:3;19821:23;;:30;;19789:62;19781:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;19942:12;19916:23;:38;;;;19703:259:::0;:::o;19382:159::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19464:2:::1;19457:3;:9;;19449:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;19530:3;19515:12;:18;;;;19382:159:::0;:::o;6700:87::-;6739:13;6772:7;;;;;;;;;;;;;;;;;6765:14;;6700:87;:::o;21826:244::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21935:13:::1;;;;;;;;;;;21927:21;;:4;:21;;;;21919:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;22021:41;22050:4;22056:5;22021:28;:41::i;:::-;21826:244:::0;;:::o;21083:96::-;21135:4;21159:8;:12;21168:2;21159:12;;;;;;;;;;;;;;;;;;;;;;;;;21152:19;;21083:96;;;:::o;21187:77::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21252:4:::1;21237:12;;:19;;;;;;;;;;;;;;;;;;21187:77::o:0;7135:167::-;7213:4;7230:42;7240:12;:10;:12::i;:::-;7254:9;7265:6;7230:9;:42::i;:::-;7290:4;7283:11;;7135:167;;;;:::o;20801:170::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20879:6:::1;20874:90;20895:4;;:11;;20891:1;:15;20874:90;;;20948:4;20928:8;:17;20937:4;;20942:1;20937:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20928:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20908:3;;;;;:::i;:::-;;;;20874:90;;;;20801:170:::0;;:::o;20319:272::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20395:6:::1;20390:194;20411:5;;:12;;20407:1;:16;20390:194;;;20461:13;;;;;;;;;;;20449:25;;:5;;20455:1;20449:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:25;;;;:65;;;;;20498:15;;;;;;;;;;;20478:36;;:5;;20484:1;20478:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:36;;;;20449:65;20445:128;;;20553:4;20535:5;:15;20541:5;;20547:1;20541:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20535:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20445:128;20425:3;;;;;:::i;:::-;;;;20390:194;;;;20319:272:::0;;:::o;18950:110::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19047:5:::1;19024:20;::::0;:28:::1;;;;;;;;;;;;;;;;;;18950:110:::0;:::o;21276:160::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21328:23:::1;21354:24;21372:4;21354:9;:24::i;:::-;21328:50;;21389:39;21412:15;21389:22;:39::i;:::-;21317:119;21276:160::o:0;19557:138::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19634:1:::1;19627:3;:8;;19619:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19684:3;19674:7;:13;;;;19557:138:::0;:::o;16928:767::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16992:11:::1;;;;;;;;;;;16991:12;16983:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17041:35;17098:42;17041:100;;17170:16;17152:15;;:34;;;;;;;;;;;;;;;;;;17197:58;17214:4;17229:15;;;;;;;;;;;4421:12;17197:8;:58::i;:::-;17300:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17282:56;;;17347:4;17354:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17282:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17266:13;;:112;;;;;;;;;;;;;;;;;;17389:15;;;;;;;;;;;:31;;;17428:21;17459:4;17465:24;17483:4;17465:9;:24::i;:::-;17490:1;17492::::0;17494:7:::1;:5;:7::i;:::-;17502:15;17389:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17536:13;;;;;;;;;;;17529:29;;;17567:15;;;;;;;;;;;17585:14;17529:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17625:4;17611:11;;:18;;;;;;;;;;;;;;;;;;17683:4;17640:25;:40;17666:13;;;;;;;;;;;17640:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;16972:723;16928:767::o:0;18261:111::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18359:5:::1;18334:18;:22;18353:2;18334:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;18261:111:::0;:::o;18500:206::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18599:6:::1;18594:105;18615:3;;:10;;18611:1;:14;18594:105;;;18682:5;18647:24;:32;18672:3;;18676:1;18672:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18647:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;18627:3;;;;;:::i;:::-;;;;18594:105;;;;18500:206:::0;;;:::o;21717:101::-;21762:4;21786:24;21796:13;;;;;;;;;;;21786:9;:24::i;:::-;21779:31;;21717:101;:::o;7310:143::-;7391:7;7418:11;:18;7430:5;7418:18;;;;;;;;;;;;;;;:27;7437:7;7418:27;;;;;;;;;;;;;;;;7411:34;;7310:143;;;;:::o;20221:86::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20294:5:::1;20283:8;;:16;;;;;;;;;;;;;;;;;;20221:86:::0;:::o;18718:122::-;18780:4;18804:24;:28;18829:2;18804:28;;;;;;;;;;;;;;;;;;;;;;;;;18797:35;;18718:122;;;:::o;132:98::-;185:7;212:10;205:17;;132:98;:::o;8558:335::-;8668:1;8651:19;;:5;:19;;;;8643:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8749:1;8730:21;;:7;:21;;;;8722:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8831:6;8801:11;:18;8813:5;8801:18;;;;;;;;;;;;;;;:27;8820:7;8801:27;;;;;;;;;;;;;;;:36;;;;8869:7;8853:32;;8862:5;8853:32;;;8878:6;8853:32;;;;;;:::i;:::-;;;;;;;;8558:335;;;:::o;8905:2092::-;9009:1;8993:18;;:4;:18;;;;8985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9086:1;9072:16;;:2;:16;;;;9064:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9156:1;9147:6;:10;9139:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9227:7;:5;:7::i;:::-;9219:15;;:4;:15;;;;:32;;;;;9244:7;:5;:7::i;:::-;9238:13;;:2;:13;;;;9219:32;9216:1313;;;9291:5;:11;9297:4;9291:11;;;;;;;;;;;;;;;;;;;;;;;;;9290:12;:26;;;;;9307:5;:9;9313:2;9307:9;;;;;;;;;;;;;;;;;;;;;;;;;9306:10;9290:26;9282:35;;;;;;9343:13;;;;;;;;;;;9337:19;;:2;:19;;;;:52;;;;;9361:24;:28;9386:2;9361:28;;;;;;;;;;;;;;;;;;;;;;;;;9360:29;9337:52;9334:189;;;9453:14;;9443:6;9418:22;9436:2;9418:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;9410:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;9334:189;9562:13;;;;;;;;;;;9554:21;;:4;:21;;;:55;;;;;9593:15;;;;;;;;;;;9579:30;;:2;:30;;;;9554:55;:82;;;;;9614:18;:22;9633:2;9614:22;;;;;;;;;;;;;;;;;;;;;;;;;9613:23;9554:82;9551:283;;;9665:11;;;;;;;;;;;9657:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9733:12;;;;;;;;;;;:28;;;;9749:8;:12;9758:2;9749:12;;;;;;;;;;;;;;;;;;;;;;;;;9733:28;9724:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9811:7;;9800:8;:18;;;;9551:283;9848:28;9879:24;9897:4;9879:9;:24::i;:::-;9848:55;;9924:6;;;;;;;;;;;9923:7;:32;;;;;9942:13;;;;;;;;;;;9934:21;;:4;:21;;;;9923:32;:47;;;;;9959:11;;;;;;;;;;;9923:47;9920:598;;;10004:8;;9993;:19;;;;10059:23;;10036:20;:46;10033:470;;;10111:8;;;;;;;;;;;10107:111;;10171:23;;10148:46;;10107:111;10272:1;10246:23;;:27;10242:217;;;10302:36;10317:20;10302:14;:36::i;:::-;10242:217;;;10395:40;10414:20;10395:18;:40::i;:::-;10242:217;10033:470;9920:598;9253:1276;9216:1313;10539:12;10554:4;10539:19;;10574:18;:24;10593:4;10574:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10602:18;:22;10621:2;10602:22;;;;;;;;;;;;;;;;;;;;;;;;;10574:50;:64;;;;10628:10;;;;;;;;;;;10574:64;10571:111;;;10665:5;10655:15;;10571:111;10698:25;:31;10724:4;10698:31;;;;;;;;;;;;;;;;;;;;;;;;;10697:32;:66;;;;;10734:25;:29;10760:2;10734:29;;;;;;;;;;;;;;;;;;;;;;;;;10733:30;10697:66;10694:237;;;10784:20;;;;;;;;;;10780:140;;;10836:12;;10825:8;:23;;;;10780:140;;;10899:5;10889:15;;10780:140;10694:237;10951:38;10966:4;10971:2;10974:6;10981:7;10951:14;:38::i;:::-;8974:2023;8905:2092;;;:::o;1269:190::-;1355:7;1388:1;1383;:6;;1391:12;1375:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1415:9;1431:1;1427;:5;;;;:::i;:::-;1415:17;;1450:1;1443:8;;;1269:190;;;;;:::o;13801:242::-;13859:8;13873:10;;;;;;;;;;;:15;;13896:13;13907:1;13896:6;:10;;:13;;;;:::i;:::-;13873:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13858:56;;;13926:14;13946:16;;;;;;;;;;;:21;;13975:13;13986:1;13975:6;:10;;:13;;;;:::i;:::-;13946:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13925:68;;;14011:24;14020:3;14025:9;14011:24;;;;;;;:::i;:::-;;;;;;;;13847:196;;13801:242;:::o;7951:254::-;8018:7;8057;;8046;:18;;8038:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8122:19;8145:10;:8;:10::i;:::-;8122:33;;8173:24;8185:11;8173:7;:11;;:24;;;;:::i;:::-;8166:31;;;7951:254;;;:::o;22078:130::-;22195:5;22161:25;:31;22187:4;22161:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22078:130;;:::o;13296:489::-;5850:4;5841:6;;:13;;;;;;;;;;;;;;;;;;13380:21:::1;13418:1;13404:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13380:40;;13449:4;13431;13436:1;13431:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13475:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13465:4;13470:1;13465:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13508:62;13525:4;13540:15;;;;;;;;;;;13558:11;13508:8;:62::i;:::-;13581:15;;;;;;;;;;;:66;;;13662:11;13688:1;13704:4;13731;13751:15;13581:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13369:416;5886:5:::0;5877:6;;:14;;;;;;;;;;;;;;;;;;13296:489;:::o;11526:968::-;5850:4;5841:6;;:13;;;;;;;;;;;;;;;;;;11611:25:::1;11645:23;;11639:3;:29;;;;:::i;:::-;11611:57;;11679:23;11705:58;11759:3;11705:49;11730:23;;11705:20;:24;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;11679:84;;11774:15;11792:22;11812:1;11792:15;:19;;:22;;;;:::i;:::-;11774:40;;11827:26;11856:33;11881:7;11856:20;:24;;:33;;;;:::i;:::-;11827:62;;11900:25;11928:21;11900:49;;11962:36;11979:18;11962:16;:36::i;:::-;12011:18;12032:44;12058:17;12032:21;:25;;:44;;;;:::i;:::-;12011:65;;12089:18;12110:42;12148:3;12110:33;12125:17;12110:10;:14;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;12089:63;;12163:24;12176:10;12163:12;:24::i;:::-;12200:23;12239:10;12226;:23;;;;:::i;:::-;12200:49;;12276:1;12266:7;:11;:34;;;;;12299:1;12281:15;:19;12266:34;12262:225;;;12347:38;12360:7;12369:15;12347:12;:38::i;:::-;12407:68;12422:18;12442:15;12459;12407:68;;;;;;;;:::i;:::-;;;;;;;;12262:225;11600:894;;;;;;;;5886:5:::0;5877:6;;:14;;;;;;;;;;;;;;;;;;11526:968;:::o;12502:307::-;5850:4;5841:6;;:13;;;;;;;;;;;;;;;;;;12601:38:::1;12618:20;12601:16;:38::i;:::-;12652:26;12681:21;12652:50;;12737:1;12716:18;:22;12713:89;;;12755:35;12768:21;12755:12;:35::i;:::-;12713:89;12580:229;5886:5:::0;5877:6;;:14;;;;;;;;;;;;;;;;;;12502:307;:::o;14055:263::-;14167:7;14163:40;;14189:14;:12;:14::i;:::-;14163:40;14214:44;14232:6;14240:9;14251:6;14214:17;:44::i;:::-;14273:7;14269:41;;14295:15;:13;:15::i;:::-;14269:41;14055:263;;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;15659:163::-;15700:7;15721:15;15738;15757:19;:17;:19::i;:::-;15720:56;;;;15794:20;15806:7;15794;:11;;:20;;;;:::i;:::-;15787:27;;;;15659:163;:::o;1467:245::-;1525:7;1553:1;1548;:6;1545:46;;;1578:1;1571:8;;;;1545:46;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1467:245;;;;;:::o;1125:136::-;1183:7;1210:43;1214:1;1217;1210:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1203:50;;1125:136;;;;:::o;12817:471::-;12883:21;12921:1;12907:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12883:40;;12952:4;12934;12939:1;12934:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12978:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12968:4;12973:1;12968:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13011:62;13028:4;13043:15;;;;;;;;;;;13061:11;13011:8;:62::i;:::-;13084:15;;;;;;;;;;;:66;;;13165:11;13191:1;13207:4;13234;13254:15;13084:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12872:416;12817:471;:::o;11005:513::-;11153:62;11170:4;11185:15;;;;;;;;;;;11203:11;11153:8;:62::i;:::-;11258:15;;;;;;;;;;;:31;;;11297:9;11330:4;11350:11;11376:1;11419;11462:7;:5;:7::i;:::-;11484:15;11258:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11005:513;;:::o;8213:210::-;8270:1;8259:7;;:12;:29;;;;;8287:1;8275:8;;:13;8259:29;8256:41;;;8290:7;;8256:41;8325:7;;8307:15;:25;;;;8362:8;;8343:16;:27;;;;8391:1;8381:7;:11;;;;8414:1;8403:8;:12;;;;8213:210;:::o;14326:490::-;14425:15;14442:23;14467:12;14481:23;14506:12;14520:13;14537:19;14548:7;14537:10;:19::i;:::-;14424:132;;;;;;;;;;;;14585:28;14605:7;14585;:15;14593:6;14585:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14567:7;:15;14575:6;14567:15;;;;;;;;;;;;;;;:46;;;;14645:39;14668:15;14645:7;:18;14653:9;14645:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14624:7;:18;14632:9;14624:18;;;;;;;;;;;;;;;:60;;;;14698:16;14708:5;14698:9;:16::i;:::-;14725:23;14737:4;14743;14725:11;:23::i;:::-;14781:9;14764:44;;14773:6;14764:44;;;14792:15;14764:44;;;;;;:::i;:::-;;;;;;;;14413:403;;;;;;14326:490;;;:::o;8435:115::-;8489:15;;8479:7;:25;;;;8526:16;;8515:8;:27;;;;8435:115::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;15830:255::-;15880:7;15889;15909:15;15927:7;;15909:25;;15945:15;4421:12;15945:25;;15994:20;4421:12;15994:7;;:11;;:20;;;;:::i;:::-;15984:7;:30;15981:60;;;16024:7;;4421:12;16016:25;;;;;;;;15981:60;16060:7;16069;16052:25;;;;;;15830:255;;;:::o;14824:468::-;14883:7;14892;14901;14910;14919;14928;14949:23;14974:12;14988:13;15005:39;15017:7;15026;;15035:8;;15005:11;:39::i;:::-;14948:96;;;;;;15055:19;15078:10;:8;:10::i;:::-;15055:33;;15100:15;15117:23;15142:12;15158:46;15170:7;15179:4;15185:5;15192:11;15158;:46::i;:::-;15099:105;;;;;;15223:7;15232:15;15249:4;15255:15;15272:4;15278:5;15215:69;;;;;;;;;;;;;;;;;;;14824:468;;;;;;;:::o;938:179::-;996:7;1016:9;1032:1;1028;:5;;;;:::i;:::-;1016:17;;1057:1;1052;:6;;1044:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;938:179;;;;:::o;16510:214::-;16563:19;16586:10;:8;:10::i;:::-;16563:33;;16607:13;16623:22;16633:11;16623:5;:9;;:22;;;;:::i;:::-;16607:38;;16683:33;16710:5;16683:7;:22;16699:4;16683:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16658:7;:22;16674:4;16658:22;;;;;;;;;;;;;;;:58;;;;16552:172;;16510:214;:::o;16732:147::-;16810:17;16822:4;16810:7;;:11;;:17;;;;:::i;:::-;16800:7;:27;;;;16851:20;16866:4;16851:10;;:14;;:20;;;;:::i;:::-;16838:10;:33;;;;16732:147;;:::o;15300:351::-;15393:7;15402;15411;15431:12;15446:28;15470:3;15446:19;15458:6;15446:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15431:43;;15485:13;15501:29;15526:3;15501:20;15513:7;15501;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15485:45;;15541:23;15567:28;15589:5;15567:17;15579:4;15567:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15541:54;;15614:15;15631:4;15637:5;15606:37;;;;;;;;;15300:351;;;;;;;:::o;16093:409::-;16203:7;16212;16221;16241:15;16259:24;16271:11;16259:7;:11;;:24;;;;:::i;:::-;16241:42;;16294:12;16309:21;16318:11;16309:4;:8;;:21;;;;:::i;:::-;16294:36;;16341:13;16357:22;16367:11;16357:5;:9;;:22;;;;:::i;:::-;16341:38;;16390:23;16416:28;16438:5;16416:17;16428:4;16416:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16390:54;;16463:7;16472:15;16489:4;16455:39;;;;;;;;;;16093:409;;;;;;;;:::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:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;479:568::-;552:8;562:6;612:3;605:4;597:6;593:17;589:27;579:2;;620:79;;:::i;:::-;579:2;733:6;720:20;710:30;;763:18;755:6;752:30;749:2;;;785:79;;:::i;:::-;749:2;899:4;891:6;887:17;875:29;;953:3;945:4;937:6;933:17;923:8;919:32;916:41;913:2;;;960:79;;:::i;:::-;913:2;569:478;;;;;:::o;1053:133::-;1096:5;1134:6;1121:20;1112:29;;1150:30;1174:5;1150:30;:::i;:::-;1102:84;;;;:::o;1192:137::-;1246:5;1277:6;1271:13;1262:22;;1293:30;1317:5;1293:30;:::i;:::-;1252:77;;;;:::o;1335:139::-;1381:5;1419:6;1406:20;1397:29;;1435:33;1462:5;1435:33;:::i;:::-;1387:87;;;;:::o;1480:143::-;1537:5;1568:6;1562:13;1553:22;;1584:33;1611:5;1584:33;:::i;:::-;1543:80;;;;:::o;1629:329::-;1688:6;1737:2;1725:9;1716:7;1712:23;1708:32;1705:2;;;1743:79;;:::i;:::-;1705:2;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1695:263;;;;:::o;1964:351::-;2034:6;2083:2;2071:9;2062:7;2058:23;2054:32;2051:2;;;2089:79;;:::i;:::-;2051:2;2209:1;2234:64;2290:7;2281:6;2270:9;2266:22;2234:64;:::i;:::-;2224:74;;2180:128;2041:274;;;;:::o;2321:345::-;2388:6;2437:2;2425:9;2416:7;2412:23;2408:32;2405:2;;;2443:79;;:::i;:::-;2405:2;2563:1;2588:61;2641:7;2632:6;2621:9;2617:22;2588:61;:::i;:::-;2578:71;;2534:125;2395:271;;;;:::o;2672:474::-;2740:6;2748;2797:2;2785:9;2776:7;2772:23;2768:32;2765:2;;;2803:79;;:::i;:::-;2765:2;2923:1;2948:53;2993:7;2984:6;2973:9;2969:22;2948:53;:::i;:::-;2938:63;;2894:117;3050:2;3076:53;3121:7;3112:6;3101:9;3097:22;3076:53;:::i;:::-;3066:63;;3021:118;2755:391;;;;;:::o;3152:619::-;3229:6;3237;3245;3294:2;3282:9;3273:7;3269:23;3265:32;3262:2;;;3300:79;;:::i;:::-;3262:2;3420:1;3445:53;3490:7;3481:6;3470:9;3466:22;3445:53;:::i;:::-;3435:63;;3391:117;3547:2;3573:53;3618:7;3609:6;3598:9;3594:22;3573:53;:::i;:::-;3563:63;;3518:118;3675:2;3701:53;3746:7;3737:6;3726:9;3722:22;3701:53;:::i;:::-;3691:63;;3646:118;3252:519;;;;;:::o;3777:468::-;3842:6;3850;3899:2;3887:9;3878:7;3874:23;3870:32;3867:2;;;3905:79;;:::i;:::-;3867:2;4025:1;4050:53;4095:7;4086:6;4075:9;4071:22;4050:53;:::i;:::-;4040:63;;3996:117;4152:2;4178:50;4220:7;4211:6;4200:9;4196:22;4178:50;:::i;:::-;4168:60;;4123:115;3857:388;;;;;:::o;4251:474::-;4319:6;4327;4376:2;4364:9;4355:7;4351:23;4347:32;4344:2;;;4382:79;;:::i;:::-;4344:2;4502:1;4527:53;4572:7;4563:6;4552:9;4548:22;4527:53;:::i;:::-;4517:63;;4473:117;4629:2;4655:53;4700:7;4691:6;4680:9;4676:22;4655:53;:::i;:::-;4645:63;;4600:118;4334:391;;;;;:::o;4731:559::-;4817:6;4825;4874:2;4862:9;4853:7;4849:23;4845:32;4842:2;;;4880:79;;:::i;:::-;4842:2;5028:1;5017:9;5013:17;5000:31;5058:18;5050:6;5047:30;5044:2;;;5080:79;;:::i;:::-;5044:2;5193:80;5265:7;5256:6;5245:9;5241:22;5193:80;:::i;:::-;5175:98;;;;4971:312;4832:458;;;;;:::o;5296:698::-;5388:6;5396;5404;5453:2;5441:9;5432:7;5428:23;5424:32;5421:2;;;5459:79;;:::i;:::-;5421:2;5607:1;5596:9;5592:17;5579:31;5637:18;5629:6;5626:30;5623:2;;;5659:79;;:::i;:::-;5623:2;5772:80;5844:7;5835:6;5824:9;5820:22;5772:80;:::i;:::-;5754:98;;;;5550:312;5901:2;5927:50;5969:7;5960:6;5949:9;5945:22;5927:50;:::i;:::-;5917:60;;5872:115;5411:583;;;;;:::o;6000:323::-;6056:6;6105:2;6093:9;6084:7;6080:23;6076:32;6073:2;;;6111:79;;:::i;:::-;6073:2;6231:1;6256:50;6298:7;6289:6;6278:9;6274:22;6256:50;:::i;:::-;6246:60;;6202:114;6063:260;;;;:::o;6329:345::-;6396:6;6445:2;6433:9;6424:7;6420:23;6416:32;6413:2;;;6451:79;;:::i;:::-;6413:2;6571:1;6596:61;6649:7;6640:6;6629:9;6625:22;6596:61;:::i;:::-;6586:71;;6542:125;6403:271;;;;:::o;6680:329::-;6739:6;6788:2;6776:9;6767:7;6763:23;6759:32;6756:2;;;6794:79;;:::i;:::-;6756:2;6914:1;6939:53;6984:7;6975:6;6964:9;6960:22;6939:53;:::i;:::-;6929:63;;6885:117;6746:263;;;;:::o;7015:663::-;7103:6;7111;7119;7168:2;7156:9;7147:7;7143:23;7139:32;7136:2;;;7174:79;;:::i;:::-;7136:2;7294:1;7319:64;7375:7;7366:6;7355:9;7351:22;7319:64;:::i;:::-;7309:74;;7265:128;7432:2;7458:64;7514:7;7505:6;7494:9;7490:22;7458:64;:::i;:::-;7448:74;;7403:129;7571:2;7597:64;7653:7;7644:6;7633:9;7629:22;7597:64;:::i;:::-;7587:74;;7542:129;7126:552;;;;;:::o;7684:179::-;7753:10;7774:46;7816:3;7808:6;7774:46;:::i;:::-;7852:4;7847:3;7843:14;7829:28;;7764:99;;;;:::o;7869:108::-;7946:24;7964:5;7946:24;:::i;:::-;7941:3;7934:37;7924:53;;:::o;7983:118::-;8070:24;8088:5;8070:24;:::i;:::-;8065:3;8058:37;8048:53;;:::o;8137:732::-;8256:3;8285:54;8333:5;8285:54;:::i;:::-;8355:86;8434:6;8429:3;8355:86;:::i;:::-;8348:93;;8465:56;8515:5;8465:56;:::i;:::-;8544:7;8575:1;8560:284;8585:6;8582:1;8579:13;8560:284;;;8661:6;8655:13;8688:63;8747:3;8732:13;8688:63;:::i;:::-;8681:70;;8774:60;8827:6;8774:60;:::i;:::-;8764:70;;8620:224;8607:1;8604;8600:9;8595:14;;8560:284;;;8564:14;8860:3;8853:10;;8261:608;;;;;;;:::o;8875:109::-;8956:21;8971:5;8956:21;:::i;:::-;8951:3;8944:34;8934:50;;:::o;8990:147::-;9085:45;9124:5;9085:45;:::i;:::-;9080:3;9073:58;9063:74;;:::o;9143:364::-;9231:3;9259:39;9292:5;9259:39;:::i;:::-;9314:71;9378:6;9373:3;9314:71;:::i;:::-;9307:78;;9394:52;9439:6;9434:3;9427:4;9420:5;9416:16;9394:52;:::i;:::-;9471:29;9493:6;9471:29;:::i;:::-;9466:3;9462:39;9455:46;;9235:272;;;;;:::o;9513:366::-;9655:3;9676:67;9740:2;9735:3;9676:67;:::i;:::-;9669:74;;9752:93;9841:3;9752:93;:::i;:::-;9870:2;9865:3;9861:12;9854:19;;9659:220;;;:::o;9885:366::-;10027:3;10048:67;10112:2;10107:3;10048:67;:::i;:::-;10041:74;;10124:93;10213:3;10124:93;:::i;:::-;10242:2;10237:3;10233:12;10226:19;;10031:220;;;:::o;10257:366::-;10399:3;10420:67;10484:2;10479:3;10420:67;:::i;:::-;10413:74;;10496:93;10585:3;10496:93;:::i;:::-;10614:2;10609:3;10605:12;10598:19;;10403:220;;;:::o;10629:366::-;10771:3;10792:67;10856:2;10851:3;10792:67;:::i;:::-;10785:74;;10868:93;10957:3;10868:93;:::i;:::-;10986:2;10981:3;10977:12;10970:19;;10775:220;;;:::o;11001:366::-;11143:3;11164:67;11228:2;11223:3;11164:67;:::i;:::-;11157:74;;11240:93;11329:3;11240:93;:::i;:::-;11358:2;11353:3;11349:12;11342:19;;11147:220;;;:::o;11373:366::-;11515:3;11536:67;11600:2;11595:3;11536:67;:::i;:::-;11529:74;;11612:93;11701:3;11612:93;:::i;:::-;11730:2;11725:3;11721:12;11714:19;;11519:220;;;:::o;11745:366::-;11887:3;11908:67;11972:2;11967:3;11908:67;:::i;:::-;11901:74;;11984:93;12073:3;11984:93;:::i;:::-;12102:2;12097:3;12093:12;12086:19;;11891:220;;;:::o;12117:366::-;12259:3;12280:67;12344:2;12339:3;12280:67;:::i;:::-;12273:74;;12356:93;12445:3;12356:93;:::i;:::-;12474:2;12469:3;12465:12;12458:19;;12263:220;;;:::o;12489:366::-;12631:3;12652:67;12716:2;12711:3;12652:67;:::i;:::-;12645:74;;12728:93;12817:3;12728:93;:::i;:::-;12846:2;12841:3;12837:12;12830:19;;12635:220;;;:::o;12861:366::-;13003:3;13024:67;13088:2;13083:3;13024:67;:::i;:::-;13017:74;;13100:93;13189:3;13100:93;:::i;:::-;13218:2;13213:3;13209:12;13202:19;;13007:220;;;:::o;13233:366::-;13375:3;13396:67;13460:2;13455:3;13396:67;:::i;:::-;13389:74;;13472:93;13561:3;13472:93;:::i;:::-;13590:2;13585:3;13581:12;13574:19;;13379:220;;;:::o;13605:366::-;13747:3;13768:67;13832:2;13827:3;13768:67;:::i;:::-;13761:74;;13844:93;13933:3;13844:93;:::i;:::-;13962:2;13957:3;13953:12;13946:19;;13751:220;;;:::o;13977:366::-;14119:3;14140:67;14204:2;14199:3;14140:67;:::i;:::-;14133:74;;14216:93;14305:3;14216:93;:::i;:::-;14334:2;14329:3;14325:12;14318:19;;14123:220;;;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14495:220;;;:::o;14721:366::-;14863:3;14884:67;14948:2;14943:3;14884:67;:::i;:::-;14877:74;;14960:93;15049:3;14960:93;:::i;:::-;15078:2;15073:3;15069:12;15062:19;;14867:220;;;:::o;15093:366::-;15235:3;15256:67;15320:2;15315:3;15256:67;:::i;:::-;15249:74;;15332:93;15421:3;15332:93;:::i;:::-;15450:2;15445:3;15441:12;15434:19;;15239:220;;;:::o;15465:398::-;15624:3;15645:83;15726:1;15721:3;15645:83;:::i;:::-;15638:90;;15737:93;15826:3;15737:93;:::i;:::-;15855:1;15850:3;15846:11;15839:18;;15628:235;;;:::o;15869:366::-;16011:3;16032:67;16096:2;16091:3;16032:67;:::i;:::-;16025:74;;16108:93;16197:3;16108:93;:::i;:::-;16226:2;16221:3;16217:12;16210:19;;16015:220;;;:::o;16241:366::-;16383:3;16404:67;16468:2;16463:3;16404:67;:::i;:::-;16397:74;;16480:93;16569:3;16480:93;:::i;:::-;16598:2;16593:3;16589:12;16582:19;;16387:220;;;:::o;16613:366::-;16755:3;16776:67;16840:2;16835:3;16776:67;:::i;:::-;16769:74;;16852:93;16941:3;16852:93;:::i;:::-;16970:2;16965:3;16961:12;16954:19;;16759:220;;;:::o;16985:118::-;17072:24;17090:5;17072:24;:::i;:::-;17067:3;17060:37;17050:53;;:::o;17109:112::-;17192:22;17208:5;17192:22;:::i;:::-;17187:3;17180:35;17170:51;;:::o;17227:379::-;17411:3;17433:147;17576:3;17433:147;:::i;:::-;17426:154;;17597:3;17590:10;;17415:191;;;:::o;17612:222::-;17705:4;17743:2;17732:9;17728:18;17720:26;;17756:71;17824:1;17813:9;17809:17;17800:6;17756:71;:::i;:::-;17710:124;;;;:::o;17840:332::-;17961:4;17999:2;17988:9;17984:18;17976:26;;18012:71;18080:1;18069:9;18065:17;18056:6;18012:71;:::i;:::-;18093:72;18161:2;18150:9;18146:18;18137:6;18093:72;:::i;:::-;17966:206;;;;;:::o;18178:332::-;18299:4;18337:2;18326:9;18322:18;18314:26;;18350:71;18418:1;18407:9;18403:17;18394:6;18350:71;:::i;:::-;18431:72;18499:2;18488:9;18484:18;18475:6;18431:72;:::i;:::-;18304:206;;;;;:::o;18516:807::-;18765:4;18803:3;18792:9;18788:19;18780:27;;18817:71;18885:1;18874:9;18870:17;18861:6;18817:71;:::i;:::-;18898:72;18966:2;18955:9;18951:18;18942:6;18898:72;:::i;:::-;18980:80;19056:2;19045:9;19041:18;19032:6;18980:80;:::i;:::-;19070;19146:2;19135:9;19131:18;19122:6;19070:80;:::i;:::-;19160:73;19228:3;19217:9;19213:19;19204:6;19160:73;:::i;:::-;19243;19311:3;19300:9;19296:19;19287:6;19243:73;:::i;:::-;18770:553;;;;;;;;;:::o;19329:210::-;19416:4;19454:2;19443:9;19439:18;19431:26;;19467:65;19529:1;19518:9;19514:17;19505:6;19467:65;:::i;:::-;19421:118;;;;:::o;19545:308::-;19654:4;19692:2;19681:9;19677:18;19669:26;;19705:65;19767:1;19756:9;19752:17;19743:6;19705:65;:::i;:::-;19780:66;19842:2;19831:9;19827:18;19818:6;19780:66;:::i;:::-;19659:194;;;;;:::o;19859:313::-;19972:4;20010:2;19999:9;19995:18;19987:26;;20059:9;20053:4;20049:20;20045:1;20034:9;20030:17;20023:47;20087:78;20160:4;20151:6;20087:78;:::i;:::-;20079:86;;19977:195;;;;:::o;20178:419::-;20344:4;20382:2;20371:9;20367:18;20359:26;;20431:9;20425:4;20421:20;20417:1;20406:9;20402:17;20395:47;20459:131;20585:4;20459:131;:::i;:::-;20451:139;;20349:248;;;:::o;20603:419::-;20769:4;20807:2;20796:9;20792:18;20784:26;;20856:9;20850:4;20846:20;20842:1;20831:9;20827:17;20820:47;20884:131;21010:4;20884:131;:::i;:::-;20876:139;;20774:248;;;:::o;21028:419::-;21194:4;21232:2;21221:9;21217:18;21209:26;;21281:9;21275:4;21271:20;21267:1;21256:9;21252:17;21245:47;21309:131;21435:4;21309:131;:::i;:::-;21301:139;;21199:248;;;:::o;21453:419::-;21619:4;21657:2;21646:9;21642:18;21634:26;;21706:9;21700:4;21696:20;21692:1;21681:9;21677:17;21670:47;21734:131;21860:4;21734:131;:::i;:::-;21726:139;;21624:248;;;:::o;21878:419::-;22044:4;22082:2;22071:9;22067:18;22059:26;;22131:9;22125:4;22121:20;22117:1;22106:9;22102:17;22095:47;22159:131;22285:4;22159:131;:::i;:::-;22151:139;;22049:248;;;:::o;22303:419::-;22469:4;22507:2;22496:9;22492:18;22484:26;;22556:9;22550:4;22546:20;22542:1;22531:9;22527:17;22520:47;22584:131;22710:4;22584:131;:::i;:::-;22576:139;;22474:248;;;:::o;22728:419::-;22894:4;22932:2;22921:9;22917:18;22909:26;;22981:9;22975:4;22971:20;22967:1;22956:9;22952:17;22945:47;23009:131;23135:4;23009:131;:::i;:::-;23001:139;;22899:248;;;:::o;23153:419::-;23319:4;23357:2;23346:9;23342:18;23334:26;;23406:9;23400:4;23396:20;23392:1;23381:9;23377:17;23370:47;23434:131;23560:4;23434:131;:::i;:::-;23426:139;;23324:248;;;:::o;23578:419::-;23744:4;23782:2;23771:9;23767:18;23759:26;;23831:9;23825:4;23821:20;23817:1;23806:9;23802:17;23795:47;23859:131;23985:4;23859:131;:::i;:::-;23851:139;;23749:248;;;:::o;24003:419::-;24169:4;24207:2;24196:9;24192:18;24184:26;;24256:9;24250:4;24246:20;24242:1;24231:9;24227:17;24220:47;24284:131;24410:4;24284:131;:::i;:::-;24276:139;;24174:248;;;:::o;24428:419::-;24594:4;24632:2;24621:9;24617:18;24609:26;;24681:9;24675:4;24671:20;24667:1;24656:9;24652:17;24645:47;24709:131;24835:4;24709:131;:::i;:::-;24701:139;;24599:248;;;:::o;24853:419::-;25019:4;25057:2;25046:9;25042:18;25034:26;;25106:9;25100:4;25096:20;25092:1;25081:9;25077:17;25070:47;25134:131;25260:4;25134:131;:::i;:::-;25126:139;;25024:248;;;:::o;25278:419::-;25444:4;25482:2;25471:9;25467:18;25459:26;;25531:9;25525:4;25521:20;25517:1;25506:9;25502:17;25495:47;25559:131;25685:4;25559:131;:::i;:::-;25551:139;;25449:248;;;:::o;25703:419::-;25869:4;25907:2;25896:9;25892:18;25884:26;;25956:9;25950:4;25946:20;25942:1;25931:9;25927:17;25920:47;25984:131;26110:4;25984:131;:::i;:::-;25976:139;;25874:248;;;:::o;26128:419::-;26294:4;26332:2;26321:9;26317:18;26309:26;;26381:9;26375:4;26371:20;26367:1;26356:9;26352:17;26345:47;26409:131;26535:4;26409:131;:::i;:::-;26401:139;;26299:248;;;:::o;26553:419::-;26719:4;26757:2;26746:9;26742:18;26734:26;;26806:9;26800:4;26796:20;26792:1;26781:9;26777:17;26770:47;26834:131;26960:4;26834:131;:::i;:::-;26826:139;;26724:248;;;:::o;26978:419::-;27144:4;27182:2;27171:9;27167:18;27159:26;;27231:9;27225:4;27221:20;27217:1;27206:9;27202:17;27195:47;27259:131;27385:4;27259:131;:::i;:::-;27251:139;;27149:248;;;:::o;27403:419::-;27569:4;27607:2;27596:9;27592:18;27584:26;;27656:9;27650:4;27646:20;27642:1;27631:9;27627:17;27620:47;27684:131;27810:4;27684:131;:::i;:::-;27676:139;;27574:248;;;:::o;27828:419::-;27994:4;28032:2;28021:9;28017:18;28009:26;;28081:9;28075:4;28071:20;28067:1;28056:9;28052:17;28045:47;28109:131;28235:4;28109:131;:::i;:::-;28101:139;;27999:248;;;:::o;28253:222::-;28346:4;28384:2;28373:9;28369:18;28361:26;;28397:71;28465:1;28454:9;28450:17;28441:6;28397:71;:::i;:::-;28351:124;;;;:::o;28481:831::-;28744:4;28782:3;28771:9;28767:19;28759:27;;28796:71;28864:1;28853:9;28849:17;28840:6;28796:71;:::i;:::-;28877:80;28953:2;28942:9;28938:18;28929:6;28877:80;:::i;:::-;29004:9;28998:4;28994:20;28989:2;28978:9;28974:18;28967:48;29032:108;29135:4;29126:6;29032:108;:::i;:::-;29024:116;;29150:72;29218:2;29207:9;29203:18;29194:6;29150:72;:::i;:::-;29232:73;29300:3;29289:9;29285:19;29276:6;29232:73;:::i;:::-;28749:563;;;;;;;;:::o;29318:442::-;29467:4;29505:2;29494:9;29490:18;29482:26;;29518:71;29586:1;29575:9;29571:17;29562:6;29518:71;:::i;:::-;29599:72;29667:2;29656:9;29652:18;29643:6;29599:72;:::i;:::-;29681;29749:2;29738:9;29734:18;29725:6;29681:72;:::i;:::-;29472:288;;;;;;:::o;29766:214::-;29855:4;29893:2;29882:9;29878:18;29870:26;;29906:67;29970:1;29959:9;29955:17;29946:6;29906:67;:::i;:::-;29860:120;;;;:::o;30067:132::-;30134:4;30157:3;30149:11;;30187:4;30182:3;30178:14;30170:22;;30139:60;;;:::o;30205:114::-;30272:6;30306:5;30300:12;30290:22;;30279:40;;;:::o;30325:99::-;30377:6;30411:5;30405:12;30395:22;;30384:40;;;:::o;30430:113::-;30500:4;30532;30527:3;30523:14;30515:22;;30505:38;;;:::o;30549:184::-;30648:11;30682:6;30677:3;30670:19;30722:4;30717:3;30713:14;30698:29;;30660:73;;;;:::o;30739:147::-;30840:11;30877:3;30862:18;;30852:34;;;;:::o;30892:169::-;30976:11;31010:6;31005:3;30998:19;31050:4;31045:3;31041:14;31026:29;;30988:73;;;;:::o;31067:305::-;31107:3;31126:20;31144:1;31126:20;:::i;:::-;31121:25;;31160:20;31178:1;31160:20;:::i;:::-;31155:25;;31314:1;31246:66;31242:74;31239:1;31236:81;31233:2;;;31320:18;;:::i;:::-;31233:2;31364:1;31361;31357:9;31350:16;;31111:261;;;;:::o;31378:185::-;31418:1;31435:20;31453:1;31435:20;:::i;:::-;31430:25;;31469:20;31487:1;31469:20;:::i;:::-;31464:25;;31508:1;31498:2;;31513:18;;:::i;:::-;31498:2;31555:1;31552;31548:9;31543:14;;31420:143;;;;:::o;31569:348::-;31609:7;31632:20;31650:1;31632:20;:::i;:::-;31627:25;;31666:20;31684:1;31666:20;:::i;:::-;31661:25;;31854:1;31786:66;31782:74;31779:1;31776:81;31771:1;31764:9;31757:17;31753:105;31750:2;;;31861:18;;:::i;:::-;31750:2;31909:1;31906;31902:9;31891:20;;31617:300;;;;:::o;31923:191::-;31963:4;31983:20;32001:1;31983:20;:::i;:::-;31978:25;;32017:20;32035:1;32017:20;:::i;:::-;32012:25;;32056:1;32053;32050:8;32047:2;;;32061:18;;:::i;:::-;32047:2;32106:1;32103;32099:9;32091:17;;31968:146;;;;:::o;32120:96::-;32157:7;32186:24;32204:5;32186:24;:::i;:::-;32175:35;;32165:51;;;:::o;32222:104::-;32267:7;32296:24;32314:5;32296:24;:::i;:::-;32285:35;;32275:51;;;:::o;32332:90::-;32366:7;32409:5;32402:13;32395:21;32384:32;;32374:48;;;:::o;32428:126::-;32465:7;32505:42;32498:5;32494:54;32483:65;;32473:81;;;:::o;32560:77::-;32597:7;32626:5;32615:16;;32605:32;;;:::o;32643:86::-;32678:7;32718:4;32711:5;32707:16;32696:27;;32686:43;;;:::o;32735:121::-;32793:9;32826:24;32844:5;32826:24;:::i;:::-;32813:37;;32803:53;;;:::o;32862:307::-;32930:1;32940:113;32954:6;32951:1;32948:13;32940:113;;;33039:1;33034:3;33030:11;33024:18;33020:1;33015:3;33011:11;33004:39;32976:2;32973:1;32969:10;32964:15;;32940:113;;;33071:6;33068:1;33065:13;33062:2;;;33151:1;33142:6;33137:3;33133:16;33126:27;33062:2;32911:258;;;;:::o;33175:233::-;33214:3;33237:24;33255:5;33237:24;:::i;:::-;33228:33;;33283:66;33276:5;33273:77;33270:2;;;33353:18;;:::i;:::-;33270:2;33400:1;33393:5;33389:13;33382:20;;33218:190;;;:::o;33414:180::-;33462:77;33459:1;33452:88;33559:4;33556:1;33549:15;33583:4;33580:1;33573:15;33600:180;33648:77;33645:1;33638:88;33745:4;33742:1;33735:15;33769:4;33766:1;33759:15;33786:180;33834:77;33831:1;33824:88;33931:4;33928:1;33921:15;33955:4;33952:1;33945:15;33972:180;34020:77;34017:1;34010:88;34117:4;34114:1;34107:15;34141:4;34138:1;34131:15;34158:117;34267:1;34264;34257:12;34281:117;34390:1;34387;34380:12;34404:117;34513:1;34510;34503:12;34527:117;34636:1;34633;34626:12;34650:117;34759:1;34756;34749:12;34773:102;34814:6;34865:2;34861:7;34856:2;34849:5;34845:14;34841:28;34831:38;;34821:54;;;:::o;34881:222::-;35021:34;35017:1;35009:6;35005:14;34998:58;35090:5;35085:2;35077:6;35073:15;35066:30;34987:116;:::o;35109:229::-;35249:34;35245:1;35237:6;35233:14;35226:58;35318:12;35313:2;35305:6;35301:15;35294:37;35215:123;:::o;35344:221::-;35484:34;35480:1;35472:6;35468:14;35461:58;35553:4;35548:2;35540:6;35536:15;35529:29;35450:115;:::o;35571:177::-;35711:29;35707:1;35699:6;35695:14;35688:53;35677:71;:::o;35754:244::-;35894:34;35890:1;35882:6;35878:14;35871:58;35963:27;35958:2;35950:6;35946:15;35939:52;35860:138;:::o;36004:173::-;36144:25;36140:1;36132:6;36128:14;36121:49;36110:67;:::o;36183:178::-;36323:30;36319:1;36311:6;36307:14;36300:54;36289:72;:::o;36367:236::-;36507:34;36503:1;36495:6;36491:14;36484:58;36576:19;36571:2;36563:6;36559:15;36552:44;36473:130;:::o;36609:220::-;36749:34;36745:1;36737:6;36733:14;36726:58;36818:3;36813:2;36805:6;36801:15;36794:28;36715:114;:::o;36835:182::-;36975:34;36971:1;36963:6;36959:14;36952:58;36941:76;:::o;37023:228::-;37163:34;37159:1;37151:6;37147:14;37140:58;37232:11;37227:2;37219:6;37215:15;37208:36;37129:122;:::o;37257:220::-;37397:34;37393:1;37385:6;37381:14;37374:58;37466:3;37461:2;37453:6;37449:15;37442:28;37363:114;:::o;37483:165::-;37623:17;37619:1;37611:6;37607:14;37600:41;37589:59;:::o;37654:224::-;37794:34;37790:1;37782:6;37778:14;37771:58;37863:7;37858:2;37850:6;37846:15;37839:32;37760:118;:::o;37884:222::-;38024:34;38020:1;38012:6;38008:14;38001:58;38093:5;38088:2;38080:6;38076:15;38069:30;37990:116;:::o;38112:179::-;38252:31;38248:1;38240:6;38236:14;38229:55;38218:73;:::o;38297:114::-;38403:8;:::o;38417:223::-;38557:34;38553:1;38545:6;38541:14;38534:58;38626:6;38621:2;38613:6;38609:15;38602:31;38523:117;:::o;38646:173::-;38786:25;38782:1;38774:6;38770:14;38763:49;38752:67;:::o;38825:174::-;38965:26;38961:1;38953:6;38949:14;38942:50;38931:68;:::o;39005:122::-;39078:24;39096:5;39078:24;:::i;:::-;39071:5;39068:35;39058:2;;39117:1;39114;39107:12;39058:2;39048:79;:::o;39133:138::-;39214:32;39240:5;39214:32;:::i;:::-;39207:5;39204:43;39194:2;;39261:1;39258;39251:12;39194:2;39184:87;:::o;39277:116::-;39347:21;39362:5;39347:21;:::i;:::-;39340:5;39337:32;39327:2;;39383:1;39380;39373:12;39327:2;39317:76;:::o;39399:122::-;39472:24;39490:5;39472:24;:::i;:::-;39465:5;39462:35;39452:2;;39511:1;39508;39501:12;39452:2;39442:79;:::o

Swarm Source

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