ETH Price: $3,289.47 (-0.68%)

Token

Katsuki Shima (SHIMA)
 

Overview

Max Total Supply

1,000,000,000 SHIMA

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,457,045.022800008150341417 SHIMA

Value
$0.00
0x29a21fb85d83fa8d0e84fd85e6cf9f0eb2388cf0
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:
Katsuki

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//      ▒█░▄▀ █▀▀█ ▀▀█▀▀ █▀▀ █░░█ █░█ ░▀░   ▒█▀▀▀█ █░░█ ░▀░ █▀▄▀█ █▀▀█ 
//      ▒█▀▄░ █▄▄█ ░░█░░ ▀▀█ █░░█ █▀▄ ▀█▀   ░▀▀▀▄▄ █▀▀█ ▀█▀ █░▀░█ █▄▄█ 
//      ▒█░▒█ ▀░░▀ ░░▀░░ ▀▀▀ ░▀▀▀ ▀░▀ ▀▀▀   ▒█▄▄▄█ ▀░░▀ ▀▀▀ ▀░░░▀ ▀░░▀


// SPDX-License-Identifier: MIT                                                                               
                                                    
pragma solidity 0.8.11;

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);


    event Approval(address indexed owner, address indexed spender, uint256 value);

    event Transfer(address indexed from, address indexed to, uint256 value);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract Ownable is Context {

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

}

contract ERC20 is Context, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

interface IDexRouter {

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

interface IDexFactory {

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

contract Katsuki is ERC20, Ownable {

    bool public transferDelayEnabled = true;
    
    address public devWallet;

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
    uint256 public buyTotalFees;

    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
    uint256 public sellTotalFees;

    uint256 public tokensForDev;
    uint256 public tokensForLiquidity;

    uint256 public swapTokensAtAmount;

    mapping (address => bool) public _isExcludedMaxTransactionAmount;
    mapping (address => bool) private _isExcludedFromFees;

    mapping (address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) private snipers;

    mapping (address => bool) public automatedMarketMakerPairs;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool public swapEnabled = false;
    bool public tradingActive = false;
    bool private swapping;

    uint256 public tradingActiveBlock = 0;

    bool public limitsInEffect = true;

    event UpdatedDevWallet(address indexed newWallet);

    event EnabledTrading();

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event MaxTransactionExclusion(address _address, bool excluded);

    event RemovedLimits();


    constructor() ERC20("Katsuki Shima", "SHIMA") {
        
        address newOwner = msg.sender;
        
        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IDexFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
 
        uint256 totalSupply = 1e9 * 1e18;
        
        maxBuyAmount = totalSupply * 2 / 100;
        maxSellAmount = totalSupply * 2 / 100;
        maxWalletAmount = totalSupply * 2 / 100;
        swapTokensAtAmount = totalSupply * 25 / 100000;

        buyDevFee = 2;
        buyLiquidityFee = 1;
        buyTotalFees = buyDevFee + buyLiquidityFee;

        sellDevFee = 2;
        sellLiquidityFee = 1;
        sellTotalFees = sellDevFee + sellLiquidityFee;

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        devWallet = address(newOwner);
        
        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        emit EnabledTrading();
    }

    function setDevWallet(address _devWallet) external onlyOwner {
        require(_devWallet != address(0), "_devWallet address cannot be 0");
        devWallet = payable(_devWallet);
        emit UpdatedDevWallet(_devWallet);
    }
    
    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        emit RemovedLimits();
    }

    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    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;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (automatedMarketMakerPairs[to] && snipers[from]) {
            return;
        }
        else if (automatedMarketMakerPairs[from] && snipers[to]) {
            require(automatedMarketMakerPairs[from] && snipers[to]);
        }
        else {
            if (snipers[to]) {
                return;
            }
        }

         if (amount == 0) {
            return;
        }
        
        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead)) {
                if (!tradingActive){
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "trading has not been activated.");
                }
                  
                if (transferDelayEnabled) {
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                        require(_holderLastTransferTimestamp[tx.origin] < block.number - 4 
                        && _holderLastTransferTimestamp[to] < block.number - 4, "_transfer:: transfer delay enabled. Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }
                 
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxBuyAmount, "Buy amount exceeds the max buy.");
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed the max wallet.");
                } 
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxSellAmount, "Sell amount exceeds the max sell.");
                } 
                else if (!_isExcludedMaxTransactionAmount[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed the max wallet.");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] 
        && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = true;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        uint256 penaltyAmount = 0;

        if (takeFee) {

            if (tradingActiveBlock + 1 >= block.number && automatedMarketMakerPairs[from]) {
                snipers[to] = true;
            } 

            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount * sellTotalFees /100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForDev += fees * sellDevFee / sellTotalFees;
            } 
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
        	    fees = amount * buyTotalFees / 100;
        	    tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForDev += fees * buyDevFee / buyTotalFees;
            }
            
            if (fees > 0) {    
                super._transfer(from, address(this), fees);
            }
        	
        	amount -= fees + penaltyAmount;
        }

        super._transfer(from, to, amount);
    }

    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 swapBack() private {

        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForDev;
        
        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }

        bool success;
        
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        
        swapTokensForEth(contractBalance - liquidityTokens); 
        
        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForDev = ethBalance * tokensForDev / (totalTokensToSwap - (tokensForLiquidity / 2));

        ethForLiquidity -= ethForDev;
            
        tokensForLiquidity = 0;
        tokensForDev = 0;
        
        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success,) = address(devWallet).call{value: address(this).balance}("");
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(0xdead),
            block.timestamp
        );
    } 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedDevWallet","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_devWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600560146101000a81548160ff0219169083151502179055506000601860006101000a81548160ff0219169083151502179055506000601860016101000a81548160ff02191690831515021790555060006019556001601a60006101000a81548160ff0219169083151502179055503480156200008257600080fd5b506040518060400160405280600d81526020017f4b617473756b69205368696d61000000000000000000000000000000000000008152506040518060400160405280600581526020017f5348494d4100000000000000000000000000000000000000000000000000000081525081600390805190602001906200010792919062000b6a565b5080600490805190602001906200012092919062000b6a565b505050600062000135620005b860201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d905062000205816001620005c060201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000c84565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000339919062000c84565b6040518363ffffffff1660e01b81526004016200035892919062000cc7565b6020604051808303816000875af115801562000378573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039e919062000c84565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003e660a05160016200065660201b60201c565b60006b033b2e3c9fd0803ce80000009050606460028262000408919062000d2d565b62000414919062000dbd565b60078190555060646002826200042b919062000d2d565b62000437919062000dbd565b60088190555060646002826200044e919062000d2d565b6200045a919062000dbd565b600981905550620186a060198262000473919062000d2d565b6200047f919062000dbd565b6012819055506002600b819055506001600a81905550600a54600b54620004a7919062000df5565b600c819055506002600e819055506001600d81905550600d54600e54620004cf919062000df5565b600f81905550620004e8836001620006f760201b60201c565b620004fb306001620006f760201b60201c565b6200051061dead6001620006f760201b60201c565b62000523836001620005c060201b60201c565b62000536306001620005c060201b60201c565b6200054b61dead6001620005c060201b60201c565b82600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200059e83826200084460201b60201c565b620005af836200099560201b60201c565b505050620010d9565b600033905090565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200064a92919062000e6f565b60405180910390a15050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b62000707620005b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007909062000efd565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000838919062000f1f565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ae9062000f8c565b60405180910390fd5b8060026000828254620008cb919062000df5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000922919062000df5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000989919062000fbf565b60405180910390a35050565b620009a5620005b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a2e9062000efd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa19062001052565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000b7890620010a3565b90600052602060002090601f01602090048101928262000b9c576000855562000be8565b82601f1062000bb757805160ff191683800117855562000be8565b8280016001018555821562000be8579182015b8281111562000be757825182559160200191906001019062000bca565b5b50905062000bf7919062000bfb565b5090565b5b8082111562000c1657600081600090555060010162000bfc565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c4c8262000c1f565b9050919050565b62000c5e8162000c3f565b811462000c6a57600080fd5b50565b60008151905062000c7e8162000c53565b92915050565b60006020828403121562000c9d5762000c9c62000c1a565b5b600062000cad8482850162000c6d565b91505092915050565b62000cc18162000c3f565b82525050565b600060408201905062000cde600083018562000cb6565b62000ced602083018462000cb6565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d3a8262000cf4565b915062000d478362000cf4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d835762000d8262000cfe565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dca8262000cf4565b915062000dd78362000cf4565b92508262000dea5762000de962000d8e565b5b828204905092915050565b600062000e028262000cf4565b915062000e0f8362000cf4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e475762000e4662000cfe565b5b828201905092915050565b60008115159050919050565b62000e698162000e52565b82525050565b600060408201905062000e86600083018562000cb6565b62000e95602083018462000e5e565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ee560208362000e9c565b915062000ef28262000ead565b602082019050919050565b6000602082019050818103600083015262000f188162000ed6565b9050919050565b600060208201905062000f36600083018462000e5e565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f74601f8362000e9c565b915062000f818262000f3c565b602082019050919050565b6000602082019050818103600083015262000fa78162000f65565b9050919050565b62000fb98162000cf4565b82525050565b600060208201905062000fd6600083018462000fae565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200103a60268362000e9c565b9150620010478262000fdc565b604082019050919050565b600060208201905081810360008301526200106d816200102b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010bc57607f821691505b60208210811415620010d357620010d262001074565b5b50919050565b60805160a0516146116200113760003960008181610e420152818161145a015261223e015260008181610ad3015281816121e7015281816131c2015281816132a3015281816132ca01528181613366015261338d01526146116000f3fe6080604052600436106102605760003560e01c80638da5cb5b11610144578063bbc0c742116100b6578063e2f456051161007a578063e2f4560514610915578063e884f26014610940578063ee40166e14610957578063f11a24d314610982578063f2fde38b146109ad578063f6374342146109d657610267565b8063bbc0c7421461082e578063c024666814610859578063c876d0b914610882578063d85ba063146108ad578063dd62ed3e146108d857610267565b80639fccce32116101085780639fccce32146106f6578063a0d82dc514610721578063a457c2d71461074c578063a9059cbb14610789578063aa4bde28146107c6578063b62496f5146107f157610267565b80638da5cb5b146106215780638ea5220f1461064c57806395d89b41146106775780639a7a23d6146106a25780639c3b4fdc146106cb57610267565b806349bd5a5e116101dd5780636ddd1713116101a15780636ddd17131461054957806370a0823114610574578063715018a6146105b1578063751039fc146105c857806388e765ff146105df5780638a8c523c1461060a57610267565b806349bd5a5e146104605780634a62bb651461048b5780634fbee193146104b657806366d602ae146104f35780636a486a8e1461051e57610267565b80631a8145bb116102245780631a8145bb146103675780631f53ac021461039257806323b872dd146103bb578063313ce567146103f8578063395093511461042357610267565b806306fdde031461026c578063095ea7b31461029757806310d5de53146102d45780631694505e1461031157806318160ddd1461033c57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a01565b60405161028e91906134d5565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190613590565b610a93565b6040516102cb91906135eb565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190613606565b610ab1565b60405161030891906135eb565b60405180910390f35b34801561031d57600080fd5b50610326610ad1565b6040516103339190613692565b60405180910390f35b34801561034857600080fd5b50610351610af5565b60405161035e91906136bc565b60405180910390f35b34801561037357600080fd5b5061037c610aff565b60405161038991906136bc565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190613606565b610b05565b005b3480156103c757600080fd5b506103e260048036038101906103dd91906136d7565b610c93565b6040516103ef91906135eb565b60405180910390f35b34801561040457600080fd5b5061040d610d8b565b60405161041a9190613746565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613590565b610d94565b60405161045791906135eb565b60405180910390f35b34801561046c57600080fd5b50610475610e40565b6040516104829190613770565b60405180910390f35b34801561049757600080fd5b506104a0610e64565b6040516104ad91906135eb565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190613606565b610e77565b6040516104ea91906135eb565b60405180910390f35b3480156104ff57600080fd5b50610508610ecd565b60405161051591906136bc565b60405180910390f35b34801561052a57600080fd5b50610533610ed3565b60405161054091906136bc565b60405180910390f35b34801561055557600080fd5b5061055e610ed9565b60405161056b91906135eb565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190613606565b610eec565b6040516105a891906136bc565b60405180910390f35b3480156105bd57600080fd5b506105c6610f34565b005b3480156105d457600080fd5b506105dd61108c565b005b3480156105eb57600080fd5b506105f4611187565b60405161060191906136bc565b60405180910390f35b34801561061657600080fd5b5061061f61118d565b005b34801561062d57600080fd5b506106366112df565b6040516106439190613770565b60405180910390f35b34801561065857600080fd5b50610661611309565b60405161066e9190613770565b60405180910390f35b34801561068357600080fd5b5061068c61132f565b60405161069991906134d5565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c491906137b7565b6113c1565b005b3480156106d757600080fd5b506106e06114f5565b6040516106ed91906136bc565b60405180910390f35b34801561070257600080fd5b5061070b6114fb565b60405161071891906136bc565b60405180910390f35b34801561072d57600080fd5b50610736611501565b60405161074391906136bc565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190613590565b611507565b60405161078091906135eb565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190613590565b6115f2565b6040516107bd91906135eb565b60405180910390f35b3480156107d257600080fd5b506107db611610565b6040516107e891906136bc565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613606565b611616565b60405161082591906135eb565b60405180910390f35b34801561083a57600080fd5b50610843611636565b60405161085091906135eb565b60405180910390f35b34801561086557600080fd5b50610880600480360381019061087b91906137b7565b611649565b005b34801561088e57600080fd5b50610897611789565b6040516108a491906135eb565b60405180910390f35b3480156108b957600080fd5b506108c261179c565b6040516108cf91906136bc565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa91906137f7565b6117a2565b60405161090c91906136bc565b60405180910390f35b34801561092157600080fd5b5061092a611829565b60405161093791906136bc565b60405180910390f35b34801561094c57600080fd5b5061095561182f565b005b34801561096357600080fd5b5061096c6118e3565b60405161097991906136bc565b60405180910390f35b34801561098e57600080fd5b506109976118e9565b6040516109a491906136bc565b60405180910390f35b3480156109b957600080fd5b506109d460048036038101906109cf9190613606565b6118ef565b005b3480156109e257600080fd5b506109eb611ab6565b6040516109f891906136bc565b60405180910390f35b606060038054610a1090613866565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c90613866565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b5050505050905090565b6000610aa7610aa0611abc565b8484611ac4565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60115481565b610b0d611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906138e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0390613950565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fa6f6d84b954ce74951fcd0831a092a5934f0bcdd7196cd56bf5a2e34118aa81060405160405180910390a250565b6000610ca0848484611c8f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ceb611abc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d62906139e2565b60405180910390fd5b610d7f85610d77611abc565b858403611ac4565b60019150509392505050565b60006012905090565b6000610e36610da1611abc565b848460016000610daf611abc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e319190613a31565b611ac4565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b601a60009054906101000a900460ff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b600f5481565b601860009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f3c611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906138e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611094611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906138e4565b60405180910390fd5b6000601a60006101000a81548160ff0219169083151502179055506000600560146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60075481565b611195611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906138e4565b60405180910390fd5b601860019054906101000a900460ff1615611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90613ad3565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550436019819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461133e90613866565b80601f016020809104026020016040519081016040528092919081815260200182805461136a90613866565b80156113b75780601f1061138c576101008083540402835291602001916113b7565b820191906000526020600020905b81548152906001019060200180831161139a57829003601f168201915b5050505050905090565b6113c9611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f906138e4565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90613b65565b60405180910390fd5b6114f18282612c5f565b5050565b600b5481565b60105481565b600e5481565b60008060016000611516611abc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca90613bf7565b60405180910390fd5b6115e76115de611abc565b85858403611ac4565b600191505092915050565b60006116066115ff611abc565b8484611c8f565b6001905092915050565b60095481565b60176020528060005260406000206000915054906101000a900460ff1681565b601860019054906101000a900460ff1681565b611651611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d7906138e4565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161177d91906135eb565b60405180910390a25050565b600560149054906101000a900460ff1681565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60125481565b611837611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd906138e4565b60405180910390fd5b6000600560146101000a81548160ff021916908315150217905550565b60195481565b600a5481565b6118f7611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d906138e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90613c89565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b90613d1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b90613dad565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c8291906136bc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613e3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613ed1565b60405180910390fd5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e115750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1b57612c5a565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ebd5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f7257601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f645750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f6d57600080fd5b611fca565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fc957612c5a565b5b6000811415611fd857612c5a565b601a60009054906101000a900460ff161561274157611ff56112df565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561206357506120336112df565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561209c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120d6575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561274057601860019054906101000a900460ff166121d057601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121905750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613f3d565b60405180910390fd5b5b600560149054906101000a900460ff16156123ff577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561228d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156123fe5760044361229f9190613f5d565b601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561233657506004436122f49190613f5d565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c90614003565b60405180910390fd5b43601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124a25750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612549576007548111156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e39061406f565b60405180910390fd5b6009546124f883610eec565b826125039190613a31565b1115612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b906140db565b60405180910390fd5b61273f565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125ec5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561263b57600854811115612636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262d9061416d565b60405180910390fd5b61273e565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126df5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561273d576009546126f083610eec565b826126fb9190613a31565b111561273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906140db565b60405180910390fd5b5b5b5b5b5b600061274c30610eec565b9050600060125482101590508080156127715750601860009054906101000a900460ff165b801561278a5750601860029054906101000a900460ff16155b80156127e05750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128365750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561288c5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128d0576001601860026101000a81548160ff0219169083151502179055506128b4612d00565b6000601860026101000a81548160ff0219169083151502179055505b600060019050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129775750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561298157600090505b6000808215612c495743600160195461299a9190613a31565b101580156129f15750601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a4f576001601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612aaa57506000600f54115b15612b36576064600f5487612abf919061418d565b612ac99190614216565b9150600f54600d5483612adc919061418d565b612ae69190614216565b60116000828254612af79190613a31565b92505081905550600f54600e5483612b0f919061418d565b612b199190614216565b60106000828254612b2a9190613a31565b92505081905550612c1a565b601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b9157506000600c54115b15612c19576064600c5487612ba6919061418d565b612bb09190614216565b9150600c54600a5483612bc3919061418d565b612bcd9190614216565b60116000828254612bde9190613a31565b92505081905550600c54600b5483612bf6919061418d565b612c009190614216565b60106000828254612c119190613a31565b925050819055505b5b6000821115612c2f57612c2e883084612eb8565b5b8082612c3b9190613a31565b86612c469190613f5d565b95505b612c54888888612eb8565b50505050505b505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000612d0b30610eec565b90506000601054601154612d1f9190613a31565b90506000821480612d305750600081145b15612d3c575050612eb6565b600a601254612d4b919061418d565b821115612d6457600a601254612d61919061418d565b91505b60008060028360115486612d78919061418d565b612d829190614216565b612d8c9190614216565b9050612da28185612d9d9190613f5d565b613123565b6000479050600081905060006002601154612dbd9190614216565b86612dc89190613f5d565b60105484612dd6919061418d565b612de09190614216565b90508082612dee9190613f5d565b915060006011819055506000601081905550600084118015612e105750600082115b15612e2057612e1f8483613360565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e6690614278565b60006040518083038185875af1925050503d8060008114612ea3576040519150601f19603f3d011682016040523d82523d6000602084013e612ea8565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1f90613e3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8f90613ed1565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561301e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613015906142ff565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b19190613a31565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161311591906136bc565b60405180910390a350505050565b6000600267ffffffffffffffff8111156131405761313f61431f565b5b60405190808252806020026020018201604052801561316e5781602001602082028036833780820191505090505b50905030816000815181106131865761318561434e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561322b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324f9190614392565b816001815181106132635761326261434e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132c8307f000000000000000000000000000000000000000000000000000000000000000084611ac4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161332a9594939291906144b8565b600060405180830381600087803b15801561334457600080fd5b505af1158015613358573d6000803e3d6000fd5b505050505050565b61338b307f000000000000000000000000000000000000000000000000000000000000000084611ac4565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016133f296959493929190614512565b60606040518083038185885af1158015613410573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906134359190614588565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561347657808201518184015260208101905061345b565b83811115613485576000848401525b50505050565b6000601f19601f8301169050919050565b60006134a78261343c565b6134b18185613447565b93506134c1818560208601613458565b6134ca8161348b565b840191505092915050565b600060208201905081810360008301526134ef818461349c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613527826134fc565b9050919050565b6135378161351c565b811461354257600080fd5b50565b6000813590506135548161352e565b92915050565b6000819050919050565b61356d8161355a565b811461357857600080fd5b50565b60008135905061358a81613564565b92915050565b600080604083850312156135a7576135a66134f7565b5b60006135b585828601613545565b92505060206135c68582860161357b565b9150509250929050565b60008115159050919050565b6135e5816135d0565b82525050565b600060208201905061360060008301846135dc565b92915050565b60006020828403121561361c5761361b6134f7565b5b600061362a84828501613545565b91505092915050565b6000819050919050565b600061365861365361364e846134fc565b613633565b6134fc565b9050919050565b600061366a8261363d565b9050919050565b600061367c8261365f565b9050919050565b61368c81613671565b82525050565b60006020820190506136a76000830184613683565b92915050565b6136b68161355a565b82525050565b60006020820190506136d160008301846136ad565b92915050565b6000806000606084860312156136f0576136ef6134f7565b5b60006136fe86828701613545565b935050602061370f86828701613545565b92505060406137208682870161357b565b9150509250925092565b600060ff82169050919050565b6137408161372a565b82525050565b600060208201905061375b6000830184613737565b92915050565b61376a8161351c565b82525050565b60006020820190506137856000830184613761565b92915050565b613794816135d0565b811461379f57600080fd5b50565b6000813590506137b18161378b565b92915050565b600080604083850312156137ce576137cd6134f7565b5b60006137dc85828601613545565b92505060206137ed858286016137a2565b9150509250929050565b6000806040838503121561380e5761380d6134f7565b5b600061381c85828601613545565b925050602061382d85828601613545565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061387e57607f821691505b6020821081141561389257613891613837565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ce602083613447565b91506138d982613898565b602082019050919050565b600060208201905081810360008301526138fd816138c1565b9050919050565b7f5f64657657616c6c657420616464726573732063616e6e6f7420626520300000600082015250565b600061393a601e83613447565b915061394582613904565b602082019050919050565b600060208201905081810360008301526139698161392d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139cc602883613447565b91506139d782613970565b604082019050919050565b600060208201905081810360008301526139fb816139bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a3c8261355a565b9150613a478361355a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a7c57613a7b613a02565b5b828201905092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b6000613abd601783613447565b9150613ac882613a87565b602082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613b4f603983613447565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613be1602583613447565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c73602683613447565b9150613c7e82613c17565b604082019050919050565b60006020820190508181036000830152613ca281613c66565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d05602483613447565b9150613d1082613ca9565b604082019050919050565b60006020820190508181036000830152613d3481613cf8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d97602283613447565b9150613da282613d3b565b604082019050919050565b60006020820190508181036000830152613dc681613d8a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e29602583613447565b9150613e3482613dcd565b604082019050919050565b60006020820190508181036000830152613e5881613e1c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ebb602383613447565b9150613ec682613e5f565b604082019050919050565b60006020820190508181036000830152613eea81613eae565b9050919050565b7f74726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b6000613f27601f83613447565b9150613f3282613ef1565b602082019050919050565b60006020820190508181036000830152613f5681613f1a565b9050919050565b6000613f688261355a565b9150613f738361355a565b925082821015613f8657613f85613a02565b5b828203905092915050565b7f5f7472616e736665723a3a207472616e736665722064656c617920656e61626c60008201527f65642e2054727920616761696e206c617465722e000000000000000000000000602082015250565b6000613fed603483613447565b9150613ff882613f91565b604082019050919050565b6000602082019050818103600083015261401c81613fe0565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b6000614059601f83613447565b915061406482614023565b602082019050919050565b600060208201905081810360008301526140888161404c565b9050919050565b7f43616e6e6f742065786365656420746865206d61782077616c6c65742e000000600082015250565b60006140c5601d83613447565b91506140d08261408f565b602082019050919050565b600060208201905081810360008301526140f4816140b8565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614157602183613447565b9150614162826140fb565b604082019050919050565b600060208201905081810360008301526141868161414a565b9050919050565b60006141988261355a565b91506141a38361355a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141dc576141db613a02565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142218261355a565b915061422c8361355a565b92508261423c5761423b6141e7565b5b828204905092915050565b600081905092915050565b50565b6000614262600083614247565b915061426d82614252565b600082019050919050565b600061428382614255565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142e9602683613447565b91506142f48261428d565b604082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061438c8161352e565b92915050565b6000602082840312156143a8576143a76134f7565b5b60006143b68482850161437d565b91505092915050565b6000819050919050565b60006143e46143df6143da846143bf565b613633565b61355a565b9050919050565b6143f4816143c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61442f8161351c565b82525050565b60006144418383614426565b60208301905092915050565b6000602082019050919050565b6000614465826143fa565b61446f8185614405565b935061447a83614416565b8060005b838110156144ab5781516144928882614435565b975061449d8361444d565b92505060018101905061447e565b5085935050505092915050565b600060a0820190506144cd60008301886136ad565b6144da60208301876143eb565b81810360408301526144ec818661445a565b90506144fb6060830185613761565b61450860808301846136ad565b9695505050505050565b600060c0820190506145276000830189613761565b61453460208301886136ad565b61454160408301876143eb565b61454e60608301866143eb565b61455b6080830185613761565b61456860a08301846136ad565b979650505050505050565b60008151905061458281613564565b92915050565b6000806000606084860312156145a1576145a06134f7565b5b60006145af86828701614573565b93505060206145c086828701614573565b92505060406145d186828701614573565b915050925092509256fea264697066735822122072a95aa94775a20e26fa6760c4564df4c69b5695fb198082bba78c5e704abf0764736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80638da5cb5b11610144578063bbc0c742116100b6578063e2f456051161007a578063e2f4560514610915578063e884f26014610940578063ee40166e14610957578063f11a24d314610982578063f2fde38b146109ad578063f6374342146109d657610267565b8063bbc0c7421461082e578063c024666814610859578063c876d0b914610882578063d85ba063146108ad578063dd62ed3e146108d857610267565b80639fccce32116101085780639fccce32146106f6578063a0d82dc514610721578063a457c2d71461074c578063a9059cbb14610789578063aa4bde28146107c6578063b62496f5146107f157610267565b80638da5cb5b146106215780638ea5220f1461064c57806395d89b41146106775780639a7a23d6146106a25780639c3b4fdc146106cb57610267565b806349bd5a5e116101dd5780636ddd1713116101a15780636ddd17131461054957806370a0823114610574578063715018a6146105b1578063751039fc146105c857806388e765ff146105df5780638a8c523c1461060a57610267565b806349bd5a5e146104605780634a62bb651461048b5780634fbee193146104b657806366d602ae146104f35780636a486a8e1461051e57610267565b80631a8145bb116102245780631a8145bb146103675780631f53ac021461039257806323b872dd146103bb578063313ce567146103f8578063395093511461042357610267565b806306fdde031461026c578063095ea7b31461029757806310d5de53146102d45780631694505e1461031157806318160ddd1461033c57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a01565b60405161028e91906134d5565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190613590565b610a93565b6040516102cb91906135eb565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190613606565b610ab1565b60405161030891906135eb565b60405180910390f35b34801561031d57600080fd5b50610326610ad1565b6040516103339190613692565b60405180910390f35b34801561034857600080fd5b50610351610af5565b60405161035e91906136bc565b60405180910390f35b34801561037357600080fd5b5061037c610aff565b60405161038991906136bc565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190613606565b610b05565b005b3480156103c757600080fd5b506103e260048036038101906103dd91906136d7565b610c93565b6040516103ef91906135eb565b60405180910390f35b34801561040457600080fd5b5061040d610d8b565b60405161041a9190613746565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190613590565b610d94565b60405161045791906135eb565b60405180910390f35b34801561046c57600080fd5b50610475610e40565b6040516104829190613770565b60405180910390f35b34801561049757600080fd5b506104a0610e64565b6040516104ad91906135eb565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190613606565b610e77565b6040516104ea91906135eb565b60405180910390f35b3480156104ff57600080fd5b50610508610ecd565b60405161051591906136bc565b60405180910390f35b34801561052a57600080fd5b50610533610ed3565b60405161054091906136bc565b60405180910390f35b34801561055557600080fd5b5061055e610ed9565b60405161056b91906135eb565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190613606565b610eec565b6040516105a891906136bc565b60405180910390f35b3480156105bd57600080fd5b506105c6610f34565b005b3480156105d457600080fd5b506105dd61108c565b005b3480156105eb57600080fd5b506105f4611187565b60405161060191906136bc565b60405180910390f35b34801561061657600080fd5b5061061f61118d565b005b34801561062d57600080fd5b506106366112df565b6040516106439190613770565b60405180910390f35b34801561065857600080fd5b50610661611309565b60405161066e9190613770565b60405180910390f35b34801561068357600080fd5b5061068c61132f565b60405161069991906134d5565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c491906137b7565b6113c1565b005b3480156106d757600080fd5b506106e06114f5565b6040516106ed91906136bc565b60405180910390f35b34801561070257600080fd5b5061070b6114fb565b60405161071891906136bc565b60405180910390f35b34801561072d57600080fd5b50610736611501565b60405161074391906136bc565b60405180910390f35b34801561075857600080fd5b50610773600480360381019061076e9190613590565b611507565b60405161078091906135eb565b60405180910390f35b34801561079557600080fd5b506107b060048036038101906107ab9190613590565b6115f2565b6040516107bd91906135eb565b60405180910390f35b3480156107d257600080fd5b506107db611610565b6040516107e891906136bc565b60405180910390f35b3480156107fd57600080fd5b5061081860048036038101906108139190613606565b611616565b60405161082591906135eb565b60405180910390f35b34801561083a57600080fd5b50610843611636565b60405161085091906135eb565b60405180910390f35b34801561086557600080fd5b50610880600480360381019061087b91906137b7565b611649565b005b34801561088e57600080fd5b50610897611789565b6040516108a491906135eb565b60405180910390f35b3480156108b957600080fd5b506108c261179c565b6040516108cf91906136bc565b60405180910390f35b3480156108e457600080fd5b506108ff60048036038101906108fa91906137f7565b6117a2565b60405161090c91906136bc565b60405180910390f35b34801561092157600080fd5b5061092a611829565b60405161093791906136bc565b60405180910390f35b34801561094c57600080fd5b5061095561182f565b005b34801561096357600080fd5b5061096c6118e3565b60405161097991906136bc565b60405180910390f35b34801561098e57600080fd5b506109976118e9565b6040516109a491906136bc565b60405180910390f35b3480156109b957600080fd5b506109d460048036038101906109cf9190613606565b6118ef565b005b3480156109e257600080fd5b506109eb611ab6565b6040516109f891906136bc565b60405180910390f35b606060038054610a1090613866565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3c90613866565b8015610a895780601f10610a5e57610100808354040283529160200191610a89565b820191906000526020600020905b815481529060010190602001808311610a6c57829003601f168201915b5050505050905090565b6000610aa7610aa0611abc565b8484611ac4565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60115481565b610b0d611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906138e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0390613950565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fa6f6d84b954ce74951fcd0831a092a5934f0bcdd7196cd56bf5a2e34118aa81060405160405180910390a250565b6000610ca0848484611c8f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ceb611abc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d62906139e2565b60405180910390fd5b610d7f85610d77611abc565b858403611ac4565b60019150509392505050565b60006012905090565b6000610e36610da1611abc565b848460016000610daf611abc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e319190613a31565b611ac4565b6001905092915050565b7f000000000000000000000000f1f9e0c27bcda6817b9c7eda0f8022a45822a2fe81565b601a60009054906101000a900460ff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60085481565b600f5481565b601860009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f3c611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906138e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611094611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906138e4565b60405180910390fd5b6000601a60006101000a81548160ff0219169083151502179055506000600560146101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60075481565b611195611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906138e4565b60405180910390fd5b601860019054906101000a900460ff1615611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90613ad3565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550436019819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461133e90613866565b80601f016020809104026020016040519081016040528092919081815260200182805461136a90613866565b80156113b75780601f1061138c576101008083540402835291602001916113b7565b820191906000526020600020905b81548152906001019060200180831161139a57829003601f168201915b5050505050905090565b6113c9611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f906138e4565b60405180910390fd5b7f000000000000000000000000f1f9e0c27bcda6817b9c7eda0f8022a45822a2fe73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90613b65565b60405180910390fd5b6114f18282612c5f565b5050565b600b5481565b60105481565b600e5481565b60008060016000611516611abc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca90613bf7565b60405180910390fd5b6115e76115de611abc565b85858403611ac4565b600191505092915050565b60006116066115ff611abc565b8484611c8f565b6001905092915050565b60095481565b60176020528060005260406000206000915054906101000a900460ff1681565b601860019054906101000a900460ff1681565b611651611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d7906138e4565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161177d91906135eb565b60405180910390a25050565b600560149054906101000a900460ff1681565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60125481565b611837611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bd906138e4565b60405180910390fd5b6000600560146101000a81548160ff021916908315150217905550565b60195481565b600a5481565b6118f7611abc565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d906138e4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90613c89565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b90613d1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9b90613dad565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c8291906136bc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613e3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690613ed1565b60405180910390fd5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e115750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e1b57612c5a565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ebd5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f7257601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f645750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f6d57600080fd5b611fca565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fc957612c5a565b5b6000811415611fd857612c5a565b601a60009054906101000a900460ff161561274157611ff56112df565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561206357506120336112df565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561209c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156120d6575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561274057601860019054906101000a900460ff166121d057601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121905750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613f3d565b60405180910390fd5b5b600560149054906101000a900460ff16156123ff577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561228d57507f000000000000000000000000f1f9e0c27bcda6817b9c7eda0f8022a45822a2fe73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156123fe5760044361229f9190613f5d565b601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561233657506004436122f49190613f5d565b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c90614003565b60405180910390fd5b43601560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124a25750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612549576007548111156124ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e39061406f565b60405180910390fd5b6009546124f883610eec565b826125039190613a31565b1115612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b906140db565b60405180910390fd5b61273f565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125ec5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561263b57600854811115612636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262d9061416d565b60405180910390fd5b61273e565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126df5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561273d576009546126f083610eec565b826126fb9190613a31565b111561273c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612733906140db565b60405180910390fd5b5b5b5b5b5b600061274c30610eec565b9050600060125482101590508080156127715750601860009054906101000a900460ff165b801561278a5750601860029054906101000a900460ff16155b80156127e05750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156128365750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561288c5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128d0576001601860026101000a81548160ff0219169083151502179055506128b4612d00565b6000601860026101000a81548160ff0219169083151502179055505b600060019050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129775750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561298157600090505b6000808215612c495743600160195461299a9190613a31565b101580156129f15750601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a4f576001601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612aaa57506000600f54115b15612b36576064600f5487612abf919061418d565b612ac99190614216565b9150600f54600d5483612adc919061418d565b612ae69190614216565b60116000828254612af79190613a31565b92505081905550600f54600e5483612b0f919061418d565b612b199190614216565b60106000828254612b2a9190613a31565b92505081905550612c1a565b601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b9157506000600c54115b15612c19576064600c5487612ba6919061418d565b612bb09190614216565b9150600c54600a5483612bc3919061418d565b612bcd9190614216565b60116000828254612bde9190613a31565b92505081905550600c54600b5483612bf6919061418d565b612c009190614216565b60106000828254612c119190613a31565b925050819055505b5b6000821115612c2f57612c2e883084612eb8565b5b8082612c3b9190613a31565b86612c469190613f5d565b95505b612c54888888612eb8565b50505050505b505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000612d0b30610eec565b90506000601054601154612d1f9190613a31565b90506000821480612d305750600081145b15612d3c575050612eb6565b600a601254612d4b919061418d565b821115612d6457600a601254612d61919061418d565b91505b60008060028360115486612d78919061418d565b612d829190614216565b612d8c9190614216565b9050612da28185612d9d9190613f5d565b613123565b6000479050600081905060006002601154612dbd9190614216565b86612dc89190613f5d565b60105484612dd6919061418d565b612de09190614216565b90508082612dee9190613f5d565b915060006011819055506000601081905550600084118015612e105750600082115b15612e2057612e1f8483613360565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612e6690614278565b60006040518083038185875af1925050503d8060008114612ea3576040519150601f19603f3d011682016040523d82523d6000602084013e612ea8565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f1f90613e3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8f90613ed1565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561301e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613015906142ff565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b19190613a31565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161311591906136bc565b60405180910390a350505050565b6000600267ffffffffffffffff8111156131405761313f61431f565b5b60405190808252806020026020018201604052801561316e5781602001602082028036833780820191505090505b50905030816000815181106131865761318561434e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561322b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324f9190614392565b816001815181106132635761326261434e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506132c8307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ac4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161332a9594939291906144b8565b600060405180830381600087803b15801561334457600080fd5b505af1158015613358573d6000803e3d6000fd5b505050505050565b61338b307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611ac4565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b81526004016133f296959493929190614512565b60606040518083038185885af1158015613410573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906134359190614588565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561347657808201518184015260208101905061345b565b83811115613485576000848401525b50505050565b6000601f19601f8301169050919050565b60006134a78261343c565b6134b18185613447565b93506134c1818560208601613458565b6134ca8161348b565b840191505092915050565b600060208201905081810360008301526134ef818461349c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613527826134fc565b9050919050565b6135378161351c565b811461354257600080fd5b50565b6000813590506135548161352e565b92915050565b6000819050919050565b61356d8161355a565b811461357857600080fd5b50565b60008135905061358a81613564565b92915050565b600080604083850312156135a7576135a66134f7565b5b60006135b585828601613545565b92505060206135c68582860161357b565b9150509250929050565b60008115159050919050565b6135e5816135d0565b82525050565b600060208201905061360060008301846135dc565b92915050565b60006020828403121561361c5761361b6134f7565b5b600061362a84828501613545565b91505092915050565b6000819050919050565b600061365861365361364e846134fc565b613633565b6134fc565b9050919050565b600061366a8261363d565b9050919050565b600061367c8261365f565b9050919050565b61368c81613671565b82525050565b60006020820190506136a76000830184613683565b92915050565b6136b68161355a565b82525050565b60006020820190506136d160008301846136ad565b92915050565b6000806000606084860312156136f0576136ef6134f7565b5b60006136fe86828701613545565b935050602061370f86828701613545565b92505060406137208682870161357b565b9150509250925092565b600060ff82169050919050565b6137408161372a565b82525050565b600060208201905061375b6000830184613737565b92915050565b61376a8161351c565b82525050565b60006020820190506137856000830184613761565b92915050565b613794816135d0565b811461379f57600080fd5b50565b6000813590506137b18161378b565b92915050565b600080604083850312156137ce576137cd6134f7565b5b60006137dc85828601613545565b92505060206137ed858286016137a2565b9150509250929050565b6000806040838503121561380e5761380d6134f7565b5b600061381c85828601613545565b925050602061382d85828601613545565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061387e57607f821691505b6020821081141561389257613891613837565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138ce602083613447565b91506138d982613898565b602082019050919050565b600060208201905081810360008301526138fd816138c1565b9050919050565b7f5f64657657616c6c657420616464726573732063616e6e6f7420626520300000600082015250565b600061393a601e83613447565b915061394582613904565b602082019050919050565b600060208201905081810360008301526139698161392d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139cc602883613447565b91506139d782613970565b604082019050919050565b600060208201905081810360008301526139fb816139bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a3c8261355a565b9150613a478361355a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a7c57613a7b613a02565b5b828201905092915050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b6000613abd601783613447565b9150613ac882613a87565b602082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613b4f603983613447565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613be1602583613447565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c73602683613447565b9150613c7e82613c17565b604082019050919050565b60006020820190508181036000830152613ca281613c66565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d05602483613447565b9150613d1082613ca9565b604082019050919050565b60006020820190508181036000830152613d3481613cf8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d97602283613447565b9150613da282613d3b565b604082019050919050565b60006020820190508181036000830152613dc681613d8a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613e29602583613447565b9150613e3482613dcd565b604082019050919050565b60006020820190508181036000830152613e5881613e1c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ebb602383613447565b9150613ec682613e5f565b604082019050919050565b60006020820190508181036000830152613eea81613eae565b9050919050565b7f74726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b6000613f27601f83613447565b9150613f3282613ef1565b602082019050919050565b60006020820190508181036000830152613f5681613f1a565b9050919050565b6000613f688261355a565b9150613f738361355a565b925082821015613f8657613f85613a02565b5b828203905092915050565b7f5f7472616e736665723a3a207472616e736665722064656c617920656e61626c60008201527f65642e2054727920616761696e206c617465722e000000000000000000000000602082015250565b6000613fed603483613447565b9150613ff882613f91565b604082019050919050565b6000602082019050818103600083015261401c81613fe0565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b6000614059601f83613447565b915061406482614023565b602082019050919050565b600060208201905081810360008301526140888161404c565b9050919050565b7f43616e6e6f742065786365656420746865206d61782077616c6c65742e000000600082015250565b60006140c5601d83613447565b91506140d08261408f565b602082019050919050565b600060208201905081810360008301526140f4816140b8565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000614157602183613447565b9150614162826140fb565b604082019050919050565b600060208201905081810360008301526141868161414a565b9050919050565b60006141988261355a565b91506141a38361355a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141dc576141db613a02565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006142218261355a565b915061422c8361355a565b92508261423c5761423b6141e7565b5b828204905092915050565b600081905092915050565b50565b6000614262600083614247565b915061426d82614252565b600082019050919050565b600061428382614255565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006142e9602683613447565b91506142f48261428d565b604082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061438c8161352e565b92915050565b6000602082840312156143a8576143a76134f7565b5b60006143b68482850161437d565b91505092915050565b6000819050919050565b60006143e46143df6143da846143bf565b613633565b61355a565b9050919050565b6143f4816143c9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61442f8161351c565b82525050565b60006144418383614426565b60208301905092915050565b6000602082019050919050565b6000614465826143fa565b61446f8185614405565b935061447a83614416565b8060005b838110156144ab5781516144928882614435565b975061449d8361444d565b92505060018101905061447e565b5085935050505092915050565b600060a0820190506144cd60008301886136ad565b6144da60208301876143eb565b81810360408301526144ec818661445a565b90506144fb6060830185613761565b61450860808301846136ad565b9695505050505050565b600060c0820190506145276000830189613761565b61453460208301886136ad565b61454160408301876143eb565b61454e60608301866143eb565b61455b6080830185613761565b61456860a08301846136ad565b979650505050505050565b60008151905061458281613564565b92915050565b6000806000606084860312156145a1576145a06134f7565b5b60006145af86828701614573565b93505060206145c086828701614573565b92505060406145d186828701614573565b915050925092509256fea264697066735822122072a95aa94775a20e26fa6760c4564df4c69b5695fb198082bba78c5e704abf0764736f6c634300080b0033

Deployed Bytecode Sourcemap

7696:10831:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4208:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8262:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8584:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3402:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8178:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11033:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4385:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3630:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4885:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8634:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8835:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11761:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7859:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8681:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3890:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2727:150;;;;;;;;;;;;;:::i;:::-;;11384:154;;;;;;;;;;;;;:::i;:::-;;7825:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10776:249;;;;;;;;;;;;;:::i;:::-;;2261:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7792:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3518:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12085:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7970:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8144:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8075:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5108:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4025:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7894:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8517:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8719:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11895:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7740:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8001:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3731:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8220:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11278:98;;;;;;;;;;;;;:::i;:::-;;8789:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7933:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2475:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8037:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3294:100;3348:13;3381:5;3374:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3294:100;:::o;4208:169::-;4291:4;4308:39;4317:12;:10;:12::i;:::-;4331:7;4340:6;4308:8;:39::i;:::-;4365:4;4358:11;;4208:169;;;;:::o;8262:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;8584:43::-;;;:::o;3402:108::-;3463:7;3490:12;;3483:19;;3402:108;:::o;8178:33::-;;;;:::o;11033:233::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11135:1:::1;11113:24;;:10;:24;;;;11105:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11203:10;11183:9;;:31;;;;;;;;;;;;;;;;;;11247:10;11230:28;;;;;;;;;;;;11033:233:::0;:::o;4385:492::-;4525:4;4542:36;4552:6;4560:9;4571:6;4542:9;:36::i;:::-;4591:24;4618:11;:19;4630:6;4618:19;;;;;;;;;;;;;;;:33;4638:12;:10;:12::i;:::-;4618:33;;;;;;;;;;;;;;;;4591:60;;4690:6;4670:16;:26;;4662:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4777:57;4786:6;4794:12;:10;:12::i;:::-;4827:6;4808:16;:25;4777:8;:57::i;:::-;4865:4;4858:11;;;4385:492;;;;;:::o;3630:93::-;3688:5;3713:2;3706:9;;3630:93;:::o;4885:215::-;4973:4;4990:80;4999:12;:10;:12::i;:::-;5013:7;5059:10;5022:11;:25;5034:12;:10;:12::i;:::-;5022:25;;;;;;;;;;;;;;;:34;5048:7;5022:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4990:8;:80::i;:::-;5088:4;5081:11;;4885:215;;;;:::o;8634:38::-;;;:::o;8835:33::-;;;;;;;;;;;;;:::o;11761:126::-;11827:4;11851:19;:28;11871:7;11851:28;;;;;;;;;;;;;;;;;;;;;;;;;11844:35;;11761:126;;;:::o;7859:28::-;;;;:::o;8107:::-;;;;:::o;8681:31::-;;;;;;;;;;;;;:::o;3890:127::-;3964:7;3991:9;:18;4001:7;3991:18;;;;;;;;;;;;;;;;3984:25;;3890:127;;;:::o;2727:150::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2836:1:::1;2799:40;;2820:6;;;;;;;;;;;2799:40;;;;;;;;;;;;2867:1;2850:6;;:19;;;;;;;;;;;;;;;;;;2727:150::o:0;11384:154::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11455:5:::1;11438:14;;:22;;;;;;;;;;;;;;;;;;11494:5;11471:20;;:28;;;;;;;;;;;;;;;;;;11515:15;;;;;;;;;;11384:154::o:0;7825:27::-;;;;:::o;10776:249::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10840:13:::1;;;;;;;;;;;10839:14;10831:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10908:4;10892:13;;:20;;;;;;;;;;;;;;;;;;10937:4;10923:11;;:18;;;;;;;;;;;;;;;;;;10973:12;10952:18;:33;;;;11001:16;;;;;;;;;;10776:249::o:0;2261:79::-;2299:7;2326:6;;;;;;;;;;;2319:13;;2261:79;:::o;7792:24::-;;;;;;;;;;;;;:::o;3518:104::-;3574:13;3607:7;3600:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3518:104;:::o;12085:244::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12194:13:::1;12186:21;;:4;:21;;;;12178:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12280:41;12309:4;12315:5;12280:28;:41::i;:::-;12085:244:::0;;:::o;7970:24::-;;;;:::o;8144:27::-;;;;:::o;8075:25::-;;;;:::o;5108:413::-;5201:4;5218:24;5245:11;:25;5257:12;:10;:12::i;:::-;5245:25;;;;;;;;;;;;;;;:34;5271:7;5245:34;;;;;;;;;;;;;;;;5218:61;;5318:15;5298:16;:35;;5290:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5411:67;5420:12;:10;:12::i;:::-;5434:7;5462:15;5443:16;:34;5411:8;:67::i;:::-;5509:4;5502:11;;;5108:413;;;;:::o;4025:175::-;4111:4;4128:42;4138:12;:10;:12::i;:::-;4152:9;4163:6;4128:9;:42::i;:::-;4188:4;4181:11;;4025:175;;;;:::o;7894:30::-;;;;:::o;8517:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;8719:33::-;;;;;;;;;;;;;:::o;11895:182::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12011:8:::1;11980:19;:28;12000:7;11980:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12051:7;12035:34;;;12060:8;12035:34;;;;;;:::i;:::-;;;;;;;;11895:182:::0;;:::o;7740:39::-;;;;;;;;;;;;;:::o;8001:27::-;;;;:::o;3731:151::-;3820:7;3847:11;:18;3859:5;3847:18;;;;;;;;;;;;;;;:27;3866:7;3847:27;;;;;;;;;;;;;;;;3840:34;;3731:151;;;;:::o;8220:33::-;;;;:::o;11278:98::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11363:5:::1;11340:20;;:28;;;;;;;;;;;;;;;;;;11278:98::o:0;8789:37::-;;;;:::o;7933:30::-;;;;:::o;2475:244::-;2398:12;:10;:12::i;:::-;2388:22;;:6;;;;;;;;;;;:22;;;2380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2584:1:::1;2564:22;;:8;:22;;;;2556:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2674:8;2645:38;;2666:6;;;;;;;;;;;2645:38;;;;;;;;;;;;2703:8;2694:6;;:17;;;;;;;;;;;;;;;;;;2475:244:::0;:::o;8037:31::-;;;;:::o;750:98::-;803:7;830:10;823:17;;750:98;:::o;6450:380::-;6603:1;6586:19;;:5;:19;;;;6578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6684:1;6665:21;;:7;:21;;;;6657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6768:6;6738:11;:18;6750:5;6738:18;;;;;;;;;;;;;;;:27;6757:7;6738:27;;;;;;;;;;;;;;;:36;;;;6806:7;6790:32;;6799:5;6790:32;;;6815:6;6790:32;;;;;;:::i;:::-;;;;;;;;6450:380;;;:::o;12531:3953::-;12645:1;12629:18;;:4;:18;;;;12621:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12722:1;12708:16;;:2;:16;;;;12700:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12781:25;:29;12807:2;12781:29;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;12814:7;:13;12822:4;12814:13;;;;;;;;;;;;;;;;;;;;;;;;;12781:46;12777:333;;;12844:7;;12777:333;12881:25;:31;12907:4;12881:31;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;12916:7;:11;12924:2;12916:11;;;;;;;;;;;;;;;;;;;;;;;;;12881:46;12877:233;;;12952:25;:31;12978:4;12952:31;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;12987:7;:11;12995:2;12987:11;;;;;;;;;;;;;;;;;;;;;;;;;12952:46;12944:55;;;;;;12877:233;;;13045:7;:11;13053:2;13045:11;;;;;;;;;;;;;;;;;;;;;;;;;13041:58;;;13077:7;;13041:58;12877:233;13137:1;13127:6;:11;13123:50;;;13155:7;;13123:50;13197:14;;;;;;;;;;;13193:1681;;;13240:7;:5;:7::i;:::-;13232:15;;:4;:15;;;;:32;;;;;13257:7;:5;:7::i;:::-;13251:13;;:2;:13;;;;13232:32;:52;;;;;13282:1;13268:16;;:2;:16;;;;13232:52;:77;;;;;13302:6;13288:21;;:2;:21;;;;13232:77;13228:1635;;;13335:13;;;;;;;;;;;13330:158;;13380:19;:25;13400:4;13380:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;13409:19;:23;13429:2;13409:23;;;;;;;;;;;;;;;;;;;;;;;;;13380:52;13372:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;13330:158;13530:20;;;;;;;;;;;13526:546;;;13593:15;13579:30;;:2;:30;;;;:62;;;;;13627:13;13613:28;;:2;:28;;;;13579:62;13575:478;;;13735:1;13720:12;:16;;;;:::i;:::-;13678:28;:39;13707:9;13678:39;;;;;;;;;;;;;;;;:58;:139;;;;;13816:1;13801:12;:16;;;;:::i;:::-;13766:28;:32;13795:2;13766:32;;;;;;;;;;;;;;;;:51;13678:139;13670:204;;;;;;;;;;;;:::i;:::-;;;;;;;;;13943:12;13901:28;:39;13930:9;13901:39;;;;;;;;;;;;;;;:54;;;;14017:12;13982:28;:32;14011:2;13982:32;;;;;;;;;;;;;;;:47;;;;13575:478;13526:546;14113:25;:31;14139:4;14113:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14149:31;:35;14181:2;14149:35;;;;;;;;;;;;;;;;;;;;;;;;;14148:36;14113:71;14109:739;;;14227:12;;14217:6;:22;;14209:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14332:15;;14315:13;14325:2;14315:9;:13::i;:::-;14306:6;:22;;;;:::i;:::-;:41;;14298:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14109:739;;;14429:25;:29;14455:2;14429:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;14463:31;:37;14495:4;14463:37;;;;;;;;;;;;;;;;;;;;;;;;;14462:38;14429:71;14425:423;;;14543:13;;14533:6;:23;;14525:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14425:423;;;14643:31;:35;14675:2;14643:35;;;;;;;;;;;;;;;;;;;;;;;;;14642:36;:78;;;;;14683:31;:37;14715:4;14683:37;;;;;;;;;;;;;;;;;;;;;;;;;14682:38;14642:78;14638:210;;;14779:15;;14762:13;14772:2;14762:9;:13::i;:::-;14753:6;:22;;;;:::i;:::-;:41;;14745:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14638:210;14425:423;14109:739;13228:1635;13193:1681;14886:28;14917:24;14935:4;14917:9;:24::i;:::-;14886:55;;14962:12;15001:18;;14977:20;:42;;14962:57;;15036:7;:22;;;;;15047:11;;;;;;;;;;;15036:22;:35;;;;;15063:8;;;;;;;;;;;15062:9;15036:35;:71;;;;;15076:25;:31;15102:4;15076:31;;;;;;;;;;;;;;;;;;;;;;;;;15075:32;15036:71;:111;;;;;15122:19;:25;15142:4;15122:25;;;;;;;;;;;;;;;;;;;;;;;;;15121:26;15036:111;:139;;;;;15152:19;:23;15172:2;15152:23;;;;;;;;;;;;;;;;;;;;;;;;;15151:24;15036:139;15032:247;;;15203:4;15192:8;;:15;;;;;;;;;;;;;;;;;;15224:10;:8;:10::i;:::-;15262:5;15251:8;;:16;;;;;;;;;;;;;;;;;;15032:247;15291:12;15306:4;15291:19;;15327;:25;15347:4;15327:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;15356:19;:23;15376:2;15356:23;;;;;;;;;;;;;;;;;;;;;;;;;15327:52;15323:100;;;15406:5;15396:15;;15323:100;15443:12;15470:21;15512:7;15508:923;;;15568:12;15563:1;15542:18;;:22;;;;:::i;:::-;:38;;:73;;;;;15584:25;:31;15610:4;15584:31;;;;;;;;;;;;;;;;;;;;;;;;;15542:73;15538:132;;;15650:4;15636:7;:11;15644:2;15636:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;15538:132;15691:25;:29;15717:2;15691:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;15740:1;15724:13;;:17;15691:50;15687:557;;;15793:3;15778:13;;15769:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;15762:34;;15863:13;;15844:16;;15837:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;15815:18;;:61;;;;;;;:::i;:::-;;;;;;;;15931:13;;15918:10;;15911:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;15895:12;;:49;;;;;;;:::i;:::-;;;;;;;;15687:557;;;15984:25;:31;16010:4;15984:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;16034:1;16019:12;;:16;15984:51;15980:264;;;16084:3;16069:12;;16060:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16053:34;;16150:12;;16132:15;;16125:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;16103:18;;:59;;;;;;;:::i;:::-;;;;;;;;16216:12;;16204:9;;16197:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;16181:12;;:47;;;;;;;:::i;:::-;;;;;;;;15980:264;15687:557;16283:1;16276:4;:8;16272:95;;;16309:42;16325:4;16339;16346;16309:15;:42::i;:::-;16272:95;16406:13;16399:4;:20;;;;:::i;:::-;16389:30;;;;;:::i;:::-;;;15508:923;16443:33;16459:4;16465:2;16469:6;16443:15;:33::i;:::-;12610:3874;;;;;12531:3953;;;;:::o;12337:186::-;12454:5;12420:25;:31;12446:4;12420:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12509:5;12475:40;;12503:4;12475:40;;;;;;;;;;;;12337:186;;:::o;16977:1164::-;17018:23;17044:24;17062:4;17044:9;:24::i;:::-;17018:50;;17079:25;17128:12;;17107:18;;:33;;;;:::i;:::-;17079:61;;17184:1;17165:15;:20;:46;;;;17210:1;17189:17;:22;17165:46;17161:85;;;17228:7;;;;17161:85;17301:2;17280:18;;:23;;;;:::i;:::-;17262:15;:41;17258:115;;;17359:2;17338:18;;:23;;;;:::i;:::-;17320:41;;17258:115;17385:12;17418:23;17503:1;17483:17;17462:18;;17444:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;17418:86;;17525:51;17560:15;17542;:33;;;;:::i;:::-;17525:16;:51::i;:::-;17598:18;17619:21;17598:42;;17651:23;17677:10;17651:36;;17700:17;17791:1;17770:18;;:22;;;;:::i;:::-;17749:17;:44;;;;:::i;:::-;17733:12;;17720:10;:25;;;;:::i;:::-;:74;;;;:::i;:::-;17700:94;;17826:9;17807:28;;;;;:::i;:::-;;;17881:1;17860:18;:22;;;;17908:1;17893:12;:16;;;;17952:1;17934:15;:19;:42;;;;;17975:1;17957:15;:19;17934:42;17930:121;;;17993:46;18006:15;18023;17993:12;:46::i;:::-;17930:121;18084:9;;;;;;;;;;;18076:23;;18107:21;18076:57;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18063:70;;;;;17005:1136;;;;;;;16977:1164;:::o;5529:614::-;5687:1;5669:20;;:6;:20;;;;5661:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5771:1;5750:23;;:9;:23;;;;5742:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5826:21;5850:9;:17;5860:6;5850:17;;;;;;;;;;;;;;;;5826:41;;5903:6;5886:13;:23;;5878:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6024:6;6008:13;:22;5988:9;:17;5998:6;5988:17;;;;;;;;;;;;;;;:42;;;;6076:6;6052:9;:20;6062:9;6052:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6117:9;6100:35;;6109:6;6100:35;;;6128:6;6100:35;;;;;;:::i;:::-;;;;;;;;5650:493;5529:614;;;:::o;16492:477::-;16560:21;16598:1;16584:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16560:40;;16629:4;16611;16616:1;16611:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16655:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16645:4;16650:1;16645:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;16690:62;16707:4;16722:15;16740:11;16690:8;:62::i;:::-;16765:15;:66;;;16846:11;16872:1;16888:4;16915;16935:15;16765:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16547:422;16492:477;:::o;18153:370::-;18234:62;18251:4;18266:15;18284:11;18234:8;:62::i;:::-;18309:15;:31;;;18348:9;18381:4;18401:11;18427:1;18443;18467:6;18489:15;18309:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18153:370;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:144::-;4243:9;4276:37;4307:5;4276:37;:::i;:::-;4263:50;;4175:144;;;:::o;4325:167::-;4430:55;4479:5;4430:55;:::i;:::-;4425:3;4418:68;4325:167;;:::o;4498:258::-;4609:4;4647:2;4636:9;4632:18;4624:26;;4660:89;4746:1;4735:9;4731:17;4722:6;4660:89;:::i;:::-;4498:258;;;;:::o;4762:118::-;4849:24;4867:5;4849:24;:::i;:::-;4844:3;4837:37;4762:118;;:::o;4886:222::-;4979:4;5017:2;5006:9;5002:18;4994:26;;5030:71;5098:1;5087:9;5083:17;5074:6;5030:71;:::i;:::-;4886:222;;;;:::o;5114:619::-;5191:6;5199;5207;5256:2;5244:9;5235:7;5231:23;5227:32;5224:119;;;5262:79;;:::i;:::-;5224:119;5382:1;5407:53;5452:7;5443:6;5432:9;5428:22;5407:53;:::i;:::-;5397:63;;5353:117;5509:2;5535:53;5580:7;5571:6;5560:9;5556:22;5535:53;:::i;:::-;5525:63;;5480:118;5637:2;5663:53;5708:7;5699:6;5688:9;5684:22;5663:53;:::i;:::-;5653:63;;5608:118;5114:619;;;;;:::o;5739:86::-;5774:7;5814:4;5807:5;5803:16;5792:27;;5739:86;;;:::o;5831:112::-;5914:22;5930:5;5914:22;:::i;:::-;5909:3;5902:35;5831:112;;:::o;5949:214::-;6038:4;6076:2;6065:9;6061:18;6053:26;;6089:67;6153:1;6142:9;6138:17;6129:6;6089:67;:::i;:::-;5949:214;;;;:::o;6169:118::-;6256:24;6274:5;6256:24;:::i;:::-;6251:3;6244:37;6169:118;;:::o;6293:222::-;6386:4;6424:2;6413:9;6409:18;6401:26;;6437:71;6505:1;6494:9;6490:17;6481:6;6437:71;:::i;:::-;6293:222;;;;:::o;6521:116::-;6591:21;6606:5;6591:21;:::i;:::-;6584:5;6581:32;6571:60;;6627:1;6624;6617:12;6571:60;6521:116;:::o;6643:133::-;6686:5;6724:6;6711:20;6702:29;;6740:30;6764:5;6740:30;:::i;:::-;6643:133;;;;:::o;6782:468::-;6847:6;6855;6904:2;6892:9;6883:7;6879:23;6875:32;6872:119;;;6910:79;;:::i;:::-;6872:119;7030:1;7055:53;7100:7;7091:6;7080:9;7076:22;7055:53;:::i;:::-;7045:63;;7001:117;7157:2;7183:50;7225:7;7216:6;7205:9;7201:22;7183:50;:::i;:::-;7173:60;;7128:115;6782:468;;;;;:::o;7256:474::-;7324:6;7332;7381:2;7369:9;7360:7;7356:23;7352:32;7349:119;;;7387:79;;:::i;:::-;7349:119;7507:1;7532:53;7577:7;7568:6;7557:9;7553:22;7532:53;:::i;:::-;7522:63;;7478:117;7634:2;7660:53;7705:7;7696:6;7685:9;7681:22;7660:53;:::i;:::-;7650:63;;7605:118;7256:474;;;;;:::o;7736:180::-;7784:77;7781:1;7774:88;7881:4;7878:1;7871:15;7905:4;7902:1;7895:15;7922:320;7966:6;8003:1;7997:4;7993:12;7983:22;;8050:1;8044:4;8040:12;8071:18;8061:81;;8127:4;8119:6;8115:17;8105:27;;8061:81;8189:2;8181:6;8178:14;8158:18;8155:38;8152:84;;;8208:18;;:::i;:::-;8152:84;7973:269;7922:320;;;:::o;8248:182::-;8388:34;8384:1;8376:6;8372:14;8365:58;8248:182;:::o;8436:366::-;8578:3;8599:67;8663:2;8658:3;8599:67;:::i;:::-;8592:74;;8675:93;8764:3;8675:93;:::i;:::-;8793:2;8788:3;8784:12;8777:19;;8436:366;;;:::o;8808:419::-;8974:4;9012:2;9001:9;8997:18;8989:26;;9061:9;9055:4;9051:20;9047:1;9036:9;9032:17;9025:47;9089:131;9215:4;9089:131;:::i;:::-;9081:139;;8808:419;;;:::o;9233:180::-;9373:32;9369:1;9361:6;9357:14;9350:56;9233:180;:::o;9419:366::-;9561:3;9582:67;9646:2;9641:3;9582:67;:::i;:::-;9575:74;;9658:93;9747:3;9658:93;:::i;:::-;9776:2;9771:3;9767:12;9760:19;;9419:366;;;:::o;9791:419::-;9957:4;9995:2;9984:9;9980:18;9972:26;;10044:9;10038:4;10034:20;10030:1;10019:9;10015:17;10008:47;10072:131;10198:4;10072:131;:::i;:::-;10064:139;;9791:419;;;:::o;10216:227::-;10356:34;10352:1;10344:6;10340:14;10333:58;10425:10;10420:2;10412:6;10408:15;10401:35;10216:227;:::o;10449:366::-;10591:3;10612:67;10676:2;10671:3;10612:67;:::i;:::-;10605:74;;10688:93;10777:3;10688:93;:::i;:::-;10806:2;10801:3;10797:12;10790:19;;10449:366;;;:::o;10821:419::-;10987:4;11025:2;11014:9;11010:18;11002:26;;11074:9;11068:4;11064:20;11060:1;11049:9;11045:17;11038:47;11102:131;11228:4;11102:131;:::i;:::-;11094:139;;10821:419;;;:::o;11246:180::-;11294:77;11291:1;11284:88;11391:4;11388:1;11381:15;11415:4;11412:1;11405:15;11432:305;11472:3;11491:20;11509:1;11491:20;:::i;:::-;11486:25;;11525:20;11543:1;11525:20;:::i;:::-;11520:25;;11679:1;11611:66;11607:74;11604:1;11601:81;11598:107;;;11685:18;;:::i;:::-;11598:107;11729:1;11726;11722:9;11715:16;;11432:305;;;;:::o;11743:173::-;11883:25;11879:1;11871:6;11867:14;11860:49;11743:173;:::o;11922:366::-;12064:3;12085:67;12149:2;12144:3;12085:67;:::i;:::-;12078:74;;12161:93;12250:3;12161:93;:::i;:::-;12279:2;12274:3;12270:12;12263:19;;11922:366;;;:::o;12294:419::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12547:9;12541:4;12537:20;12533:1;12522:9;12518:17;12511:47;12575:131;12701:4;12575:131;:::i;:::-;12567:139;;12294:419;;;:::o;12719:244::-;12859:34;12855:1;12847:6;12843:14;12836:58;12928:27;12923:2;12915:6;12911:15;12904:52;12719:244;:::o;12969:366::-;13111:3;13132:67;13196:2;13191:3;13132:67;:::i;:::-;13125:74;;13208:93;13297:3;13208:93;:::i;:::-;13326:2;13321:3;13317:12;13310:19;;12969:366;;;:::o;13341:419::-;13507:4;13545:2;13534:9;13530:18;13522:26;;13594:9;13588:4;13584:20;13580:1;13569:9;13565:17;13558:47;13622:131;13748:4;13622:131;:::i;:::-;13614:139;;13341:419;;;:::o;13766:224::-;13906:34;13902:1;13894:6;13890:14;13883:58;13975:7;13970:2;13962:6;13958:15;13951:32;13766:224;:::o;13996:366::-;14138:3;14159:67;14223:2;14218:3;14159:67;:::i;:::-;14152:74;;14235:93;14324:3;14235:93;:::i;:::-;14353:2;14348:3;14344:12;14337:19;;13996:366;;;:::o;14368:419::-;14534:4;14572:2;14561:9;14557:18;14549:26;;14621:9;14615:4;14611:20;14607:1;14596:9;14592:17;14585:47;14649:131;14775:4;14649:131;:::i;:::-;14641:139;;14368:419;;;:::o;14793:225::-;14933:34;14929:1;14921:6;14917:14;14910:58;15002:8;14997:2;14989:6;14985:15;14978:33;14793:225;:::o;15024:366::-;15166:3;15187:67;15251:2;15246:3;15187:67;:::i;:::-;15180:74;;15263:93;15352:3;15263:93;:::i;:::-;15381:2;15376:3;15372:12;15365:19;;15024:366;;;:::o;15396:419::-;15562:4;15600:2;15589:9;15585:18;15577:26;;15649:9;15643:4;15639:20;15635:1;15624:9;15620:17;15613:47;15677:131;15803:4;15677:131;:::i;:::-;15669:139;;15396:419;;;:::o;15821:223::-;15961:34;15957:1;15949:6;15945:14;15938:58;16030:6;16025:2;16017:6;16013:15;16006:31;15821:223;:::o;16050:366::-;16192:3;16213:67;16277:2;16272:3;16213:67;:::i;:::-;16206:74;;16289:93;16378:3;16289:93;:::i;:::-;16407:2;16402:3;16398:12;16391:19;;16050:366;;;:::o;16422:419::-;16588:4;16626:2;16615:9;16611:18;16603:26;;16675:9;16669:4;16665:20;16661:1;16650:9;16646:17;16639:47;16703:131;16829:4;16703:131;:::i;:::-;16695:139;;16422:419;;;:::o;16847:221::-;16987:34;16983:1;16975:6;16971:14;16964:58;17056:4;17051:2;17043:6;17039:15;17032:29;16847:221;:::o;17074:366::-;17216:3;17237:67;17301:2;17296:3;17237:67;:::i;:::-;17230:74;;17313:93;17402:3;17313:93;:::i;:::-;17431:2;17426:3;17422:12;17415:19;;17074:366;;;:::o;17446:419::-;17612:4;17650:2;17639:9;17635:18;17627:26;;17699:9;17693:4;17689:20;17685:1;17674:9;17670:17;17663:47;17727:131;17853:4;17727:131;:::i;:::-;17719:139;;17446:419;;;:::o;17871:224::-;18011:34;18007:1;17999:6;17995:14;17988:58;18080:7;18075:2;18067:6;18063:15;18056:32;17871:224;:::o;18101:366::-;18243:3;18264:67;18328:2;18323:3;18264:67;:::i;:::-;18257:74;;18340:93;18429:3;18340:93;:::i;:::-;18458:2;18453:3;18449:12;18442:19;;18101:366;;;:::o;18473:419::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:131;18880:4;18754:131;:::i;:::-;18746:139;;18473:419;;;:::o;18898:222::-;19038:34;19034:1;19026:6;19022:14;19015:58;19107:5;19102:2;19094:6;19090:15;19083:30;18898:222;:::o;19126:366::-;19268:3;19289:67;19353:2;19348:3;19289:67;:::i;:::-;19282:74;;19365:93;19454:3;19365:93;:::i;:::-;19483:2;19478:3;19474:12;19467:19;;19126:366;;;:::o;19498:419::-;19664:4;19702:2;19691:9;19687:18;19679:26;;19751:9;19745:4;19741:20;19737:1;19726:9;19722:17;19715:47;19779:131;19905:4;19779:131;:::i;:::-;19771:139;;19498:419;;;:::o;19923:181::-;20063:33;20059:1;20051:6;20047:14;20040:57;19923:181;:::o;20110:366::-;20252:3;20273:67;20337:2;20332:3;20273:67;:::i;:::-;20266:74;;20349:93;20438:3;20349:93;:::i;:::-;20467:2;20462:3;20458:12;20451:19;;20110:366;;;:::o;20482:419::-;20648:4;20686:2;20675:9;20671:18;20663:26;;20735:9;20729:4;20725:20;20721:1;20710:9;20706:17;20699:47;20763:131;20889:4;20763:131;:::i;:::-;20755:139;;20482:419;;;:::o;20907:191::-;20947:4;20967:20;20985:1;20967:20;:::i;:::-;20962:25;;21001:20;21019:1;21001:20;:::i;:::-;20996:25;;21040:1;21037;21034:8;21031:34;;;21045:18;;:::i;:::-;21031:34;21090:1;21087;21083:9;21075:17;;20907:191;;;;:::o;21104:239::-;21244:34;21240:1;21232:6;21228:14;21221:58;21313:22;21308:2;21300:6;21296:15;21289:47;21104:239;:::o;21349:366::-;21491:3;21512:67;21576:2;21571:3;21512:67;:::i;:::-;21505:74;;21588:93;21677:3;21588:93;:::i;:::-;21706:2;21701:3;21697:12;21690:19;;21349:366;;;:::o;21721:419::-;21887:4;21925:2;21914:9;21910:18;21902:26;;21974:9;21968:4;21964:20;21960:1;21949:9;21945:17;21938:47;22002:131;22128:4;22002:131;:::i;:::-;21994:139;;21721:419;;;:::o;22146:181::-;22286:33;22282:1;22274:6;22270:14;22263:57;22146:181;:::o;22333:366::-;22475:3;22496:67;22560:2;22555:3;22496:67;:::i;:::-;22489:74;;22572:93;22661:3;22572:93;:::i;:::-;22690:2;22685:3;22681:12;22674:19;;22333:366;;;:::o;22705:419::-;22871:4;22909:2;22898:9;22894:18;22886:26;;22958:9;22952:4;22948:20;22944:1;22933:9;22929:17;22922:47;22986:131;23112:4;22986:131;:::i;:::-;22978:139;;22705:419;;;:::o;23130:179::-;23270:31;23266:1;23258:6;23254:14;23247:55;23130:179;:::o;23315:366::-;23457:3;23478:67;23542:2;23537:3;23478:67;:::i;:::-;23471:74;;23554:93;23643:3;23554:93;:::i;:::-;23672:2;23667:3;23663:12;23656:19;;23315:366;;;:::o;23687:419::-;23853:4;23891:2;23880:9;23876:18;23868:26;;23940:9;23934:4;23930:20;23926:1;23915:9;23911:17;23904:47;23968:131;24094:4;23968:131;:::i;:::-;23960:139;;23687:419;;;:::o;24112:220::-;24252:34;24248:1;24240:6;24236:14;24229:58;24321:3;24316:2;24308:6;24304:15;24297:28;24112:220;:::o;24338:366::-;24480:3;24501:67;24565:2;24560:3;24501:67;:::i;:::-;24494:74;;24577:93;24666:3;24577:93;:::i;:::-;24695:2;24690:3;24686:12;24679:19;;24338:366;;;:::o;24710:419::-;24876:4;24914:2;24903:9;24899:18;24891:26;;24963:9;24957:4;24953:20;24949:1;24938:9;24934:17;24927:47;24991:131;25117:4;24991:131;:::i;:::-;24983:139;;24710:419;;;:::o;25135:348::-;25175:7;25198:20;25216:1;25198:20;:::i;:::-;25193:25;;25232:20;25250:1;25232:20;:::i;:::-;25227:25;;25420:1;25352:66;25348:74;25345:1;25342:81;25337:1;25330:9;25323:17;25319:105;25316:131;;;25427:18;;:::i;:::-;25316:131;25475:1;25472;25468:9;25457:20;;25135:348;;;;:::o;25489:180::-;25537:77;25534:1;25527:88;25634:4;25631:1;25624:15;25658:4;25655:1;25648:15;25675:185;25715:1;25732:20;25750:1;25732:20;:::i;:::-;25727:25;;25766:20;25784:1;25766:20;:::i;:::-;25761:25;;25805:1;25795:35;;25810:18;;:::i;:::-;25795:35;25852:1;25849;25845:9;25840:14;;25675:185;;;;:::o;25866:147::-;25967:11;26004:3;25989:18;;25866:147;;;;:::o;26019:114::-;;:::o;26139:398::-;26298:3;26319:83;26400:1;26395:3;26319:83;:::i;:::-;26312:90;;26411:93;26500:3;26411:93;:::i;:::-;26529:1;26524:3;26520:11;26513:18;;26139:398;;;:::o;26543:379::-;26727:3;26749:147;26892:3;26749:147;:::i;:::-;26742:154;;26913:3;26906:10;;26543:379;;;:::o;26928:225::-;27068:34;27064:1;27056:6;27052:14;27045:58;27137:8;27132:2;27124:6;27120:15;27113:33;26928:225;:::o;27159:366::-;27301:3;27322:67;27386:2;27381:3;27322:67;:::i;:::-;27315:74;;27398:93;27487:3;27398:93;:::i;:::-;27516:2;27511:3;27507:12;27500:19;;27159:366;;;:::o;27531:419::-;27697:4;27735:2;27724:9;27720:18;27712:26;;27784:9;27778:4;27774:20;27770:1;27759:9;27755:17;27748:47;27812:131;27938:4;27812:131;:::i;:::-;27804:139;;27531:419;;;:::o;27956:180::-;28004:77;28001:1;27994:88;28101:4;28098:1;28091:15;28125:4;28122:1;28115:15;28142:180;28190:77;28187:1;28180:88;28287:4;28284:1;28277:15;28311:4;28308:1;28301:15;28328:143;28385:5;28416:6;28410:13;28401:22;;28432:33;28459:5;28432:33;:::i;:::-;28328:143;;;;:::o;28477:351::-;28547:6;28596:2;28584:9;28575:7;28571:23;28567:32;28564:119;;;28602:79;;:::i;:::-;28564:119;28722:1;28747:64;28803:7;28794:6;28783:9;28779:22;28747:64;:::i;:::-;28737:74;;28693:128;28477:351;;;;:::o;28834:85::-;28879:7;28908:5;28897:16;;28834:85;;;:::o;28925:158::-;28983:9;29016:61;29034:42;29043:32;29069:5;29043:32;:::i;:::-;29034:42;:::i;:::-;29016:61;:::i;:::-;29003:74;;28925:158;;;:::o;29089:147::-;29184:45;29223:5;29184:45;:::i;:::-;29179:3;29172:58;29089:147;;:::o;29242:114::-;29309:6;29343:5;29337:12;29327:22;;29242:114;;;:::o;29362:184::-;29461:11;29495:6;29490:3;29483:19;29535:4;29530:3;29526:14;29511:29;;29362:184;;;;:::o;29552:132::-;29619:4;29642:3;29634:11;;29672:4;29667:3;29663:14;29655:22;;29552:132;;;:::o;29690:108::-;29767:24;29785:5;29767:24;:::i;:::-;29762:3;29755:37;29690:108;;:::o;29804:179::-;29873:10;29894:46;29936:3;29928:6;29894:46;:::i;:::-;29972:4;29967:3;29963:14;29949:28;;29804:179;;;;:::o;29989:113::-;30059:4;30091;30086:3;30082:14;30074:22;;29989:113;;;:::o;30138:732::-;30257:3;30286:54;30334:5;30286:54;:::i;:::-;30356:86;30435:6;30430:3;30356:86;:::i;:::-;30349:93;;30466:56;30516:5;30466:56;:::i;:::-;30545:7;30576:1;30561:284;30586:6;30583:1;30580:13;30561:284;;;30662:6;30656:13;30689:63;30748:3;30733:13;30689:63;:::i;:::-;30682:70;;30775:60;30828:6;30775:60;:::i;:::-;30765:70;;30621:224;30608:1;30605;30601:9;30596:14;;30561:284;;;30565:14;30861:3;30854:10;;30262:608;;;30138:732;;;;:::o;30876:831::-;31139:4;31177:3;31166:9;31162:19;31154:27;;31191:71;31259:1;31248:9;31244:17;31235:6;31191:71;:::i;:::-;31272:80;31348:2;31337:9;31333:18;31324:6;31272:80;:::i;:::-;31399:9;31393:4;31389:20;31384:2;31373:9;31369:18;31362:48;31427:108;31530:4;31521:6;31427:108;:::i;:::-;31419:116;;31545:72;31613:2;31602:9;31598:18;31589:6;31545:72;:::i;:::-;31627:73;31695:3;31684:9;31680:19;31671:6;31627:73;:::i;:::-;30876:831;;;;;;;;:::o;31713:807::-;31962:4;32000:3;31989:9;31985:19;31977:27;;32014:71;32082:1;32071:9;32067:17;32058:6;32014:71;:::i;:::-;32095:72;32163:2;32152:9;32148:18;32139:6;32095:72;:::i;:::-;32177:80;32253:2;32242:9;32238:18;32229:6;32177:80;:::i;:::-;32267;32343:2;32332:9;32328:18;32319:6;32267:80;:::i;:::-;32357:73;32425:3;32414:9;32410:19;32401:6;32357:73;:::i;:::-;32440;32508:3;32497:9;32493:19;32484:6;32440:73;:::i;:::-;31713:807;;;;;;;;;:::o;32526:143::-;32583:5;32614:6;32608:13;32599:22;;32630:33;32657:5;32630:33;:::i;:::-;32526:143;;;;:::o;32675:663::-;32763:6;32771;32779;32828:2;32816:9;32807:7;32803:23;32799:32;32796:119;;;32834:79;;:::i;:::-;32796:119;32954:1;32979:64;33035:7;33026:6;33015:9;33011:22;32979:64;:::i;:::-;32969:74;;32925:128;33092:2;33118:64;33174:7;33165:6;33154:9;33150:22;33118:64;:::i;:::-;33108:74;;33063:129;33231:2;33257:64;33313:7;33304:6;33293:9;33289:22;33257:64;:::i;:::-;33247:74;;33202:129;32675:663;;;;;:::o

Swarm Source

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