ETH Price: $2,357.50 (+1.33%)

Token

Bakemono Yokai (YOKAI)
 

Overview

Max Total Supply

100,000,000 YOKAI

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
939,550 YOKAI

Value
$0.00
0x8E533DBE7b12aF95A398b687D9E1d5903BE8C938
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:
Yokai

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-12-06
*/

/**
 __________________________¶¶_______________
__________________¶¶____¶¶_________________
__________¶¶¶¶¶¶¶¶¶¶¶¶¶__¶¶¶¶______________
______¶¶¶¶__¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶________________
__¶¶¶¶¶¶____¶¶¶¶¶¶¶¶¶_____¶¶___¶¶¶¶________
__¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_____¶¶¶¶¶¶______
____¶¶¶¶¶¶__¶¶____¶¶¶¶¶¶_________¶¶¶¶¶¶____
____¶¶______¶¶¶¶______¶¶¶¶¶¶___¶¶¶¶¶¶¶¶____
____________¶¶________¶¶¶¶¶¶___¶¶¶¶¶¶¶¶¶¶__
________¶¶__¶¶________¶¶¶¶¶¶___¶¶¶¶¶¶¶¶¶¶__
__________¶¶________¶¶¶¶¶¶___¶¶¶¶¶¶¶¶¶¶¶¶¶¶
________________¶¶¶¶¶¶¶¶¶¶_¶¶____¶¶¶¶__¶¶¶¶
________¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶__¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶
__¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶____¶¶¶¶¶¶¶¶
_¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶
¶¶¶¶¶¶¶¶¶¶¶¶¶¶__¶¶__¶¶¶__¶¶¶¶____¶¶¶¶¶¶__¶¶
¶¶__¶¶¶¶¶¶¶¶____¶¶__¶¶¶¶¶¶¶__¶¶¶¶¶¶¶¶¶¶__¶¶
¶__¶¶¶¶¶¶¶¶____________¶¶__¶¶¶¶¶¶¶¶¶¶¶¶___¶
___¶¶¶¶¶¶____¶¶¶¶________¶¶__________¶¶____
__¶¶¶¶¶¶_______¶¶¶¶____________________¶¶__
__¶¶¶¶¶¶¶_______¶¶¶¶__¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_____
__¶¶¶¶¶¶¶¶______¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶______
___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶____
_____¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_________¶¶¶¶¶¶¶¶__
_______¶¶¶¶¶¶¶¶¶¶¶¶¶_________¶¶____¶¶¶¶¶¶__
_________¶¶¶¶¶¶____________¶¶¶¶¶¶__¶¶¶¶¶¶¶¶
___________¶¶____________¶¶¶¶¶¶____¶¶¶¶¶¶¶¶
__________________________¶¶¶¶¶¶¶¶¶¶¶¶¶__¶¶
_________¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶___¶
_____¶¶¶¶¶¶¶____¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶__¶¶______
___¶¶¶¶______________¶¶¶¶¶¶______¶¶________
___¶¶__¶¶______________¶¶__________________
_¶¶__¶¶____________________________________
___¶¶___________¶¶__¶¶¶¶¶¶¶¶¶¶¶¶___________
___¶¶___¶¶¶______¶¶__¶¶¶¶_______¶¶_________
_¶¶____¶¶¶¶¶¶¶__¶¶¶¶¶¶_________¶¶¶_________
_¶¶¶¶__¶¶__¶¶¶¶¶¶¶¶¶_________¶¶¶¶__________
_¶¶¶¶¶¶__¶¶¶¶¶¶¶¶¶¶¶¶¶_____________________
___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶__¶¶¶¶___________________
_____¶¶¶¶¶¶¶¶¶¶¶___________________________
______________¶¶___________________________
*/
 
 // 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 transfer(address recipient, uint256 amount) external returns (bool);

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

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

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

    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 symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

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

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

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

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

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

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

    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 _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 Yokai is ERC20, Ownable {

    address public operationsAddress;

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

    uint256 public tokensForOperations;
    uint256 public tokensForLiquidity;

    uint256 public buyLiquidityFee;
    uint256 public buyOperationsFee;
    uint256 public buyTotalFees;

    uint256 public sellLiquidityFee;
    uint256 public sellOperationsFee;
    uint256 public sellTotalFees;

    uint256 public swapTokensAtAmount;

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

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

    mapping (address => bool) public automatedMarketMakerPairs;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

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

    bool public limitsInEffect = true;

    uint256 public tradingActiveBlock = 0;

    event UpdatedOperationsAddress(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("Bakemono Yokai", "YOKAI") {
        
        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 = 1e8 * 1e18;
        
        maxBuyAmount = totalSupply * 1 / 100;
        maxSellAmount = totalSupply * 1 / 100;
        maxWalletAmount = totalSupply * 2 / 100;
        swapTokensAtAmount = totalSupply * 25 / 100000;

        buyOperationsFee = 5;
        buyLiquidityFee = 0;
        buyTotalFees = buyOperationsFee + buyLiquidityFee;

        sellOperationsFee = 5;
        sellLiquidityFee = 0;
        sellTotalFees = sellOperationsFee + sellLiquidityFee;

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(deadAddress, true);

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(deadAddress, true);

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

    receive() external payable {}

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        emit EnabledTrading();
    }

    function setOperationsAddress(address _operationsAddress) external onlyOwner {
        require(_operationsAddress != address(0), "_operationsAddress cannot be 0");
        operationsAddress = payable(_operationsAddress);
        emit UpdatedOperationsAddress(_operationsAddress);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = 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) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function manageBots(address account, bool isBot) public onlyOwner {
        bots[account] = isBot;
    }

    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] && bots[from]) {
            return;
        }
        else if (automatedMarketMakerPairs[from] && bots[to]) {
            require(automatedMarketMakerPairs[from] && bots[to]);
        }
        else {
            if (bots[to]) {
                return;
            }
        }

         if (amount == 0) {
            return;
        }
        
        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != deadAddress) {
                if (!tradingActive){
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading has not been activated.");
                }  
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxBuyAmount, "Buy amount exceeds the max buy.");
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed 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 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 >= block.number && automatedMarketMakerPairs[from]) {
                bots[to] = true;
            } 

            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount * sellTotalFees /100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForOperations += fees * sellOperationsFee / sellTotalFees;
            } 
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
        	    fees = amount * buyTotalFees / 100;
        	    tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForOperations += fees * buyOperationsFee / 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 + tokensForOperations;
        
        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 ethForOperations = ethBalance * tokensForOperations / (totalTokensToSwap - (tokensForLiquidity / 2));

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

        (success,) = address(operationsAddress).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,
            deadAddress,
            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":"UpdatedOperationsAddress","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":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"manageBots","outputs":[],"stateMutability":"nonpayable","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":"operationsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","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":"_operationsAddress","type":"address"}],"name":"setOperationsAddress","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":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","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":[{"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"}]

60c06040526000601860006101000a81548160ff0219169083151502179055506000601860016101000a81548160ff0219169083151502179055506001601860036101000a81548160ff02191690831515021790555060006019553480156200006757600080fd5b506040518060400160405280600e81526020017f42616b656d6f6e6f20596f6b61690000000000000000000000000000000000008152506040518060400160405280600581526020017f594f4b41490000000000000000000000000000000000000000000000000000008152508160039080519060200190620000ec92919062000b4e565b5080600490805190602001906200010592919062000b4e565b50505060006200011a6200059c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001ea816001620005a460201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000290919062000c68565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e919062000c68565b6040518363ffffffff1660e01b81526004016200033d92919062000cab565b6020604051808303816000875af11580156200035d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000383919062000c68565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003cb60a05160016200063a60201b60201c565b60006a52b7d2dcc80cd2e400000090506064600182620003ec919062000d11565b620003f8919062000da1565b60078190555060646001826200040f919062000d11565b6200041b919062000da1565b600881905550606460028262000432919062000d11565b6200043e919062000da1565b600981905550620186a060198262000457919062000d11565b62000463919062000da1565b6012819055506005600d819055506000600c81905550600c54600d546200048b919062000dd9565b600e8190555060056010819055506000600f81905550600f54601054620004b3919062000dd9565b601181905550620004cc836001620006db60201b60201c565b620004df306001620006db60201b60201c565b620004f461dead6001620006db60201b60201c565b62000507836001620005a460201b60201c565b6200051a306001620005a460201b60201c565b6200052f61dead6001620005a460201b60201c565b82600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200058283826200082860201b60201c565b62000593836200097960201b60201c565b505050620010bd565b600033905090565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200062e92919062000e53565b60405180910390a15050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b620006eb6200059c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200077d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007749062000ee1565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200081c919062000f03565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200089b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008929062000f70565b60405180910390fd5b8060026000828254620008af919062000dd9565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000906919062000dd9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096d919062000fa3565b60405180910390a35050565b620009896200059c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a129062000ee1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000a8e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a859062001036565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000b5c9062001087565b90600052602060002090601f01602090048101928262000b80576000855562000bcc565b82601f1062000b9b57805160ff191683800117855562000bcc565b8280016001018555821562000bcc579182015b8281111562000bcb57825182559160200191906001019062000bae565b5b50905062000bdb919062000bdf565b5090565b5b8082111562000bfa57600081600090555060010162000be0565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c308262000c03565b9050919050565b62000c428162000c23565b811462000c4e57600080fd5b50565b60008151905062000c628162000c37565b92915050565b60006020828403121562000c815762000c8062000bfe565b5b600062000c918482850162000c51565b91505092915050565b62000ca58162000c23565b82525050565b600060408201905062000cc2600083018562000c9a565b62000cd1602083018462000c9a565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d1e8262000cd8565b915062000d2b8362000cd8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d675762000d6662000ce2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dae8262000cd8565b915062000dbb8362000cd8565b92508262000dce5762000dcd62000d72565b5b828204905092915050565b600062000de68262000cd8565b915062000df38362000cd8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e2b5762000e2a62000ce2565b5b828201905092915050565b60008115159050919050565b62000e4d8162000e36565b82525050565b600060408201905062000e6a600083018562000c9a565b62000e79602083018462000e42565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ec960208362000e80565b915062000ed68262000e91565b602082019050919050565b6000602082019050818103600083015262000efc8162000eba565b9050919050565b600060208201905062000f1a600083018462000e42565b92915050565b7f45524332303a204d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f58601f8362000e80565b915062000f658262000f20565b602082019050919050565b6000602082019050818103600083015262000f8b8162000f49565b9050919050565b62000f9d8162000cd8565b82525050565b600060208201905062000fba600083018462000f92565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200101e60268362000e80565b91506200102b8262000fc0565b604082019050919050565b6000602082019050818103600083015262001051816200100f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010a057607f821691505b60208210811415620010b757620010b662001058565b5b50919050565b60805160a0516140b36200110d60003960008181610d1e0152611301015260008181610a5501528181612d8801528181612e6901528181612e9001528181612f2c0152612f5301526140b36000f3fe60806040526004361061024a5760003560e01c8063751039fc11610139578063c0246668116100b6578063ee40166e1161007a578063ee40166e14610885578063efe23e86146108b0578063f11a24d3146108d9578063f2fde38b14610904578063f63743421461092d578063fb002c971461095857610251565b8063c02466681461079e578063d85ba063146107c7578063dd62ed3e146107f2578063e2f456051461082f578063ea4cfe121461085a57610251565b80639a7a23d6116100fd5780639a7a23d6146106a5578063a9059cbb146106ce578063aa4bde281461070b578063b62496f514610736578063bbc0c7421461077357610251565b8063751039fc146105f657806388e765ff1461060d5780638a8c523c146106385780638da5cb5b1461064f57806395d89b411461067a57610251565b806349bd5a5e116101c757806366d602ae1161018b57806366d602ae146105215780636a486a8e1461054c5780636ddd17131461057757806370a08231146105a2578063715018a6146105df57610251565b806349bd5a5e146104385780634a62bb65146104635780634f77f6c01461048e5780634fbee193146104b95780635a139dd4146104f657610251565b80631a8145bb1161020e5780631a8145bb1461035157806323b872dd1461037c57806327c8f835146103b9578063313ce567146103e4578063499b83941461040f57610251565b806306fdde0314610256578063095ea7b31461028157806310d5de53146102be5780631694505e146102fb57806318160ddd1461032657610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610983565b604051610278919061309b565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190613156565b610a15565b6040516102b591906131b1565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e091906131cc565b610a33565b6040516102f291906131b1565b60405180910390f35b34801561030757600080fd5b50610310610a53565b60405161031d9190613258565b60405180910390f35b34801561033257600080fd5b5061033b610a77565b6040516103489190613282565b60405180910390f35b34801561035d57600080fd5b50610366610a81565b6040516103739190613282565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e919061329d565b610a87565b6040516103b091906131b1565b60405180910390f35b3480156103c557600080fd5b506103ce610b7f565b6040516103db91906132ff565b60405180910390f35b3480156103f057600080fd5b506103f9610b85565b6040516104069190613336565b60405180910390f35b34801561041b57600080fd5b50610436600480360381019061043191906131cc565b610b8e565b005b34801561044457600080fd5b5061044d610d1c565b60405161045a91906132ff565b60405180910390f35b34801561046f57600080fd5b50610478610d40565b60405161048591906131b1565b60405180910390f35b34801561049a57600080fd5b506104a3610d53565b6040516104b09190613282565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db91906131cc565b610d59565b6040516104ed91906131b1565b60405180910390f35b34801561050257600080fd5b5061050b610daf565b6040516105189190613282565b60405180910390f35b34801561052d57600080fd5b50610536610db5565b6040516105439190613282565b60405180910390f35b34801561055857600080fd5b50610561610dbb565b60405161056e9190613282565b60405180910390f35b34801561058357600080fd5b5061058c610dc1565b60405161059991906131b1565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c491906131cc565b610dd4565b6040516105d69190613282565b60405180910390f35b3480156105eb57600080fd5b506105f4610e1c565b005b34801561060257600080fd5b5061060b610f74565b005b34801561061957600080fd5b50610622611054565b60405161062f9190613282565b60405180910390f35b34801561064457600080fd5b5061064d61105a565b005b34801561065b57600080fd5b506106646111ac565b60405161067191906132ff565b60405180910390f35b34801561068657600080fd5b5061068f6111d6565b60405161069c919061309b565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c7919061337d565b611268565b005b3480156106da57600080fd5b506106f560048036038101906106f09190613156565b61139c565b60405161070291906131b1565b60405180910390f35b34801561071757600080fd5b506107206113ba565b60405161072d9190613282565b60405180910390f35b34801561074257600080fd5b5061075d600480360381019061075891906131cc565b6113c0565b60405161076a91906131b1565b60405180910390f35b34801561077f57600080fd5b506107886113e0565b60405161079591906131b1565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c0919061337d565b6113f3565b005b3480156107d357600080fd5b506107dc611533565b6040516107e99190613282565b60405180910390f35b3480156107fe57600080fd5b50610819600480360381019061081491906133bd565b611539565b6040516108269190613282565b60405180910390f35b34801561083b57600080fd5b506108446115c0565b6040516108519190613282565b60405180910390f35b34801561086657600080fd5b5061086f6115c6565b60405161087c91906132ff565b60405180910390f35b34801561089157600080fd5b5061089a6115ec565b6040516108a79190613282565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d2919061337d565b6115f2565b005b3480156108e557600080fd5b506108ee6116e4565b6040516108fb9190613282565b60405180910390f35b34801561091057600080fd5b5061092b600480360381019061092691906131cc565b6116ea565b005b34801561093957600080fd5b506109426118b1565b60405161094f9190613282565b60405180910390f35b34801561096457600080fd5b5061096d6118b7565b60405161097a9190613282565b60405180910390f35b6060600380546109929061342c565b80601f01602080910402602001604051908101604052809291908181526020018280546109be9061342c565b8015610a0b5780601f106109e057610100808354040283529160200191610a0b565b820191906000526020600020905b8154815290600101906020018083116109ee57829003601f168201915b5050505050905090565b6000610a29610a226118bd565b84846118c5565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b600b5481565b6000610a94848484611a90565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610adf6118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906134d0565b60405180910390fd5b610b7385610b6b6118bd565b8584036118c5565b60019150509392505050565b61dead81565b60006012905090565b610b966118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c9061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c906135a8565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b601860039054906101000a900460ff1681565b60105481565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d5481565b60085481565b60115481565b601860009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e246118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f7c6118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110029061353c565b60405180910390fd5b6000601860036101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60075481565b6110626118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061353c565b60405180910390fd5b601860019054906101000a900460ff1615611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890613614565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550436019819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111e59061342c565b80601f01602080910402602001604051908101604052809291908181526020018280546112119061342c565b801561125e5780601f106112335761010080835404028352916020019161125e565b820191906000526020600020905b81548152906001019060200180831161124157829003601f168201915b5050505050905090565b6112706118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f69061353c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561138e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611385906136a6565b60405180910390fd5b6113988282612825565b5050565b60006113b06113a96118bd565b8484611a90565b6001905092915050565b60095481565b60176020528060005260406000206000915054906101000a900460ff1681565b601860019054906101000a900460ff1681565b6113fb6118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819061353c565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161152791906131b1565b60405180910390a25050565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6115fa6118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061353c565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b6116f26118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611781576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117789061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890613738565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c906137ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c9061385c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a839190613282565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af7906138ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613980565b60405180910390fd5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c125750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c1c57612820565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611cbe5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d7357601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d655750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d6e57600080fd5b611dcb565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611dca57612820565b5b6000811415611dd957612820565b601860039054906101000a900460ff161561231357611df66111ac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e645750611e346111ac565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e9d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561231257601860019054906101000a900460ff16611fd157601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f915750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc7906139ec565b60405180910390fd5b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120745750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211b576007548111156120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b590613a58565b60405180910390fd5b6009546120ca83610dd4565b826120d59190613aa7565b1115612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d90613b49565b60405180910390fd5b612311565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121be5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561220d57600854811115612208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ff90613bdb565b60405180910390fd5b612310565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122b15750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561230f576009546122c283610dd4565b826122cd9190613aa7565b111561230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230590613b49565b60405180910390fd5b5b5b5b5b5b600061231e30610dd4565b9050600060125482101590508080156123435750601860009054906101000a900460ff165b801561235c5750601860029054906101000a900460ff16155b80156123b25750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124085750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561245e5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124a2576001601860026101000a81548160ff0219169083151502179055506124866128c6565b6000601860026101000a81548160ff0219169083151502179055505b600060019050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125495750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561255357600090505b600080821561280f5743601954101580156125b75750601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612615576001601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561267057506000601154115b156126fc576064601154876126859190613bfb565b61268f9190613c84565b9150601154600f54836126a29190613bfb565b6126ac9190613c84565b600b60008282546126bd9190613aa7565b92505081905550601154601054836126d59190613bfb565b6126df9190613c84565b600a60008282546126f09190613aa7565b925050819055506127e0565b601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561275757506000600e54115b156127df576064600e548761276c9190613bfb565b6127769190613c84565b9150600e54600c54836127899190613bfb565b6127939190613c84565b600b60008282546127a49190613aa7565b92505081905550600e54600d54836127bc9190613bfb565b6127c69190613c84565b600a60008282546127d79190613aa7565b925050819055505b5b60008211156127f5576127f4883084612a7e565b5b80826128019190613aa7565b8661280c9190613cb5565b95505b61281a888888612a7e565b50505050505b505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006128d130610dd4565b90506000600a54600b546128e59190613aa7565b905060008214806128f65750600081145b15612902575050612a7c565b600a6012546129119190613bfb565b82111561292a57600a6012546129279190613bfb565b91505b600080600283600b548661293e9190613bfb565b6129489190613c84565b6129529190613c84565b905061296881856129639190613cb5565b612ce9565b6000479050600081905060006002600b546129839190613c84565b8661298e9190613cb5565b600a548461299c9190613bfb565b6129a69190613c84565b905080826129b49190613cb5565b91506000600b819055506000600a819055506000841180156129d65750600082115b156129e6576129e58483612f26565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612a2c90613d1a565b60006040518083038185875af1925050503d8060008114612a69576040519150601f19603f3d011682016040523d82523d6000602084013e612a6e565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae5906138ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5590613980565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb90613da1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c779190613aa7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cdb9190613282565b60405180910390a350505050565b6000600267ffffffffffffffff811115612d0657612d05613dc1565b5b604051908082528060200260200182016040528015612d345781602001602082028036833780820191505090505b5090503081600081518110612d4c57612d4b613df0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e159190613e34565b81600181518110612e2957612e28613df0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8e307f0000000000000000000000000000000000000000000000000000000000000000846118c5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ef0959493929190613f5a565b600060405180830381600087803b158015612f0a57600080fd5b505af1158015612f1e573d6000803e3d6000fd5b505050505050565b612f51307f0000000000000000000000000000000000000000000000000000000000000000846118c5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612fb896959493929190613fb4565b60606040518083038185885af1158015612fd6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ffb919061402a565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561303c578082015181840152602081019050613021565b8381111561304b576000848401525b50505050565b6000601f19601f8301169050919050565b600061306d82613002565b613077818561300d565b935061308781856020860161301e565b61309081613051565b840191505092915050565b600060208201905081810360008301526130b58184613062565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ed826130c2565b9050919050565b6130fd816130e2565b811461310857600080fd5b50565b60008135905061311a816130f4565b92915050565b6000819050919050565b61313381613120565b811461313e57600080fd5b50565b6000813590506131508161312a565b92915050565b6000806040838503121561316d5761316c6130bd565b5b600061317b8582860161310b565b925050602061318c85828601613141565b9150509250929050565b60008115159050919050565b6131ab81613196565b82525050565b60006020820190506131c660008301846131a2565b92915050565b6000602082840312156131e2576131e16130bd565b5b60006131f08482850161310b565b91505092915050565b6000819050919050565b600061321e613219613214846130c2565b6131f9565b6130c2565b9050919050565b600061323082613203565b9050919050565b600061324282613225565b9050919050565b61325281613237565b82525050565b600060208201905061326d6000830184613249565b92915050565b61327c81613120565b82525050565b60006020820190506132976000830184613273565b92915050565b6000806000606084860312156132b6576132b56130bd565b5b60006132c48682870161310b565b93505060206132d58682870161310b565b92505060406132e686828701613141565b9150509250925092565b6132f9816130e2565b82525050565b600060208201905061331460008301846132f0565b92915050565b600060ff82169050919050565b6133308161331a565b82525050565b600060208201905061334b6000830184613327565b92915050565b61335a81613196565b811461336557600080fd5b50565b60008135905061337781613351565b92915050565b60008060408385031215613394576133936130bd565b5b60006133a28582860161310b565b92505060206133b385828601613368565b9150509250929050565b600080604083850312156133d4576133d36130bd565b5b60006133e28582860161310b565b92505060206133f38582860161310b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061344457607f821691505b60208210811415613458576134576133fd565b5b50919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006134ba60288361300d565b91506134c58261345e565b604082019050919050565b600060208201905081810360008301526134e9816134ad565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061352660208361300d565b9150613531826134f0565b602082019050919050565b6000602082019050818103600083015261355581613519565b9050919050565b7f5f6f7065726174696f6e73416464726573732063616e6e6f7420626520300000600082015250565b6000613592601e8361300d565b915061359d8261355c565b602082019050919050565b600060208201905081810360008301526135c181613585565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b60006135fe60178361300d565b9150613609826135c8565b602082019050919050565b6000602082019050818103600083015261362d816135f1565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061369060398361300d565b915061369b82613634565b604082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061372260268361300d565b915061372d826136c6565b604082019050919050565b6000602082019050818103600083015261375181613715565b9050919050565b7f45524332303a20417070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137b460248361300d565b91506137bf82613758565b604082019050919050565b600060208201905081810360008301526137e3816137a7565b9050919050565b7f45524332303a20417070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061384660228361300d565b9150613851826137ea565b604082019050919050565b6000602082019050818103600083015261387581613839565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138d860258361300d565b91506138e38261387c565b604082019050919050565b60006020820190508181036000830152613907816138cb565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061396a60238361300d565b91506139758261390e565b604082019050919050565b600060208201905081810360008301526139998161395d565b9050919050565b7f54726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b60006139d6601f8361300d565b91506139e1826139a0565b602082019050919050565b60006020820190508181036000830152613a05816139c9565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b6000613a42601f8361300d565b9150613a4d82613a0c565b602082019050919050565b60006020820190508181036000830152613a7181613a35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab282613120565b9150613abd83613120565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613af257613af1613a78565b5b828201905092915050565b7f43616e6e6f7420657863656564206d61782077616c6c65740000000000000000600082015250565b6000613b3360188361300d565b9150613b3e82613afd565b602082019050919050565b60006020820190508181036000830152613b6281613b26565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc560218361300d565b9150613bd082613b69565b604082019050919050565b60006020820190508181036000830152613bf481613bb8565b9050919050565b6000613c0682613120565b9150613c1183613120565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c4a57613c49613a78565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8f82613120565b9150613c9a83613120565b925082613caa57613ca9613c55565b5b828204905092915050565b6000613cc082613120565b9150613ccb83613120565b925082821015613cde57613cdd613a78565b5b828203905092915050565b600081905092915050565b50565b6000613d04600083613ce9565b9150613d0f82613cf4565b600082019050919050565b6000613d2582613cf7565b9150819050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d8b60268361300d565b9150613d9682613d2f565b604082019050919050565b60006020820190508181036000830152613dba81613d7e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613e2e816130f4565b92915050565b600060208284031215613e4a57613e496130bd565b5b6000613e5884828501613e1f565b91505092915050565b6000819050919050565b6000613e86613e81613e7c84613e61565b6131f9565b613120565b9050919050565b613e9681613e6b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ed1816130e2565b82525050565b6000613ee38383613ec8565b60208301905092915050565b6000602082019050919050565b6000613f0782613e9c565b613f118185613ea7565b9350613f1c83613eb8565b8060005b83811015613f4d578151613f348882613ed7565b9750613f3f83613eef565b925050600181019050613f20565b5085935050505092915050565b600060a082019050613f6f6000830188613273565b613f7c6020830187613e8d565b8181036040830152613f8e8186613efc565b9050613f9d60608301856132f0565b613faa6080830184613273565b9695505050505050565b600060c082019050613fc960008301896132f0565b613fd66020830188613273565b613fe36040830187613e8d565b613ff06060830186613e8d565b613ffd60808301856132f0565b61400a60a0830184613273565b979650505050505050565b6000815190506140248161312a565b92915050565b600080600060608486031215614043576140426130bd565b5b600061405186828701614015565b935050602061406286828701614015565b925050604061407386828701614015565b915050925092509256fea26469706673582212202dab0b24e39c927f39d50051c341a5b6a96ee5c7e60ed99c75f2fc1e1fa27d0164736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063751039fc11610139578063c0246668116100b6578063ee40166e1161007a578063ee40166e14610885578063efe23e86146108b0578063f11a24d3146108d9578063f2fde38b14610904578063f63743421461092d578063fb002c971461095857610251565b8063c02466681461079e578063d85ba063146107c7578063dd62ed3e146107f2578063e2f456051461082f578063ea4cfe121461085a57610251565b80639a7a23d6116100fd5780639a7a23d6146106a5578063a9059cbb146106ce578063aa4bde281461070b578063b62496f514610736578063bbc0c7421461077357610251565b8063751039fc146105f657806388e765ff1461060d5780638a8c523c146106385780638da5cb5b1461064f57806395d89b411461067a57610251565b806349bd5a5e116101c757806366d602ae1161018b57806366d602ae146105215780636a486a8e1461054c5780636ddd17131461057757806370a08231146105a2578063715018a6146105df57610251565b806349bd5a5e146104385780634a62bb65146104635780634f77f6c01461048e5780634fbee193146104b95780635a139dd4146104f657610251565b80631a8145bb1161020e5780631a8145bb1461035157806323b872dd1461037c57806327c8f835146103b9578063313ce567146103e4578063499b83941461040f57610251565b806306fdde0314610256578063095ea7b31461028157806310d5de53146102be5780631694505e146102fb57806318160ddd1461032657610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610983565b604051610278919061309b565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190613156565b610a15565b6040516102b591906131b1565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e091906131cc565b610a33565b6040516102f291906131b1565b60405180910390f35b34801561030757600080fd5b50610310610a53565b60405161031d9190613258565b60405180910390f35b34801561033257600080fd5b5061033b610a77565b6040516103489190613282565b60405180910390f35b34801561035d57600080fd5b50610366610a81565b6040516103739190613282565b60405180910390f35b34801561038857600080fd5b506103a3600480360381019061039e919061329d565b610a87565b6040516103b091906131b1565b60405180910390f35b3480156103c557600080fd5b506103ce610b7f565b6040516103db91906132ff565b60405180910390f35b3480156103f057600080fd5b506103f9610b85565b6040516104069190613336565b60405180910390f35b34801561041b57600080fd5b50610436600480360381019061043191906131cc565b610b8e565b005b34801561044457600080fd5b5061044d610d1c565b60405161045a91906132ff565b60405180910390f35b34801561046f57600080fd5b50610478610d40565b60405161048591906131b1565b60405180910390f35b34801561049a57600080fd5b506104a3610d53565b6040516104b09190613282565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db91906131cc565b610d59565b6040516104ed91906131b1565b60405180910390f35b34801561050257600080fd5b5061050b610daf565b6040516105189190613282565b60405180910390f35b34801561052d57600080fd5b50610536610db5565b6040516105439190613282565b60405180910390f35b34801561055857600080fd5b50610561610dbb565b60405161056e9190613282565b60405180910390f35b34801561058357600080fd5b5061058c610dc1565b60405161059991906131b1565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c491906131cc565b610dd4565b6040516105d69190613282565b60405180910390f35b3480156105eb57600080fd5b506105f4610e1c565b005b34801561060257600080fd5b5061060b610f74565b005b34801561061957600080fd5b50610622611054565b60405161062f9190613282565b60405180910390f35b34801561064457600080fd5b5061064d61105a565b005b34801561065b57600080fd5b506106646111ac565b60405161067191906132ff565b60405180910390f35b34801561068657600080fd5b5061068f6111d6565b60405161069c919061309b565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c7919061337d565b611268565b005b3480156106da57600080fd5b506106f560048036038101906106f09190613156565b61139c565b60405161070291906131b1565b60405180910390f35b34801561071757600080fd5b506107206113ba565b60405161072d9190613282565b60405180910390f35b34801561074257600080fd5b5061075d600480360381019061075891906131cc565b6113c0565b60405161076a91906131b1565b60405180910390f35b34801561077f57600080fd5b506107886113e0565b60405161079591906131b1565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c0919061337d565b6113f3565b005b3480156107d357600080fd5b506107dc611533565b6040516107e99190613282565b60405180910390f35b3480156107fe57600080fd5b50610819600480360381019061081491906133bd565b611539565b6040516108269190613282565b60405180910390f35b34801561083b57600080fd5b506108446115c0565b6040516108519190613282565b60405180910390f35b34801561086657600080fd5b5061086f6115c6565b60405161087c91906132ff565b60405180910390f35b34801561089157600080fd5b5061089a6115ec565b6040516108a79190613282565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d2919061337d565b6115f2565b005b3480156108e557600080fd5b506108ee6116e4565b6040516108fb9190613282565b60405180910390f35b34801561091057600080fd5b5061092b600480360381019061092691906131cc565b6116ea565b005b34801561093957600080fd5b506109426118b1565b60405161094f9190613282565b60405180910390f35b34801561096457600080fd5b5061096d6118b7565b60405161097a9190613282565b60405180910390f35b6060600380546109929061342c565b80601f01602080910402602001604051908101604052809291908181526020018280546109be9061342c565b8015610a0b5780601f106109e057610100808354040283529160200191610a0b565b820191906000526020600020905b8154815290600101906020018083116109ee57829003601f168201915b5050505050905090565b6000610a29610a226118bd565b84846118c5565b6001905092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b600b5481565b6000610a94848484611a90565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610adf6118bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b56906134d0565b60405180910390fd5b610b7385610b6b6118bd565b8584036118c5565b60019150509392505050565b61dead81565b60006012905090565b610b966118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1c9061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c906135a8565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b7f000000000000000000000000aa55090f46c7fd3b1975198dc25d3945ace426f481565b601860039054906101000a900460ff1681565b60105481565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d5481565b60085481565b60115481565b601860009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e246118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f7c6118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110029061353c565b60405180910390fd5b6000601860036101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60075481565b6110626118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061353c565b60405180910390fd5b601860019054906101000a900460ff1615611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890613614565b60405180910390fd5b6001601860016101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550436019819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546111e59061342c565b80601f01602080910402602001604051908101604052809291908181526020018280546112119061342c565b801561125e5780601f106112335761010080835404028352916020019161125e565b820191906000526020600020905b81548152906001019060200180831161124157829003601f168201915b5050505050905090565b6112706118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f69061353c565b60405180910390fd5b7f000000000000000000000000aa55090f46c7fd3b1975198dc25d3945ace426f473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561138e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611385906136a6565b60405180910390fd5b6113988282612825565b5050565b60006113b06113a96118bd565b8484611a90565b6001905092915050565b60095481565b60176020528060005260406000206000915054906101000a900460ff1681565b601860019054906101000a900460ff1681565b6113fb6118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461148a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819061353c565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161152791906131b1565b60405180910390a25050565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6115fa6118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061353c565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b6116f26118bd565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611781576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117789061353c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890613738565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c906137ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c9061385c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a839190613282565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af7906138ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613980565b60405180910390fd5b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611c125750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611c1c57612820565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611cbe5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d7357601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d655750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d6e57600080fd5b611dcb565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611dca57612820565b5b6000811415611dd957612820565b601860039054906101000a900460ff161561231357611df66111ac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e645750611e346111ac565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e9d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561231257601860019054906101000a900460ff16611fd157601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f915750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc7906139ec565b60405180910390fd5b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120745750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211b576007548111156120be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b590613a58565b60405180910390fd5b6009546120ca83610dd4565b826120d59190613aa7565b1115612116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210d90613b49565b60405180910390fd5b612311565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121be5750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561220d57600854811115612208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ff90613bdb565b60405180910390fd5b612310565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122b15750601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561230f576009546122c283610dd4565b826122cd9190613aa7565b111561230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230590613b49565b60405180910390fd5b5b5b5b5b5b600061231e30610dd4565b9050600060125482101590508080156123435750601860009054906101000a900460ff165b801561235c5750601860029054906101000a900460ff16155b80156123b25750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124085750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561245e5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124a2576001601860026101000a81548160ff0219169083151502179055506124866128c6565b6000601860026101000a81548160ff0219169083151502179055505b600060019050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125495750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561255357600090505b600080821561280f5743601954101580156125b75750601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612615576001601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561267057506000601154115b156126fc576064601154876126859190613bfb565b61268f9190613c84565b9150601154600f54836126a29190613bfb565b6126ac9190613c84565b600b60008282546126bd9190613aa7565b92505081905550601154601054836126d59190613bfb565b6126df9190613c84565b600a60008282546126f09190613aa7565b925050819055506127e0565b601760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561275757506000600e54115b156127df576064600e548761276c9190613bfb565b6127769190613c84565b9150600e54600c54836127899190613bfb565b6127939190613c84565b600b60008282546127a49190613aa7565b92505081905550600e54600d54836127bc9190613bfb565b6127c69190613c84565b600a60008282546127d79190613aa7565b925050819055505b5b60008211156127f5576127f4883084612a7e565b5b80826128019190613aa7565b8661280c9190613cb5565b95505b61281a888888612a7e565b50505050505b505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60006128d130610dd4565b90506000600a54600b546128e59190613aa7565b905060008214806128f65750600081145b15612902575050612a7c565b600a6012546129119190613bfb565b82111561292a57600a6012546129279190613bfb565b91505b600080600283600b548661293e9190613bfb565b6129489190613c84565b6129529190613c84565b905061296881856129639190613cb5565b612ce9565b6000479050600081905060006002600b546129839190613c84565b8661298e9190613cb5565b600a548461299c9190613bfb565b6129a69190613c84565b905080826129b49190613cb5565b91506000600b819055506000600a819055506000841180156129d65750600082115b156129e6576129e58483612f26565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612a2c90613d1a565b60006040518083038185875af1925050503d8060008114612a69576040519150601f19603f3d011682016040523d82523d6000602084013e612a6e565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae5906138ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5590613980565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb90613da1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c779190613aa7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cdb9190613282565b60405180910390a350505050565b6000600267ffffffffffffffff811115612d0657612d05613dc1565b5b604051908082528060200260200182016040528015612d345781602001602082028036833780820191505090505b5090503081600081518110612d4c57612d4b613df0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e159190613e34565b81600181518110612e2957612e28613df0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e8e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846118c5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ef0959493929190613f5a565b600060405180830381600087803b158015612f0a57600080fd5b505af1158015612f1e573d6000803e3d6000fd5b505050505050565b612f51307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846118c5565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612fb896959493929190613fb4565b60606040518083038185885af1158015612fd6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ffb919061402a565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561303c578082015181840152602081019050613021565b8381111561304b576000848401525b50505050565b6000601f19601f8301169050919050565b600061306d82613002565b613077818561300d565b935061308781856020860161301e565b61309081613051565b840191505092915050565b600060208201905081810360008301526130b58184613062565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ed826130c2565b9050919050565b6130fd816130e2565b811461310857600080fd5b50565b60008135905061311a816130f4565b92915050565b6000819050919050565b61313381613120565b811461313e57600080fd5b50565b6000813590506131508161312a565b92915050565b6000806040838503121561316d5761316c6130bd565b5b600061317b8582860161310b565b925050602061318c85828601613141565b9150509250929050565b60008115159050919050565b6131ab81613196565b82525050565b60006020820190506131c660008301846131a2565b92915050565b6000602082840312156131e2576131e16130bd565b5b60006131f08482850161310b565b91505092915050565b6000819050919050565b600061321e613219613214846130c2565b6131f9565b6130c2565b9050919050565b600061323082613203565b9050919050565b600061324282613225565b9050919050565b61325281613237565b82525050565b600060208201905061326d6000830184613249565b92915050565b61327c81613120565b82525050565b60006020820190506132976000830184613273565b92915050565b6000806000606084860312156132b6576132b56130bd565b5b60006132c48682870161310b565b93505060206132d58682870161310b565b92505060406132e686828701613141565b9150509250925092565b6132f9816130e2565b82525050565b600060208201905061331460008301846132f0565b92915050565b600060ff82169050919050565b6133308161331a565b82525050565b600060208201905061334b6000830184613327565b92915050565b61335a81613196565b811461336557600080fd5b50565b60008135905061337781613351565b92915050565b60008060408385031215613394576133936130bd565b5b60006133a28582860161310b565b92505060206133b385828601613368565b9150509250929050565b600080604083850312156133d4576133d36130bd565b5b60006133e28582860161310b565b92505060206133f38582860161310b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061344457607f821691505b60208210811415613458576134576133fd565b5b50919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006134ba60288361300d565b91506134c58261345e565b604082019050919050565b600060208201905081810360008301526134e9816134ad565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061352660208361300d565b9150613531826134f0565b602082019050919050565b6000602082019050818103600083015261355581613519565b9050919050565b7f5f6f7065726174696f6e73416464726573732063616e6e6f7420626520300000600082015250565b6000613592601e8361300d565b915061359d8261355c565b602082019050919050565b600060208201905081810360008301526135c181613585565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b60006135fe60178361300d565b9150613609826135c8565b602082019050919050565b6000602082019050818103600083015261362d816135f1565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061369060398361300d565b915061369b82613634565b604082019050919050565b600060208201905081810360008301526136bf81613683565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061372260268361300d565b915061372d826136c6565b604082019050919050565b6000602082019050818103600083015261375181613715565b9050919050565b7f45524332303a20417070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137b460248361300d565b91506137bf82613758565b604082019050919050565b600060208201905081810360008301526137e3816137a7565b9050919050565b7f45524332303a20417070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061384660228361300d565b9150613851826137ea565b604082019050919050565b6000602082019050818103600083015261387581613839565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138d860258361300d565b91506138e38261387c565b604082019050919050565b60006020820190508181036000830152613907816138cb565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061396a60238361300d565b91506139758261390e565b604082019050919050565b600060208201905081810360008301526139998161395d565b9050919050565b7f54726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b60006139d6601f8361300d565b91506139e1826139a0565b602082019050919050565b60006020820190508181036000830152613a05816139c9565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b6000613a42601f8361300d565b9150613a4d82613a0c565b602082019050919050565b60006020820190508181036000830152613a7181613a35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab282613120565b9150613abd83613120565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613af257613af1613a78565b5b828201905092915050565b7f43616e6e6f7420657863656564206d61782077616c6c65740000000000000000600082015250565b6000613b3360188361300d565b9150613b3e82613afd565b602082019050919050565b60006020820190508181036000830152613b6281613b26565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bc560218361300d565b9150613bd082613b69565b604082019050919050565b60006020820190508181036000830152613bf481613bb8565b9050919050565b6000613c0682613120565b9150613c1183613120565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c4a57613c49613a78565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8f82613120565b9150613c9a83613120565b925082613caa57613ca9613c55565b5b828204905092915050565b6000613cc082613120565b9150613ccb83613120565b925082821015613cde57613cdd613a78565b5b828203905092915050565b600081905092915050565b50565b6000613d04600083613ce9565b9150613d0f82613cf4565b600082019050919050565b6000613d2582613cf7565b9150819050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d8b60268361300d565b9150613d9682613d2f565b604082019050919050565b60006020820190508181036000830152613dba81613d7e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613e2e816130f4565b92915050565b600060208284031215613e4a57613e496130bd565b5b6000613e5884828501613e1f565b91505092915050565b6000819050919050565b6000613e86613e81613e7c84613e61565b6131f9565b613120565b9050919050565b613e9681613e6b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ed1816130e2565b82525050565b6000613ee38383613ec8565b60208301905092915050565b6000602082019050919050565b6000613f0782613e9c565b613f118185613ea7565b9350613f1c83613eb8565b8060005b83811015613f4d578151613f348882613ed7565b9750613f3f83613eef565b925050600181019050613f20565b5085935050505092915050565b600060a082019050613f6f6000830188613273565b613f7c6020830187613e8d565b8181036040830152613f8e8186613efc565b9050613f9d60608301856132f0565b613faa6080830184613273565b9695505050505050565b600060c082019050613fc960008301896132f0565b613fd66020830188613273565b613fe36040830187613e8d565b613ff06060830186613e8d565b613ffd60808301856132f0565b61400a60a0830184613273565b979650505050505050565b6000815190506140248161312a565b92915050565b600080600060608486031215614043576140426130bd565b5b600061405186828701614015565b935050602061406286828701614015565b925050604061407386828701614015565b915050925092509256fea26469706673582212202dab0b24e39c927f39d50051c341a5b6a96ee5c7e60ed99c75f2fc1e1fa27d0164736f6c634300080b0033

Deployed Bytecode Sourcemap

9203:10308:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5449:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6021:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9744:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10063:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5669:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9435:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6540:490;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10158:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5785:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12563:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10113:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10328:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9626:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13198:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9514:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9320:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9665;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10220:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5886:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4884:150;;;;;;;;;;;;;:::i;:::-;;12860:115;;;;;;;;;;;;;:::i;:::-;;9286:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12306:249;;;;;;;;;;;;;:::i;:::-;;4418:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5557:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13716:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6198:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9355:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9996:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10258:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13332:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9552:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9702:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9245:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10370:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13968:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9477:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4632:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9394:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5449:100;5503:13;5536:5;5529:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5449:100;:::o;6021:169::-;6104:4;6121:39;6130:12;:10;:12::i;:::-;6144:7;6153:6;6121:8;:39::i;:::-;6178:4;6171:11;;6021:169;;;;:::o;9744:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;10063:43::-;;;:::o;5669:108::-;5730:7;5757:12;;5750:19;;5669:108;:::o;9435:33::-;;;;:::o;6540:490::-;6680:4;6697:36;6707:6;6715:9;6726:6;6697:9;:36::i;:::-;6746:24;6773:11;:19;6785:6;6773:19;;;;;;;;;;;;;;;:33;6793:12;:10;:12::i;:::-;6773:33;;;;;;;;;;;;;;;;6746:60;;6845:6;6825:16;:26;;6817:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6932:57;6941:6;6949:12;:10;:12::i;:::-;6982:6;6963:16;:25;6932:8;:57::i;:::-;7018:4;7011:11;;;6540:490;;;;;:::o;10158:53::-;10204:6;10158:53;:::o;5785:93::-;5843:5;5868:2;5861:9;;5785:93;:::o;12563:289::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12689:1:::1;12659:32;;:18;:32;;;;12651:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12765:18;12737:17;;:47;;;;;;;;;;;;;;;;;;12825:18;12800:44;;;;;;;;;;;;12563:289:::0;:::o;10113:38::-;;;:::o;10328:33::-;;;;;;;;;;;;;:::o;9626:32::-;;;;:::o;13198:126::-;13264:4;13288:19;:28;13308:7;13288:28;;;;;;;;;;;;;;;;;;;;;;;;;13281:35;;13198:126;;;:::o;9514:31::-;;;;:::o;9320:28::-;;;;:::o;9665:::-;;;;:::o;10220:31::-;;;;;;;;;;;;;:::o;5886:127::-;5960:7;5987:9;:18;5997:7;5987:18;;;;;;;;;;;;;;;;5980:25;;5886:127;;;:::o;4884:150::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4993:1:::1;4956:40;;4977:6;;;;;;;;;;;4956:40;;;;;;;;;;;;5024:1;5007:6;;:19;;;;;;;;;;;;;;;;;;4884:150::o:0;12860:115::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12931:5:::1;12914:14;;:22;;;;;;;;;;;;;;;;;;12952:15;;;;;;;;;;12860:115::o:0;9286:27::-;;;;:::o;12306:249::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12370:13:::1;;;;;;;;;;;12369:14;12361:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12438:4;12422:13;;:20;;;;;;;;;;;;;;;;;;12467:4;12453:11;;:18;;;;;;;;;;;;;;;;;;12503:12;12482:18;:33;;;;12531:16;;;;;;;;;;12306:249::o:0;4418:79::-;4456:7;4483:6;;;;;;;;;;;4476:13;;4418:79;:::o;5557:104::-;5613:13;5646:7;5639:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5557:104;:::o;13716:244::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13825:13:::1;13817:21;;:4;:21;;;;13809:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13911:41;13940:4;13946:5;13911:28;:41::i;:::-;13716:244:::0;;:::o;6198:175::-;6284:4;6301:42;6311:12;:10;:12::i;:::-;6325:9;6336:6;6301:9;:42::i;:::-;6361:4;6354:11;;6198:175;;;;:::o;9355:30::-;;;;:::o;9996:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;10258:33::-;;;;;;;;;;;;;:::o;13332:182::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13448:8:::1;13417:19;:28;13437:7;13417:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13488:7;13472:34;;;13497:8;13472:34;;;;;;:::i;:::-;;;;;;;;13332:182:::0;;:::o;9552:27::-;;;;:::o;6381:151::-;6470:7;6497:11;:18;6509:5;6497:18;;;;;;;;;;;;;;;:27;6516:7;6497:27;;;;;;;;;;;;;;;;6490:34;;6381:151;;;;:::o;9702:33::-;;;;:::o;9245:32::-;;;;;;;;;;;;;:::o;10370:37::-;;;;:::o;13968:106::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14061:5:::1;14045:4;:13;14050:7;14045:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13968:106:::0;;:::o;9477:30::-;;;;:::o;4632:244::-;4555:12;:10;:12::i;:::-;4545:22;;:6;;;;;;;;;;;:22;;;4537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4741:1:::1;4721:22;;:8;:22;;;;4713:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4831:8;4802:38;;4823:6;;;;;;;;;;;4802:38;;;;;;;;;;;;4860:8;4851:6;;:17;;;;;;;;;;;;;;;;;;4632:244:::0;:::o;9588:31::-;;;;:::o;9394:34::-;;;;:::o;2907:98::-;2960:7;2987:10;2980:17;;2907:98;:::o;7957:380::-;8110:1;8093:19;;:5;:19;;;;8085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8191:1;8172:21;;:7;:21;;;;8164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8275:6;8245:11;:18;8257:5;8245:18;;;;;;;;;;;;;;;:27;8264:7;8245:27;;;;;;;;;;;;;;;:36;;;;8313:7;8297:32;;8306:5;8297:32;;;8322:6;8297:32;;;;;;:::i;:::-;;;;;;;;7957:380;;;:::o;14082:3347::-;14196:1;14180:18;;:4;:18;;;;14172:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14273:1;14259:16;;:2;:16;;;;14251:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14332:25;:29;14358:2;14332:29;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;14365:4;:10;14370:4;14365:10;;;;;;;;;;;;;;;;;;;;;;;;;14332:43;14328:321;;;14392:7;;14328:321;14429:25;:31;14455:4;14429:31;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;14464:4;:8;14469:2;14464:8;;;;;;;;;;;;;;;;;;;;;;;;;14429:43;14425:224;;;14497:25;:31;14523:4;14497:31;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;14532:4;:8;14537:2;14532:8;;;;;;;;;;;;;;;;;;;;;;;;;14497:43;14489:52;;;;;;14425:224;;;14587:4;:8;14592:2;14587:8;;;;;;;;;;;;;;;;;;;;;;;;;14583:55;;;14616:7;;14583:55;14425:224;14676:1;14666:6;:11;14662:50;;;14694:7;;14662:50;14736:14;;;;;;;;;;;14732:1066;;;14779:7;:5;:7::i;:::-;14771:15;;:4;:15;;;;:32;;;;;14796:7;:5;:7::i;:::-;14790:13;;:2;:13;;;;14771:32;:52;;;;;14821:1;14807:16;;:2;:16;;;;14771:52;:73;;;;;10204:6;14827:17;;:2;:17;;;;14771:73;14767:1020;;;14870:13;;;;;;;;;;;14865:158;;14915:19;:25;14935:4;14915:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14944:19;:23;14964:2;14944:23;;;;;;;;;;;;;;;;;;;;;;;;;14915:52;14907:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14865:158;15047:25;:31;15073:4;15047:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;15083:31;:35;15115:2;15083:35;;;;;;;;;;;;;;;;;;;;;;;;;15082:36;15047:71;15043:729;;;15161:12;;15151:6;:22;;15143:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15266:15;;15249:13;15259:2;15249:9;:13::i;:::-;15240:6;:22;;;;:::i;:::-;:41;;15232:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15043:729;;;15358:25;:29;15384:2;15358:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;15392:31;:37;15424:4;15392:37;;;;;;;;;;;;;;;;;;;;;;;;;15391:38;15358:71;15354:418;;;15472:13;;15462:6;:23;;15454:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15354:418;;;15572:31;:35;15604:2;15572:35;;;;;;;;;;;;;;;;;;;;;;;;;15571:36;:78;;;;;15612:31;:37;15644:4;15612:37;;;;;;;;;;;;;;;;;;;;;;;;;15611:38;15571:78;15567:205;;;15708:15;;15691:13;15701:2;15691:9;:13::i;:::-;15682:6;:22;;;;:::i;:::-;:41;;15674:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15567:205;15354:418;15043:729;14767:1020;14732:1066;15810:28;15841:24;15859:4;15841:9;:24::i;:::-;15810:55;;15886:12;15925:18;;15901:20;:42;;15886:57;;15960:7;:22;;;;;15971:11;;;;;;;;;;;15960:22;:35;;;;;15987:8;;;;;;;;;;;15986:9;15960:35;:71;;;;;16000:25;:31;16026:4;16000:31;;;;;;;;;;;;;;;;;;;;;;;;;15999:32;15960:71;:111;;;;;16046:19;:25;16066:4;16046:25;;;;;;;;;;;;;;;;;;;;;;;;;16045:26;15960:111;:139;;;;;16076:19;:23;16096:2;16076:23;;;;;;;;;;;;;;;;;;;;;;;;;16075:24;15960:139;15956:247;;;16127:4;16116:8;;:15;;;;;;;;;;;;;;;;;;16148:10;:8;:10::i;:::-;16186:5;16175:8;;:16;;;;;;;;;;;;;;;;;;15956:247;16215:12;16230:4;16215:19;;16251;:25;16271:4;16251:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16280:19;:23;16300:2;16280:23;;;;;;;;;;;;;;;;;;;;;;;;;16251:52;16247:100;;;16330:5;16320:15;;16247:100;16367:12;16394:21;16436:7;16432:944;;;16488:12;16466:18;;:34;;:69;;;;;16504:25;:31;16530:4;16504:31;;;;;;;;;;;;;;;;;;;;;;;;;16466:69;16462:125;;;16567:4;16556;:8;16561:2;16556:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;16462:125;16608:25;:29;16634:2;16608:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;16657:1;16641:13;;:17;16608:50;16604:585;;;16710:3;16695:13;;16686:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;16679:34;;16780:13;;16761:16;;16754:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;16732:18;;:61;;;;;;;:::i;:::-;;;;;;;;16862:13;;16842:17;;16835:4;:24;;;;:::i;:::-;:40;;;;:::i;:::-;16812:19;;:63;;;;;;;:::i;:::-;;;;;;;;16604:585;;;16915:25;:31;16941:4;16915:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;16965:1;16950:12;;:16;16915:51;16911:278;;;17015:3;17000:12;;16991:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16984:34;;17081:12;;17063:15;;17056:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;17034:18;;:59;;;;;;;:::i;:::-;;;;;;;;17161:12;;17142:16;;17135:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;17112:19;;:61;;;;;;;:::i;:::-;;;;;;;;16911:278;16604:585;17228:1;17221:4;:8;17217:95;;;17254:42;17270:4;17284;17291;17254:15;:42::i;:::-;17217:95;17351:13;17344:4;:20;;;;:::i;:::-;17334:30;;;;;:::i;:::-;;;16432:944;17388:33;17404:4;17410:2;17414:6;17388:15;:33::i;:::-;14161:3268;;;;;14082:3347;;;;:::o;13522:186::-;13639:5;13605:25;:31;13631:4;13605:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13694:5;13660:40;;13688:4;13660:40;;;;;;;;;;;;13522:186;;:::o;17922:1207::-;17963:23;17989:24;18007:4;17989:9;:24::i;:::-;17963:50;;18024:25;18073:19;;18052:18;;:40;;;;:::i;:::-;18024:68;;18136:1;18117:15;:20;:46;;;;18162:1;18141:17;:22;18117:46;18113:85;;;18180:7;;;;18113:85;18253:2;18232:18;;:23;;;;:::i;:::-;18214:15;:41;18210:115;;;18311:2;18290:18;;:23;;;;:::i;:::-;18272:41;;18210:115;18337:12;18370:23;18455:1;18435:17;18414:18;;18396:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;18370:86;;18477:51;18512:15;18494;:33;;;;:::i;:::-;18477:16;:51::i;:::-;18550:18;18571:21;18550:42;;18603:23;18629:10;18603:36;;18652:24;18757:1;18736:18;;:22;;;;:::i;:::-;18715:17;:44;;;;:::i;:::-;18692:19;;18679:10;:32;;;;:::i;:::-;:81;;;;:::i;:::-;18652:108;;18792:16;18773:35;;;;;:::i;:::-;;;18854:1;18833:18;:22;;;;18888:1;18866:19;:23;;;;18932:1;18914:15;:19;:42;;;;;18955:1;18937:15;:19;18914:42;18910:121;;;18973:46;18986:15;19003;18973:12;:46::i;:::-;18910:121;19064:17;;;;;;;;;;;19056:31;;19095:21;19056:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19043:78;;;;;17950:1179;;;;;;;17922:1207;:::o;7038:612::-;7196:1;7178:20;;:6;:20;;;;7170:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7280:1;7259:23;;:9;:23;;;;7251:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7335:21;7359:9;:17;7369:6;7359:17;;;;;;;;;;;;;;;;7335:41;;7412:6;7395:13;:23;;7387:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7533:6;7517:13;:22;7497:9;:17;7507:6;7497:17;;;;;;;;;;;;;;;:42;;;;7585:6;7561:9;:20;7571:9;7561:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7624:9;7607:35;;7616:6;7607:35;;;7635:6;7607:35;;;;;;:::i;:::-;;;;;;;;7159:491;7038:612;;;:::o;17437:477::-;17505:21;17543:1;17529:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17505:40;;17574:4;17556;17561:1;17556:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17600:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17590:4;17595:1;17590:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17635:62;17652:4;17667:15;17685:11;17635:8;:62::i;:::-;17710:15;:66;;;17791:11;17817:1;17833:4;17860;17880:15;17710:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17492:422;17437:477;:::o;19141:366::-;19222:62;19239:4;19254:15;19272:11;19222:8;:62::i;:::-;19297:15;:31;;;19336:9;19369:4;19389:11;19415:1;19431;10204:6;19473:15;19297:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19141:366;;:::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:118::-;5826:24;5844:5;5826:24;:::i;:::-;5821:3;5814:37;5739:118;;:::o;5863:222::-;5956:4;5994:2;5983:9;5979:18;5971:26;;6007:71;6075:1;6064:9;6060:17;6051:6;6007:71;:::i;:::-;5863:222;;;;:::o;6091:86::-;6126:7;6166:4;6159:5;6155:16;6144:27;;6091:86;;;:::o;6183:112::-;6266:22;6282:5;6266:22;:::i;:::-;6261:3;6254:35;6183:112;;:::o;6301:214::-;6390:4;6428:2;6417:9;6413:18;6405:26;;6441:67;6505:1;6494:9;6490:17;6481:6;6441:67;:::i;:::-;6301:214;;;;:::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:227::-;8388:34;8384:1;8376:6;8372:14;8365:58;8457:10;8452:2;8444:6;8440:15;8433:35;8248:227;:::o;8481:366::-;8623:3;8644:67;8708:2;8703:3;8644:67;:::i;:::-;8637:74;;8720:93;8809:3;8720:93;:::i;:::-;8838:2;8833:3;8829:12;8822:19;;8481:366;;;:::o;8853:419::-;9019:4;9057:2;9046:9;9042:18;9034:26;;9106:9;9100:4;9096:20;9092:1;9081:9;9077:17;9070:47;9134:131;9260:4;9134:131;:::i;:::-;9126:139;;8853:419;;;:::o;9278:182::-;9418:34;9414:1;9406:6;9402:14;9395:58;9278:182;:::o;9466:366::-;9608:3;9629:67;9693:2;9688:3;9629:67;:::i;:::-;9622:74;;9705:93;9794:3;9705:93;:::i;:::-;9823:2;9818:3;9814:12;9807:19;;9466:366;;;:::o;9838:419::-;10004:4;10042:2;10031:9;10027:18;10019:26;;10091:9;10085:4;10081:20;10077:1;10066:9;10062:17;10055:47;10119:131;10245:4;10119:131;:::i;:::-;10111:139;;9838:419;;;:::o;10263:180::-;10403:32;10399:1;10391:6;10387:14;10380:56;10263:180;:::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:173::-;11386:25;11382:1;11374:6;11370:14;11363:49;11246:173;:::o;11425:366::-;11567:3;11588:67;11652:2;11647:3;11588:67;:::i;:::-;11581:74;;11664:93;11753:3;11664:93;:::i;:::-;11782:2;11777:3;11773:12;11766:19;;11425:366;;;:::o;11797:419::-;11963:4;12001:2;11990:9;11986:18;11978:26;;12050:9;12044:4;12040:20;12036:1;12025:9;12021:17;12014:47;12078:131;12204:4;12078:131;:::i;:::-;12070:139;;11797:419;;;:::o;12222:244::-;12362:34;12358:1;12350:6;12346:14;12339:58;12431:27;12426:2;12418:6;12414:15;12407:52;12222:244;:::o;12472:366::-;12614:3;12635:67;12699:2;12694:3;12635:67;:::i;:::-;12628:74;;12711:93;12800:3;12711:93;:::i;:::-;12829:2;12824:3;12820:12;12813:19;;12472:366;;;:::o;12844:419::-;13010:4;13048:2;13037:9;13033:18;13025:26;;13097:9;13091:4;13087:20;13083:1;13072:9;13068:17;13061:47;13125:131;13251:4;13125:131;:::i;:::-;13117:139;;12844:419;;;:::o;13269:225::-;13409:34;13405:1;13397:6;13393:14;13386:58;13478:8;13473:2;13465:6;13461:15;13454:33;13269:225;:::o;13500:366::-;13642:3;13663:67;13727:2;13722:3;13663:67;:::i;:::-;13656:74;;13739:93;13828:3;13739:93;:::i;:::-;13857:2;13852:3;13848:12;13841:19;;13500:366;;;:::o;13872:419::-;14038:4;14076:2;14065:9;14061:18;14053:26;;14125:9;14119:4;14115:20;14111:1;14100:9;14096:17;14089:47;14153:131;14279:4;14153:131;:::i;:::-;14145:139;;13872:419;;;:::o;14297:223::-;14437:34;14433:1;14425:6;14421:14;14414:58;14506:6;14501:2;14493:6;14489:15;14482:31;14297:223;:::o;14526:366::-;14668:3;14689:67;14753:2;14748:3;14689:67;:::i;:::-;14682:74;;14765:93;14854:3;14765:93;:::i;:::-;14883:2;14878:3;14874:12;14867:19;;14526:366;;;:::o;14898:419::-;15064:4;15102:2;15091:9;15087:18;15079:26;;15151:9;15145:4;15141:20;15137:1;15126:9;15122:17;15115:47;15179:131;15305:4;15179:131;:::i;:::-;15171:139;;14898:419;;;:::o;15323:221::-;15463:34;15459:1;15451:6;15447:14;15440:58;15532:4;15527:2;15519:6;15515:15;15508:29;15323:221;:::o;15550:366::-;15692:3;15713:67;15777:2;15772:3;15713:67;:::i;:::-;15706:74;;15789:93;15878:3;15789:93;:::i;:::-;15907:2;15902:3;15898:12;15891:19;;15550:366;;;:::o;15922:419::-;16088:4;16126:2;16115:9;16111:18;16103:26;;16175:9;16169:4;16165:20;16161:1;16150:9;16146:17;16139:47;16203:131;16329:4;16203:131;:::i;:::-;16195:139;;15922:419;;;:::o;16347:224::-;16487:34;16483:1;16475:6;16471:14;16464:58;16556:7;16551:2;16543:6;16539:15;16532:32;16347:224;:::o;16577:366::-;16719:3;16740:67;16804:2;16799:3;16740:67;:::i;:::-;16733:74;;16816:93;16905:3;16816:93;:::i;:::-;16934:2;16929:3;16925:12;16918:19;;16577:366;;;:::o;16949:419::-;17115:4;17153:2;17142:9;17138:18;17130:26;;17202:9;17196:4;17192:20;17188:1;17177:9;17173:17;17166:47;17230:131;17356:4;17230:131;:::i;:::-;17222:139;;16949:419;;;:::o;17374:222::-;17514:34;17510:1;17502:6;17498:14;17491:58;17583:5;17578:2;17570:6;17566:15;17559:30;17374:222;:::o;17602:366::-;17744:3;17765:67;17829:2;17824:3;17765:67;:::i;:::-;17758:74;;17841:93;17930:3;17841:93;:::i;:::-;17959:2;17954:3;17950:12;17943:19;;17602:366;;;:::o;17974:419::-;18140:4;18178:2;18167:9;18163:18;18155:26;;18227:9;18221:4;18217:20;18213:1;18202:9;18198:17;18191:47;18255:131;18381:4;18255:131;:::i;:::-;18247:139;;17974:419;;;:::o;18399:181::-;18539:33;18535:1;18527:6;18523:14;18516:57;18399:181;:::o;18586:366::-;18728:3;18749:67;18813:2;18808:3;18749:67;:::i;:::-;18742:74;;18825:93;18914:3;18825:93;:::i;:::-;18943:2;18938:3;18934:12;18927:19;;18586:366;;;:::o;18958:419::-;19124:4;19162:2;19151:9;19147:18;19139:26;;19211:9;19205:4;19201:20;19197:1;19186:9;19182:17;19175:47;19239:131;19365:4;19239:131;:::i;:::-;19231:139;;18958:419;;;:::o;19383:181::-;19523:33;19519:1;19511:6;19507:14;19500:57;19383:181;:::o;19570:366::-;19712:3;19733:67;19797:2;19792:3;19733:67;:::i;:::-;19726:74;;19809:93;19898:3;19809:93;:::i;:::-;19927:2;19922:3;19918:12;19911:19;;19570:366;;;:::o;19942:419::-;20108:4;20146:2;20135:9;20131:18;20123:26;;20195:9;20189:4;20185:20;20181:1;20170:9;20166:17;20159:47;20223:131;20349:4;20223:131;:::i;:::-;20215:139;;19942:419;;;:::o;20367:180::-;20415:77;20412:1;20405:88;20512:4;20509:1;20502:15;20536:4;20533:1;20526:15;20553:305;20593:3;20612:20;20630:1;20612:20;:::i;:::-;20607:25;;20646:20;20664:1;20646:20;:::i;:::-;20641:25;;20800:1;20732:66;20728:74;20725:1;20722:81;20719:107;;;20806:18;;:::i;:::-;20719:107;20850:1;20847;20843:9;20836:16;;20553:305;;;;:::o;20864:174::-;21004:26;21000:1;20992:6;20988:14;20981:50;20864:174;:::o;21044:366::-;21186:3;21207:67;21271:2;21266:3;21207:67;:::i;:::-;21200:74;;21283:93;21372:3;21283:93;:::i;:::-;21401:2;21396:3;21392:12;21385:19;;21044:366;;;:::o;21416:419::-;21582:4;21620:2;21609:9;21605:18;21597:26;;21669:9;21663:4;21659:20;21655:1;21644:9;21640:17;21633:47;21697:131;21823:4;21697:131;:::i;:::-;21689:139;;21416:419;;;:::o;21841:220::-;21981:34;21977:1;21969:6;21965:14;21958:58;22050:3;22045:2;22037:6;22033:15;22026:28;21841:220;:::o;22067:366::-;22209:3;22230:67;22294:2;22289:3;22230:67;:::i;:::-;22223:74;;22306:93;22395:3;22306:93;:::i;:::-;22424:2;22419:3;22415:12;22408:19;;22067:366;;;:::o;22439:419::-;22605:4;22643:2;22632:9;22628:18;22620:26;;22692:9;22686:4;22682:20;22678:1;22667:9;22663:17;22656:47;22720:131;22846:4;22720:131;:::i;:::-;22712:139;;22439:419;;;:::o;22864:348::-;22904:7;22927:20;22945:1;22927:20;:::i;:::-;22922:25;;22961:20;22979:1;22961:20;:::i;:::-;22956:25;;23149:1;23081:66;23077:74;23074:1;23071:81;23066:1;23059:9;23052:17;23048:105;23045:131;;;23156:18;;:::i;:::-;23045:131;23204:1;23201;23197:9;23186:20;;22864:348;;;;:::o;23218:180::-;23266:77;23263:1;23256:88;23363:4;23360:1;23353:15;23387:4;23384:1;23377:15;23404:185;23444:1;23461:20;23479:1;23461:20;:::i;:::-;23456:25;;23495:20;23513:1;23495:20;:::i;:::-;23490:25;;23534:1;23524:35;;23539:18;;:::i;:::-;23524:35;23581:1;23578;23574:9;23569:14;;23404:185;;;;:::o;23595:191::-;23635:4;23655:20;23673:1;23655:20;:::i;:::-;23650:25;;23689:20;23707:1;23689:20;:::i;:::-;23684:25;;23728:1;23725;23722:8;23719:34;;;23733:18;;:::i;:::-;23719:34;23778:1;23775;23771:9;23763:17;;23595:191;;;;:::o;23792:147::-;23893:11;23930:3;23915:18;;23792:147;;;;:::o;23945:114::-;;:::o;24065:398::-;24224:3;24245:83;24326:1;24321:3;24245:83;:::i;:::-;24238:90;;24337:93;24426:3;24337:93;:::i;:::-;24455:1;24450:3;24446:11;24439:18;;24065:398;;;:::o;24469:379::-;24653:3;24675:147;24818:3;24675:147;:::i;:::-;24668:154;;24839:3;24832:10;;24469:379;;;:::o;24854:225::-;24994:34;24990:1;24982:6;24978:14;24971:58;25063:8;25058:2;25050:6;25046:15;25039:33;24854:225;:::o;25085:366::-;25227:3;25248:67;25312:2;25307:3;25248:67;:::i;:::-;25241:74;;25324:93;25413:3;25324:93;:::i;:::-;25442:2;25437:3;25433:12;25426:19;;25085:366;;;:::o;25457:419::-;25623:4;25661:2;25650:9;25646:18;25638:26;;25710:9;25704:4;25700:20;25696:1;25685:9;25681:17;25674:47;25738:131;25864:4;25738:131;:::i;:::-;25730:139;;25457:419;;;:::o;25882:180::-;25930:77;25927:1;25920:88;26027:4;26024:1;26017:15;26051:4;26048:1;26041:15;26068:180;26116:77;26113:1;26106:88;26213:4;26210:1;26203:15;26237:4;26234:1;26227:15;26254:143;26311:5;26342:6;26336:13;26327:22;;26358:33;26385:5;26358:33;:::i;:::-;26254:143;;;;:::o;26403:351::-;26473:6;26522:2;26510:9;26501:7;26497:23;26493:32;26490:119;;;26528:79;;:::i;:::-;26490:119;26648:1;26673:64;26729:7;26720:6;26709:9;26705:22;26673:64;:::i;:::-;26663:74;;26619:128;26403:351;;;;:::o;26760:85::-;26805:7;26834:5;26823:16;;26760:85;;;:::o;26851:158::-;26909:9;26942:61;26960:42;26969:32;26995:5;26969:32;:::i;:::-;26960:42;:::i;:::-;26942:61;:::i;:::-;26929:74;;26851:158;;;:::o;27015:147::-;27110:45;27149:5;27110:45;:::i;:::-;27105:3;27098:58;27015:147;;:::o;27168:114::-;27235:6;27269:5;27263:12;27253:22;;27168:114;;;:::o;27288:184::-;27387:11;27421:6;27416:3;27409:19;27461:4;27456:3;27452:14;27437:29;;27288:184;;;;:::o;27478:132::-;27545:4;27568:3;27560:11;;27598:4;27593:3;27589:14;27581:22;;27478:132;;;:::o;27616:108::-;27693:24;27711:5;27693:24;:::i;:::-;27688:3;27681:37;27616:108;;:::o;27730:179::-;27799:10;27820:46;27862:3;27854:6;27820:46;:::i;:::-;27898:4;27893:3;27889:14;27875:28;;27730:179;;;;:::o;27915:113::-;27985:4;28017;28012:3;28008:14;28000:22;;27915:113;;;:::o;28064:732::-;28183:3;28212:54;28260:5;28212:54;:::i;:::-;28282:86;28361:6;28356:3;28282:86;:::i;:::-;28275:93;;28392:56;28442:5;28392:56;:::i;:::-;28471:7;28502:1;28487:284;28512:6;28509:1;28506:13;28487:284;;;28588:6;28582:13;28615:63;28674:3;28659:13;28615:63;:::i;:::-;28608:70;;28701:60;28754:6;28701:60;:::i;:::-;28691:70;;28547:224;28534:1;28531;28527:9;28522:14;;28487:284;;;28491:14;28787:3;28780:10;;28188:608;;;28064:732;;;;:::o;28802:831::-;29065:4;29103:3;29092:9;29088:19;29080:27;;29117:71;29185:1;29174:9;29170:17;29161:6;29117:71;:::i;:::-;29198:80;29274:2;29263:9;29259:18;29250:6;29198:80;:::i;:::-;29325:9;29319:4;29315:20;29310:2;29299:9;29295:18;29288:48;29353:108;29456:4;29447:6;29353:108;:::i;:::-;29345:116;;29471:72;29539:2;29528:9;29524:18;29515:6;29471:72;:::i;:::-;29553:73;29621:3;29610:9;29606:19;29597:6;29553:73;:::i;:::-;28802:831;;;;;;;;:::o;29639:807::-;29888:4;29926:3;29915:9;29911:19;29903:27;;29940:71;30008:1;29997:9;29993:17;29984:6;29940:71;:::i;:::-;30021:72;30089:2;30078:9;30074:18;30065:6;30021:72;:::i;:::-;30103:80;30179:2;30168:9;30164:18;30155:6;30103:80;:::i;:::-;30193;30269:2;30258:9;30254:18;30245:6;30193:80;:::i;:::-;30283:73;30351:3;30340:9;30336:19;30327:6;30283:73;:::i;:::-;30366;30434:3;30423:9;30419:19;30410:6;30366:73;:::i;:::-;29639:807;;;;;;;;;:::o;30452:143::-;30509:5;30540:6;30534:13;30525:22;;30556:33;30583:5;30556:33;:::i;:::-;30452:143;;;;:::o;30601:663::-;30689:6;30697;30705;30754:2;30742:9;30733:7;30729:23;30725:32;30722:119;;;30760:79;;:::i;:::-;30722:119;30880:1;30905:64;30961:7;30952:6;30941:9;30937:22;30905:64;:::i;:::-;30895:74;;30851:128;31018:2;31044:64;31100:7;31091:6;31080:9;31076:22;31044:64;:::i;:::-;31034:74;;30989:129;31157:2;31183:64;31239:7;31230:6;31219:9;31215:22;31183:64;:::i;:::-;31173:74;;31128:129;30601:663;;;;;:::o

Swarm Source

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