ETH Price: $3,317.23 (-4.26%)

Token

Obake Yokai (YOKAI)
 

Overview

Max Total Supply

100,000,000 YOKAI

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
970,000 YOKAI

Value
$0.00
0x333C907C7023cc8f1B47F3c74efdFA4c6fa8Ea65
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-11-15
*/

//      ░█████╗░██████╗░░█████╗░██╗░░██╗███████╗  ██╗░░░██╗░█████╗░██╗░░██╗░█████╗░██╗
//      ██╔══██╗██╔══██╗██╔══██╗██║░██╔╝██╔════╝  ╚██╗░██╔╝██╔══██╗██║░██╔╝██╔══██╗██║
//      ██║░░██║██████╦╝███████║█████═╝░█████╗░░  ░╚████╔╝░██║░░██║█████═╝░███████║██║
//      ██║░░██║██╔══██╗██╔══██║██╔═██╗░██╔══╝░░  ░░╚██╔╝░░██║░░██║██╔═██╗░██╔══██║██║
//      ╚█████╔╝██████╦╝██║░░██║██║░╚██╗███████╗  ░░░██║░░░╚█████╔╝██║░╚██╗██║░░██║██║
//      ░╚════╝░╚═════╝░╚═╝░░╚═╝╚═╝░░╚═╝╚══════╝  ░░░╚═╝░░░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝╚═╝


// 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

        return true;
    }

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

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

interface IDexRouter {

    function factory() external pure returns (address);

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

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

interface IDexFactory {

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

contract 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;

    bool public transferDelayEnabled = true;

    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;

    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("Obake 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 = 3;
        buyLiquidityFee = 0;
        buyTotalFees = buyOperationsFee + buyLiquidityFee;

        sellOperationsFee = 3;
        sellLiquidityFee = 0;
        sellTotalFees = sellOperationsFee + sellLiquidityFee;

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

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

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

    receive() external payable {}

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

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

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

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

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

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

    function _setAutomatedMarketMakerPair(address pair, bool value) 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 != address(0xdead)) {
                if (!tradingActive){
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading has not been activated.");
                }
                  
                if (transferDelayEnabled) {
                    if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                        require(_holderLastTransferTimestamp[tx.origin] < block.number - 4 
                        && _holderLastTransferTimestamp[to] < block.number - 4, "_transfer:: Transfer delay enabled. Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }
                 
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxBuyAmount, "Buy amount exceeds the max buy.");
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot exceed 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 + 1 >= 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,
            address(0xdead),
            block.timestamp
        );
    } 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001601260006101000a81548160ff0219169083151502179055506000601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506001601960036101000a81548160ff0219169083151502179055506000601a553480156200008257600080fd5b506040518060400160405280600b81526020017f4f62616b6520596f6b61690000000000000000000000000000000000000000008152506040518060400160405280600581526020017f594f4b414900000000000000000000000000000000000000000000000000000081525081600390805190602001906200010792919062000b69565b5080600490805190602001906200012092919062000b69565b505050600062000135620005b760201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060003390506000737a250d5630b4cf539739df2c5dacb4c659f2488d905062000205816001620005bf60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000285573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ab919062000c83565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000339919062000c83565b6040518363ffffffff1660e01b81526004016200035892919062000cc6565b6020604051808303816000875af115801562000378573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039e919062000c83565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620003e660a05160016200065560201b60201c565b60006a52b7d2dcc80cd2e40000009050606460018262000407919062000d2c565b62000413919062000dbc565b60078190555060646001826200042a919062000d2c565b62000436919062000dbc565b60088190555060646002826200044d919062000d2c565b62000459919062000dbc565b600981905550620186a060198262000472919062000d2c565b6200047e919062000dbc565b6013819055506003600d819055506000600c81905550600c54600d54620004a6919062000df4565b600e8190555060036010819055506000600f81905550600f54601054620004ce919062000df4565b601181905550620004e7836001620006f660201b60201c565b620004fa306001620006f660201b60201c565b6200050f61dead6001620006f660201b60201c565b62000522836001620005bf60201b60201c565b62000535306001620005bf60201b60201c565b6200054a61dead6001620005bf60201b60201c565b82600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200059d83826200084360201b60201c565b620005ae836200099460201b60201c565b505050620010d8565b600033905090565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd674682826040516200064992919062000e6e565b60405180910390a15050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b62000706620005b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000798576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078f9062000efc565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000837919062000f1e565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620008b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008ad9062000f8b565b60405180910390fd5b8060026000828254620008ca919062000df4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000921919062000df4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000988919062000fbe565b60405180910390a35050565b620009a4620005b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a2d9062000efc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000aa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa09062001051565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b82805462000b7790620010a2565b90600052602060002090601f01602090048101928262000b9b576000855562000be7565b82601f1062000bb657805160ff191683800117855562000be7565b8280016001018555821562000be7579182015b8281111562000be657825182559160200191906001019062000bc9565b5b50905062000bf6919062000bfa565b5090565b5b8082111562000c1557600081600090555060010162000bfb565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c4b8262000c1e565b9050919050565b62000c5d8162000c3e565b811462000c6957600080fd5b50565b60008151905062000c7d8162000c52565b92915050565b60006020828403121562000c9c5762000c9b62000c19565b5b600062000cac8482850162000c6c565b91505092915050565b62000cc08162000c3e565b82525050565b600060408201905062000cdd600083018562000cb5565b62000cec602083018462000cb5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d398262000cf3565b915062000d468362000cf3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d825762000d8162000cfd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dc98262000cf3565b915062000dd68362000cf3565b92508262000de95762000de862000d8d565b5b828204905092915050565b600062000e018262000cf3565b915062000e0e8362000cf3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e465762000e4562000cfd565b5b828201905092915050565b60008115159050919050565b62000e688162000e51565b82525050565b600060408201905062000e85600083018562000cb5565b62000e94602083018462000e5d565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ee460208362000e9b565b915062000ef18262000eac565b602082019050919050565b6000602082019050818103600083015262000f178162000ed5565b9050919050565b600060208201905062000f35600083018462000e5d565b92915050565b7f45524332303a204d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000f73601f8362000e9b565b915062000f808262000f3b565b602082019050919050565b6000602082019050818103600083015262000fa68162000f64565b9050919050565b62000fb88162000cf3565b82525050565b600060208201905062000fd5600083018462000fad565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200103960268362000e9b565b9150620010468262000fdb565b604082019050919050565b600060208201905081810360008301526200106c816200102a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620010bb57607f821691505b60208210811415620010d257620010d162001073565b5b50919050565b60805160a0516147376200113660003960008181610e76015281816114740152612364015260008181610b070152818161230d015281816132e8015281816133c9015281816133f00152818161348c01526134b301526147376000f3fe60806040526004361061026b5760003560e01c80638a8c523c11610144578063d85ba063116100b6578063ee40166e1161007a578063ee40166e14610937578063efe23e8614610962578063f11a24d31461098b578063f2fde38b146109b6578063f6374342146109df578063fb002c9714610a0a57610272565b8063d85ba06314610862578063dd62ed3e1461088d578063e2f45605146108ca578063e884f260146108f5578063ea4cfe121461090c57610272565b8063a9059cbb11610108578063a9059cbb1461073e578063aa4bde281461077b578063b62496f5146107a6578063bbc0c742146107e3578063c02466681461080e578063c876d0b91461083757610272565b80638a8c523c1461066b5780638da5cb5b1461068257806395d89b41146106ad5780639a7a23d6146106d8578063a457c2d71461070157610272565b80634a62bb65116101dd5780636a486a8e116101a15780636a486a8e1461057f5780636ddd1713146105aa57806370a08231146105d5578063715018a614610612578063751039fc1461062957806388e765ff1461064057610272565b80634a62bb65146104965780634f77f6c0146104c15780634fbee193146104ec5780635a139dd41461052957806366d602ae1461055457610272565b80631a8145bb1161022f5780631a8145bb1461037257806323b872dd1461039d578063313ce567146103da5780633950935114610405578063499b83941461044257806349bd5a5e1461046b57610272565b806306fdde0314610277578063095ea7b3146102a257806310d5de53146102df5780631694505e1461031c57806318160ddd1461034757610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a35565b60405161029991906135fb565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906136b6565b610ac7565b6040516102d69190613711565b60405180910390f35b3480156102eb57600080fd5b506103066004803603810190610301919061372c565b610ae5565b6040516103139190613711565b60405180910390f35b34801561032857600080fd5b50610331610b05565b60405161033e91906137b8565b60405180910390f35b34801561035357600080fd5b5061035c610b29565b60405161036991906137e2565b60405180910390f35b34801561037e57600080fd5b50610387610b33565b60405161039491906137e2565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf91906137fd565b610b39565b6040516103d19190613711565b60405180910390f35b3480156103e657600080fd5b506103ef610c31565b6040516103fc919061386c565b60405180910390f35b34801561041157600080fd5b5061042c600480360381019061042791906136b6565b610c3a565b6040516104399190613711565b60405180910390f35b34801561044e57600080fd5b506104696004803603810190610464919061372c565b610ce6565b005b34801561047757600080fd5b50610480610e74565b60405161048d9190613896565b60405180910390f35b3480156104a257600080fd5b506104ab610e98565b6040516104b89190613711565b60405180910390f35b3480156104cd57600080fd5b506104d6610eab565b6040516104e391906137e2565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061372c565b610eb1565b6040516105209190613711565b60405180910390f35b34801561053557600080fd5b5061053e610f07565b60405161054b91906137e2565b60405180910390f35b34801561056057600080fd5b50610569610f0d565b60405161057691906137e2565b60405180910390f35b34801561058b57600080fd5b50610594610f13565b6040516105a191906137e2565b60405180910390f35b3480156105b657600080fd5b506105bf610f19565b6040516105cc9190613711565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f7919061372c565b610f2c565b60405161060991906137e2565b60405180910390f35b34801561061e57600080fd5b50610627610f74565b005b34801561063557600080fd5b5061063e6110cc565b005b34801561064c57600080fd5b506106556111c7565b60405161066291906137e2565b60405180910390f35b34801561067757600080fd5b506106806111cd565b005b34801561068e57600080fd5b5061069761131f565b6040516106a49190613896565b60405180910390f35b3480156106b957600080fd5b506106c2611349565b6040516106cf91906135fb565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906138dd565b6113db565b005b34801561070d57600080fd5b50610728600480360381019061072391906136b6565b61150f565b6040516107359190613711565b60405180910390f35b34801561074a57600080fd5b50610765600480360381019061076091906136b6565b6115fa565b6040516107729190613711565b60405180910390f35b34801561078757600080fd5b50610790611618565b60405161079d91906137e2565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c8919061372c565b61161e565b6040516107da9190613711565b60405180910390f35b3480156107ef57600080fd5b506107f861163e565b6040516108059190613711565b60405180910390f35b34801561081a57600080fd5b50610835600480360381019061083091906138dd565b611651565b005b34801561084357600080fd5b5061084c611791565b6040516108599190613711565b60405180910390f35b34801561086e57600080fd5b506108776117a4565b60405161088491906137e2565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af919061391d565b6117aa565b6040516108c191906137e2565b60405180910390f35b3480156108d657600080fd5b506108df611831565b6040516108ec91906137e2565b60405180910390f35b34801561090157600080fd5b5061090a611837565b005b34801561091857600080fd5b506109216118eb565b60405161092e9190613896565b60405180910390f35b34801561094357600080fd5b5061094c611911565b60405161095991906137e2565b60405180910390f35b34801561096e57600080fd5b50610989600480360381019061098491906138dd565b611917565b005b34801561099757600080fd5b506109a0611a09565b6040516109ad91906137e2565b60405180910390f35b3480156109c257600080fd5b506109dd60048036038101906109d8919061372c565b611a0f565b005b3480156109eb57600080fd5b506109f4611bd6565b604051610a0191906137e2565b60405180910390f35b348015610a1657600080fd5b50610a1f611bdc565b604051610a2c91906137e2565b60405180910390f35b606060038054610a449061398c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a709061398c565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050905090565b6000610adb610ad4611be2565b8484611bea565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b600b5481565b6000610b46848484611db5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b91611be2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890613a30565b60405180910390fd5b610c2585610c1d611be2565b858403611bea565b60019150509392505050565b60006012905090565b6000610cdc610c47611be2565b848460016000610c55611be2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cd79190613a7f565b611bea565b6001905092915050565b610cee611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7490613b21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490613b8d565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b7f000000000000000000000000000000000000000000000000000000000000000081565b601960039054906101000a900460ff1681565b60105481565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d5481565b60085481565b60115481565b601960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f7c611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613b21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110d4611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90613b21565b60405180910390fd5b6000601960036101000a81548160ff0219169083151502179055506000601260006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60075481565b6111d5611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613b21565b60405180910390fd5b601960019054906101000a900460ff16156112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90613bf9565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506001601960006101000a81548160ff02191690831515021790555043601a819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113589061398c565b80601f01602080910402602001604051908101604052809291908181526020018280546113849061398c565b80156113d15780601f106113a6576101008083540402835291602001916113d1565b820191906000526020600020905b8154815290600101906020018083116113b457829003601f168201915b5050505050905090565b6113e3611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990613b21565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f890613c8b565b60405180910390fd5b61150b8282612d85565b5050565b6000806001600061151e611be2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613d1d565b60405180910390fd5b6115ef6115e6611be2565b85858403611bea565b600191505092915050565b600061160e611607611be2565b8484611db5565b6001905092915050565b60095481565b60186020528060005260406000206000915054906101000a900460ff1681565b601960019054906101000a900460ff1681565b611659611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90613b21565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117859190613711565b60405180910390a25050565b601260009054906101000a900460ff1681565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b61183f611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590613b21565b60405180910390fd5b6000601260006101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b61191f611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a590613b21565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b611a17611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613b21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d90613daf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5190613e41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190613ed3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611da891906137e2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613f65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90613ff7565b60405180910390fd5b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f375750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f4157612d80565b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe35750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561209857601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561208a5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61209357600080fd5b6120f0565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120ef57612d80565b5b60008114156120fe57612d80565b601960039054906101000a900460ff16156128675761211b61131f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612189575061215961131f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121c25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121fc575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561286657601960019054906101000a900460ff166122f657601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122b65750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90614063565b60405180910390fd5b5b601260009054906101000a900460ff1615612525577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123b357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612524576004436123c59190614083565b601760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561245c575060044361241a9190614083565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b61249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249290614129565b60405180910390fd5b43601760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125c85750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561266f57600754811115612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990614195565b60405180910390fd5b60095461261e83610f2c565b826126299190613a7f565b111561266a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266190614201565b60405180910390fd5b612865565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127125750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127615760085481111561275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390614293565b60405180910390fd5b612864565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128055750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128635760095461281683610f2c565b826128219190613a7f565b1115612862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285990614201565b60405180910390fd5b5b5b5b5b5b600061287230610f2c565b9050600060135482101590508080156128975750601960009054906101000a900460ff165b80156128b05750601960029054906101000a900460ff16155b80156129065750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561295c5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129b25750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129f6576001601960026101000a81548160ff0219169083151502179055506129da612e26565b6000601960026101000a81548160ff0219169083151502179055505b600060019050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a9d5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612aa757600090505b6000808215612d6f57436001601a54612ac09190613a7f565b10158015612b175750601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b75576001601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bd057506000601154115b15612c5c57606460115487612be591906142b3565b612bef919061433c565b9150601154600f5483612c0291906142b3565b612c0c919061433c565b600b6000828254612c1d9190613a7f565b9250508190555060115460105483612c3591906142b3565b612c3f919061433c565b600a6000828254612c509190613a7f565b92505081905550612d40565b601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cb757506000600e54115b15612d3f576064600e5487612ccc91906142b3565b612cd6919061433c565b9150600e54600c5483612ce991906142b3565b612cf3919061433c565b600b6000828254612d049190613a7f565b92505081905550600e54600d5483612d1c91906142b3565b612d26919061433c565b600a6000828254612d379190613a7f565b925050819055505b5b6000821115612d5557612d54883084612fde565b5b8082612d619190613a7f565b86612d6c9190614083565b95505b612d7a888888612fde565b50505050505b505050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000612e3130610f2c565b90506000600a54600b54612e459190613a7f565b90506000821480612e565750600081145b15612e62575050612fdc565b600a601354612e7191906142b3565b821115612e8a57600a601354612e8791906142b3565b91505b600080600283600b5486612e9e91906142b3565b612ea8919061433c565b612eb2919061433c565b9050612ec88185612ec39190614083565b613249565b6000479050600081905060006002600b54612ee3919061433c565b86612eee9190614083565b600a5484612efc91906142b3565b612f06919061433c565b90508082612f149190614083565b91506000600b819055506000600a81905550600084118015612f365750600082115b15612f4657612f458483613486565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f8c9061439e565b60006040518083038185875af1925050503d8060008114612fc9576040519150601f19603f3d011682016040523d82523d6000602084013e612fce565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561304e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304590613f65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b590613ff7565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313b90614425565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131d79190613a7f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161323b91906137e2565b60405180910390a350505050565b6000600267ffffffffffffffff81111561326657613265614445565b5b6040519080825280602002602001820160405280156132945781602001602082028036833780820191505090505b50905030816000815181106132ac576132ab614474565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337591906144b8565b8160018151811061338957613388614474565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133ee307f000000000000000000000000000000000000000000000000000000000000000084611bea565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134509594939291906145de565b600060405180830381600087803b15801561346a57600080fd5b505af115801561347e573d6000803e3d6000fd5b505050505050565b6134b1307f000000000000000000000000000000000000000000000000000000000000000084611bea565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161351896959493929190614638565b60606040518083038185885af1158015613536573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061355b91906146ae565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561359c578082015181840152602081019050613581565b838111156135ab576000848401525b50505050565b6000601f19601f8301169050919050565b60006135cd82613562565b6135d7818561356d565b93506135e781856020860161357e565b6135f0816135b1565b840191505092915050565b6000602082019050818103600083015261361581846135c2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061364d82613622565b9050919050565b61365d81613642565b811461366857600080fd5b50565b60008135905061367a81613654565b92915050565b6000819050919050565b61369381613680565b811461369e57600080fd5b50565b6000813590506136b08161368a565b92915050565b600080604083850312156136cd576136cc61361d565b5b60006136db8582860161366b565b92505060206136ec858286016136a1565b9150509250929050565b60008115159050919050565b61370b816136f6565b82525050565b60006020820190506137266000830184613702565b92915050565b6000602082840312156137425761374161361d565b5b60006137508482850161366b565b91505092915050565b6000819050919050565b600061377e61377961377484613622565b613759565b613622565b9050919050565b600061379082613763565b9050919050565b60006137a282613785565b9050919050565b6137b281613797565b82525050565b60006020820190506137cd60008301846137a9565b92915050565b6137dc81613680565b82525050565b60006020820190506137f760008301846137d3565b92915050565b6000806000606084860312156138165761381561361d565b5b60006138248682870161366b565b93505060206138358682870161366b565b9250506040613846868287016136a1565b9150509250925092565b600060ff82169050919050565b61386681613850565b82525050565b6000602082019050613881600083018461385d565b92915050565b61389081613642565b82525050565b60006020820190506138ab6000830184613887565b92915050565b6138ba816136f6565b81146138c557600080fd5b50565b6000813590506138d7816138b1565b92915050565b600080604083850312156138f4576138f361361d565b5b60006139028582860161366b565b9250506020613913858286016138c8565b9150509250929050565b600080604083850312156139345761393361361d565b5b60006139428582860161366b565b92505060206139538582860161366b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139a457607f821691505b602082108114156139b8576139b761395d565b5b50919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613a1a60288361356d565b9150613a25826139be565b604082019050919050565b60006020820190508181036000830152613a4981613a0d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a8a82613680565b9150613a9583613680565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aca57613ac9613a50565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b0b60208361356d565b9150613b1682613ad5565b602082019050919050565b60006020820190508181036000830152613b3a81613afe565b9050919050565b7f5f6f7065726174696f6e73416464726573732063616e6e6f7420626520300000600082015250565b6000613b77601e8361356d565b9150613b8282613b41565b602082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b6000613be360178361356d565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613c7560398361356d565b9150613c8082613c19565b604082019050919050565b60006020820190508181036000830152613ca481613c68565b9050919050565b7f45524332303a2044656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d0760258361356d565b9150613d1282613cab565b604082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d9960268361356d565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b7f45524332303a20417070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e2b60248361356d565b9150613e3682613dcf565b604082019050919050565b60006020820190508181036000830152613e5a81613e1e565b9050919050565b7f45524332303a20417070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ebd60228361356d565b9150613ec882613e61565b604082019050919050565b60006020820190508181036000830152613eec81613eb0565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f4f60258361356d565b9150613f5a82613ef3565b604082019050919050565b60006020820190508181036000830152613f7e81613f42565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613fe160238361356d565b9150613fec82613f85565b604082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b7f54726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b600061404d601f8361356d565b915061405882614017565b602082019050919050565b6000602082019050818103600083015261407c81614040565b9050919050565b600061408e82613680565b915061409983613680565b9250828210156140ac576140ab613a50565b5b828203905092915050565b7f5f7472616e736665723a3a205472616e736665722064656c617920656e61626c60008201527f65642e2054727920616761696e206c617465722e000000000000000000000000602082015250565b600061411360348361356d565b915061411e826140b7565b604082019050919050565b6000602082019050818103600083015261414281614106565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b600061417f601f8361356d565b915061418a82614149565b602082019050919050565b600060208201905081810360008301526141ae81614172565b9050919050565b7f43616e6e6f7420657863656564206d61782077616c6c65740000000000000000600082015250565b60006141eb60188361356d565b91506141f6826141b5565b602082019050919050565b6000602082019050818103600083015261421a816141de565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b600061427d60218361356d565b915061428882614221565b604082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b60006142be82613680565b91506142c983613680565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561430257614301613a50565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434782613680565b915061435283613680565b9250826143625761436161430d565b5b828204905092915050565b600081905092915050565b50565b600061438860008361436d565b915061439382614378565b600082019050919050565b60006143a98261437b565b9150819050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061440f60268361356d565b915061441a826143b3565b604082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506144b281613654565b92915050565b6000602082840312156144ce576144cd61361d565b5b60006144dc848285016144a3565b91505092915050565b6000819050919050565b600061450a614505614500846144e5565b613759565b613680565b9050919050565b61451a816144ef565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61455581613642565b82525050565b6000614567838361454c565b60208301905092915050565b6000602082019050919050565b600061458b82614520565b614595818561452b565b93506145a08361453c565b8060005b838110156145d15781516145b8888261455b565b97506145c383614573565b9250506001810190506145a4565b5085935050505092915050565b600060a0820190506145f360008301886137d3565b6146006020830187614511565b81810360408301526146128186614580565b90506146216060830185613887565b61462e60808301846137d3565b9695505050505050565b600060c08201905061464d6000830189613887565b61465a60208301886137d3565b6146676040830187614511565b6146746060830186614511565b6146816080830185613887565b61468e60a08301846137d3565b979650505050505050565b6000815190506146a88161368a565b92915050565b6000806000606084860312156146c7576146c661361d565b5b60006146d586828701614699565b93505060206146e686828701614699565b92505060406146f786828701614699565b915050925092509256fea26469706673582212200b20efbf901eb64431d27f08d8895e128359391018e9d3ebfdac77f5f2eb523a64736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80638a8c523c11610144578063d85ba063116100b6578063ee40166e1161007a578063ee40166e14610937578063efe23e8614610962578063f11a24d31461098b578063f2fde38b146109b6578063f6374342146109df578063fb002c9714610a0a57610272565b8063d85ba06314610862578063dd62ed3e1461088d578063e2f45605146108ca578063e884f260146108f5578063ea4cfe121461090c57610272565b8063a9059cbb11610108578063a9059cbb1461073e578063aa4bde281461077b578063b62496f5146107a6578063bbc0c742146107e3578063c02466681461080e578063c876d0b91461083757610272565b80638a8c523c1461066b5780638da5cb5b1461068257806395d89b41146106ad5780639a7a23d6146106d8578063a457c2d71461070157610272565b80634a62bb65116101dd5780636a486a8e116101a15780636a486a8e1461057f5780636ddd1713146105aa57806370a08231146105d5578063715018a614610612578063751039fc1461062957806388e765ff1461064057610272565b80634a62bb65146104965780634f77f6c0146104c15780634fbee193146104ec5780635a139dd41461052957806366d602ae1461055457610272565b80631a8145bb1161022f5780631a8145bb1461037257806323b872dd1461039d578063313ce567146103da5780633950935114610405578063499b83941461044257806349bd5a5e1461046b57610272565b806306fdde0314610277578063095ea7b3146102a257806310d5de53146102df5780631694505e1461031c57806318160ddd1461034757610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a35565b60405161029991906135fb565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906136b6565b610ac7565b6040516102d69190613711565b60405180910390f35b3480156102eb57600080fd5b506103066004803603810190610301919061372c565b610ae5565b6040516103139190613711565b60405180910390f35b34801561032857600080fd5b50610331610b05565b60405161033e91906137b8565b60405180910390f35b34801561035357600080fd5b5061035c610b29565b60405161036991906137e2565b60405180910390f35b34801561037e57600080fd5b50610387610b33565b60405161039491906137e2565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf91906137fd565b610b39565b6040516103d19190613711565b60405180910390f35b3480156103e657600080fd5b506103ef610c31565b6040516103fc919061386c565b60405180910390f35b34801561041157600080fd5b5061042c600480360381019061042791906136b6565b610c3a565b6040516104399190613711565b60405180910390f35b34801561044e57600080fd5b506104696004803603810190610464919061372c565b610ce6565b005b34801561047757600080fd5b50610480610e74565b60405161048d9190613896565b60405180910390f35b3480156104a257600080fd5b506104ab610e98565b6040516104b89190613711565b60405180910390f35b3480156104cd57600080fd5b506104d6610eab565b6040516104e391906137e2565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e919061372c565b610eb1565b6040516105209190613711565b60405180910390f35b34801561053557600080fd5b5061053e610f07565b60405161054b91906137e2565b60405180910390f35b34801561056057600080fd5b50610569610f0d565b60405161057691906137e2565b60405180910390f35b34801561058b57600080fd5b50610594610f13565b6040516105a191906137e2565b60405180910390f35b3480156105b657600080fd5b506105bf610f19565b6040516105cc9190613711565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f7919061372c565b610f2c565b60405161060991906137e2565b60405180910390f35b34801561061e57600080fd5b50610627610f74565b005b34801561063557600080fd5b5061063e6110cc565b005b34801561064c57600080fd5b506106556111c7565b60405161066291906137e2565b60405180910390f35b34801561067757600080fd5b506106806111cd565b005b34801561068e57600080fd5b5061069761131f565b6040516106a49190613896565b60405180910390f35b3480156106b957600080fd5b506106c2611349565b6040516106cf91906135fb565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906138dd565b6113db565b005b34801561070d57600080fd5b50610728600480360381019061072391906136b6565b61150f565b6040516107359190613711565b60405180910390f35b34801561074a57600080fd5b50610765600480360381019061076091906136b6565b6115fa565b6040516107729190613711565b60405180910390f35b34801561078757600080fd5b50610790611618565b60405161079d91906137e2565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c8919061372c565b61161e565b6040516107da9190613711565b60405180910390f35b3480156107ef57600080fd5b506107f861163e565b6040516108059190613711565b60405180910390f35b34801561081a57600080fd5b50610835600480360381019061083091906138dd565b611651565b005b34801561084357600080fd5b5061084c611791565b6040516108599190613711565b60405180910390f35b34801561086e57600080fd5b506108776117a4565b60405161088491906137e2565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af919061391d565b6117aa565b6040516108c191906137e2565b60405180910390f35b3480156108d657600080fd5b506108df611831565b6040516108ec91906137e2565b60405180910390f35b34801561090157600080fd5b5061090a611837565b005b34801561091857600080fd5b506109216118eb565b60405161092e9190613896565b60405180910390f35b34801561094357600080fd5b5061094c611911565b60405161095991906137e2565b60405180910390f35b34801561096e57600080fd5b50610989600480360381019061098491906138dd565b611917565b005b34801561099757600080fd5b506109a0611a09565b6040516109ad91906137e2565b60405180910390f35b3480156109c257600080fd5b506109dd60048036038101906109d8919061372c565b611a0f565b005b3480156109eb57600080fd5b506109f4611bd6565b604051610a0191906137e2565b60405180910390f35b348015610a1657600080fd5b50610a1f611bdc565b604051610a2c91906137e2565b60405180910390f35b606060038054610a449061398c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a709061398c565b8015610abd5780601f10610a9257610100808354040283529160200191610abd565b820191906000526020600020905b815481529060010190602001808311610aa057829003601f168201915b5050505050905090565b6000610adb610ad4611be2565b8484611bea565b6001905092915050565b60146020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b600b5481565b6000610b46848484611db5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b91611be2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0890613a30565b60405180910390fd5b610c2585610c1d611be2565b858403611bea565b60019150509392505050565b60006012905090565b6000610cdc610c47611be2565b848460016000610c55611be2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cd79190613a7f565b611bea565b6001905092915050565b610cee611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7490613b21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490613b8d565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f4efa56652237561d0f1fd31311aeaaa41f3b754a461545ed3cf6ced5876d298260405160405180910390a250565b7f000000000000000000000000a17a0fcc01803757473e5ff7880f5b8f9d435bf981565b601960039054906101000a900460ff1681565b60105481565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d5481565b60085481565b60115481565b601960009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f7c611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100290613b21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110d4611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90613b21565b60405180910390fd5b6000601960036101000a81548160ff0219169083151502179055506000601260006101000a81548160ff0219169083151502179055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b60075481565b6111d5611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125b90613b21565b60405180910390fd5b601960019054906101000a900460ff16156112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90613bf9565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506001601960006101000a81548160ff02191690831515021790555043601a819055507fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb760405160405180910390a1565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546113589061398c565b80601f01602080910402602001604051908101604052809291908181526020018280546113849061398c565b80156113d15780601f106113a6576101008083540402835291602001916113d1565b820191906000526020600020905b8154815290600101906020018083116113b457829003601f168201915b5050505050905090565b6113e3611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990613b21565b60405180910390fd5b7f000000000000000000000000a17a0fcc01803757473e5ff7880f5b8f9d435bf973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611501576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f890613c8b565b60405180910390fd5b61150b8282612d85565b5050565b6000806001600061151e611be2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613d1d565b60405180910390fd5b6115ef6115e6611be2565b85858403611bea565b600191505092915050565b600061160e611607611be2565b8484611db5565b6001905092915050565b60095481565b60186020528060005260406000206000915054906101000a900460ff1681565b601960019054906101000a900460ff1681565b611659611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116df90613b21565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516117859190613711565b60405180910390a25050565b601260009054906101000a900460ff1681565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60135481565b61183f611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590613b21565b60405180910390fd5b6000601260006101000a81548160ff021916908315150217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601a5481565b61191f611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a590613b21565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b611a17611be2565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d90613b21565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0d90613daf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5190613e41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190613ed3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611da891906137e2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613f65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c90613ff7565b60405180910390fd5b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f375750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f4157612d80565b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611fe35750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561209857601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561208a5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61209357600080fd5b6120f0565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156120ef57612d80565b5b60008114156120fe57612d80565b601960039054906101000a900460ff16156128675761211b61131f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612189575061215961131f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121c25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121fc575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561286657601960019054906101000a900460ff166122f657601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122b65750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90614063565b60405180910390fd5b5b601260009054906101000a900460ff1615612525577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156123b357507f000000000000000000000000a17a0fcc01803757473e5ff7880f5b8f9d435bf973ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612524576004436123c59190614083565b601760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410801561245c575060044361241a9190614083565b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b61249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249290614129565b60405180910390fd5b43601760003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125c85750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561266f57600754811115612612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260990614195565b60405180910390fd5b60095461261e83610f2c565b826126299190613a7f565b111561266a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266190614201565b60405180910390fd5b612865565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127125750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127615760085481111561275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390614293565b60405180910390fd5b612864565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128055750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128635760095461281683610f2c565b826128219190613a7f565b1115612862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285990614201565b60405180910390fd5b5b5b5b5b5b600061287230610f2c565b9050600060135482101590508080156128975750601960009054906101000a900460ff165b80156128b05750601960029054906101000a900460ff16155b80156129065750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561295c5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156129b25750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129f6576001601960026101000a81548160ff0219169083151502179055506129da612e26565b6000601960026101000a81548160ff0219169083151502179055505b600060019050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612a9d5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612aa757600090505b6000808215612d6f57436001601a54612ac09190613a7f565b10158015612b175750601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612b75576001601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bd057506000601154115b15612c5c57606460115487612be591906142b3565b612bef919061433c565b9150601154600f5483612c0291906142b3565b612c0c919061433c565b600b6000828254612c1d9190613a7f565b9250508190555060115460105483612c3591906142b3565b612c3f919061433c565b600a6000828254612c509190613a7f565b92505081905550612d40565b601860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cb757506000600e54115b15612d3f576064600e5487612ccc91906142b3565b612cd6919061433c565b9150600e54600c5483612ce991906142b3565b612cf3919061433c565b600b6000828254612d049190613a7f565b92505081905550600e54600d5483612d1c91906142b3565b612d26919061433c565b600a6000828254612d379190613a7f565b925050819055505b5b6000821115612d5557612d54883084612fde565b5b8082612d619190613a7f565b86612d6c9190614083565b95505b612d7a888888612fde565b50505050505b505050565b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000612e3130610f2c565b90506000600a54600b54612e459190613a7f565b90506000821480612e565750600081145b15612e62575050612fdc565b600a601354612e7191906142b3565b821115612e8a57600a601354612e8791906142b3565b91505b600080600283600b5486612e9e91906142b3565b612ea8919061433c565b612eb2919061433c565b9050612ec88185612ec39190614083565b613249565b6000479050600081905060006002600b54612ee3919061433c565b86612eee9190614083565b600a5484612efc91906142b3565b612f06919061433c565b90508082612f149190614083565b91506000600b819055506000600a81905550600084118015612f365750600082115b15612f4657612f458483613486565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612f8c9061439e565b60006040518083038185875af1925050503d8060008114612fc9576040519150601f19603f3d011682016040523d82523d6000602084013e612fce565b606091505b505080955050505050505050505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561304e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304590613f65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130b590613ff7565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161313b90614425565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131d79190613a7f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161323b91906137e2565b60405180910390a350505050565b6000600267ffffffffffffffff81111561326657613265614445565b5b6040519080825280602002602001820160405280156132945781602001602082028036833780820191505090505b50905030816000815181106132ac576132ab614474565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337591906144b8565b8160018151811061338957613388614474565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506133ee307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611bea565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016134509594939291906145de565b600060405180830381600087803b15801561346a57600080fd5b505af115801561347e573d6000803e3d6000fd5b505050505050565b6134b1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611bea565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b815260040161351896959493929190614638565b60606040518083038185885af1158015613536573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061355b91906146ae565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561359c578082015181840152602081019050613581565b838111156135ab576000848401525b50505050565b6000601f19601f8301169050919050565b60006135cd82613562565b6135d7818561356d565b93506135e781856020860161357e565b6135f0816135b1565b840191505092915050565b6000602082019050818103600083015261361581846135c2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061364d82613622565b9050919050565b61365d81613642565b811461366857600080fd5b50565b60008135905061367a81613654565b92915050565b6000819050919050565b61369381613680565b811461369e57600080fd5b50565b6000813590506136b08161368a565b92915050565b600080604083850312156136cd576136cc61361d565b5b60006136db8582860161366b565b92505060206136ec858286016136a1565b9150509250929050565b60008115159050919050565b61370b816136f6565b82525050565b60006020820190506137266000830184613702565b92915050565b6000602082840312156137425761374161361d565b5b60006137508482850161366b565b91505092915050565b6000819050919050565b600061377e61377961377484613622565b613759565b613622565b9050919050565b600061379082613763565b9050919050565b60006137a282613785565b9050919050565b6137b281613797565b82525050565b60006020820190506137cd60008301846137a9565b92915050565b6137dc81613680565b82525050565b60006020820190506137f760008301846137d3565b92915050565b6000806000606084860312156138165761381561361d565b5b60006138248682870161366b565b93505060206138358682870161366b565b9250506040613846868287016136a1565b9150509250925092565b600060ff82169050919050565b61386681613850565b82525050565b6000602082019050613881600083018461385d565b92915050565b61389081613642565b82525050565b60006020820190506138ab6000830184613887565b92915050565b6138ba816136f6565b81146138c557600080fd5b50565b6000813590506138d7816138b1565b92915050565b600080604083850312156138f4576138f361361d565b5b60006139028582860161366b565b9250506020613913858286016138c8565b9150509250929050565b600080604083850312156139345761393361361d565b5b60006139428582860161366b565b92505060206139538582860161366b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139a457607f821691505b602082108114156139b8576139b761395d565b5b50919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613a1a60288361356d565b9150613a25826139be565b604082019050919050565b60006020820190508181036000830152613a4981613a0d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a8a82613680565b9150613a9583613680565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aca57613ac9613a50565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b0b60208361356d565b9150613b1682613ad5565b602082019050919050565b60006020820190508181036000830152613b3a81613afe565b9050919050565b7f5f6f7065726174696f6e73416464726573732063616e6e6f7420626520300000600082015250565b6000613b77601e8361356d565b9150613b8282613b41565b602082019050919050565b60006020820190508181036000830152613ba681613b6a565b9050919050565b7f43616e6e6f74207265656e61626c652074726164696e67000000000000000000600082015250565b6000613be360178361356d565b9150613bee82613bad565b602082019050919050565b60006020820190508181036000830152613c1281613bd6565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613c7560398361356d565b9150613c8082613c19565b604082019050919050565b60006020820190508181036000830152613ca481613c68565b9050919050565b7f45524332303a2044656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613d0760258361356d565b9150613d1282613cab565b604082019050919050565b60006020820190508181036000830152613d3681613cfa565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d9960268361356d565b9150613da482613d3d565b604082019050919050565b60006020820190508181036000830152613dc881613d8c565b9050919050565b7f45524332303a20417070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e2b60248361356d565b9150613e3682613dcf565b604082019050919050565b60006020820190508181036000830152613e5a81613e1e565b9050919050565b7f45524332303a20417070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ebd60228361356d565b9150613ec882613e61565b604082019050919050565b60006020820190508181036000830152613eec81613eb0565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f4f60258361356d565b9150613f5a82613ef3565b604082019050919050565b60006020820190508181036000830152613f7e81613f42565b9050919050565b7f45524332303a205472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613fe160238361356d565b9150613fec82613f85565b604082019050919050565b6000602082019050818103600083015261401081613fd4565b9050919050565b7f54726164696e6720686173206e6f74206265656e206163746976617465642e00600082015250565b600061404d601f8361356d565b915061405882614017565b602082019050919050565b6000602082019050818103600083015261407c81614040565b9050919050565b600061408e82613680565b915061409983613680565b9250828210156140ac576140ab613a50565b5b828203905092915050565b7f5f7472616e736665723a3a205472616e736665722064656c617920656e61626c60008201527f65642e2054727920616761696e206c617465722e000000000000000000000000602082015250565b600061411360348361356d565b915061411e826140b7565b604082019050919050565b6000602082019050818103600083015261414281614106565b9050919050565b7f42757920616d6f756e74206578636565647320746865206d6178206275792e00600082015250565b600061417f601f8361356d565b915061418a82614149565b602082019050919050565b600060208201905081810360008301526141ae81614172565b9050919050565b7f43616e6e6f7420657863656564206d61782077616c6c65740000000000000000600082015250565b60006141eb60188361356d565b91506141f6826141b5565b602082019050919050565b6000602082019050818103600083015261421a816141de565b9050919050565b7f53656c6c20616d6f756e74206578636565647320746865206d61782073656c6c60008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b600061427d60218361356d565b915061428882614221565b604082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b60006142be82613680565b91506142c983613680565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561430257614301613a50565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061434782613680565b915061435283613680565b9250826143625761436161430d565b5b828204905092915050565b600081905092915050565b50565b600061438860008361436d565b915061439382614378565b600082019050919050565b60006143a98261437b565b9150819050919050565b7f45524332303a205472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061440f60268361356d565b915061441a826143b3565b604082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506144b281613654565b92915050565b6000602082840312156144ce576144cd61361d565b5b60006144dc848285016144a3565b91505092915050565b6000819050919050565b600061450a614505614500846144e5565b613759565b613680565b9050919050565b61451a816144ef565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61455581613642565b82525050565b6000614567838361454c565b60208301905092915050565b6000602082019050919050565b600061458b82614520565b614595818561452b565b93506145a08361453c565b8060005b838110156145d15781516145b8888261455b565b97506145c383614573565b9250506001810190506145a4565b5085935050505092915050565b600060a0820190506145f360008301886137d3565b6146006020830187614511565b81810360408301526146128186614580565b90506146216060830185613887565b61462e60808301846137d3565b9695505050505050565b600060c08201905061464d6000830189613887565b61465a60208301886137d3565b6146676040830187614511565b6146746060830186614511565b6146816080830185613887565b61468e60a08301846137d3565b979650505050505050565b6000815190506146a88161368a565b92915050565b6000806000606084860312156146c7576146c661361d565b5b60006146d586828701614699565b93505060206146e686828701614699565b92505060406146f786828701614699565b915050925092509256fea26469706673582212200b20efbf901eb64431d27f08d8895e128359391018e9d3ebfdac77f5f2eb523a64736f6c634300080b0033

Deployed Bytecode Sourcemap

8640:11108:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4810:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9229:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9548:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4458:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8872:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5329:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4574:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5829:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12039:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9598:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9753:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9063:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12822:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8951:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8757:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9645:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4675:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3673:150;;;;;;;;;;;;;:::i;:::-;;12445:154;;;;;;;;;;;;;:::i;:::-;;8723:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11782:249;;;;;;;;;;;;;:::i;:::-;;3207:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4346:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13340:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6052:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4987:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8792:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9481:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9683:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12956:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9139:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8989:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9187:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12339:98;;;;;;;;;;;;;:::i;:::-;;8682:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9795:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13592:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8914:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3421:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9025:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8831:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4238:100;4292:13;4325:5;4318:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:100;:::o;4810:169::-;4893:4;4910:39;4919:12;:10;:12::i;:::-;4933:7;4942:6;4910:8;:39::i;:::-;4967:4;4960:11;;4810:169;;;;:::o;9229:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;9548:43::-;;;:::o;4458:108::-;4519:7;4546:12;;4539:19;;4458:108;:::o;8872:33::-;;;;:::o;5329:492::-;5469:4;5486:36;5496:6;5504:9;5515:6;5486:9;:36::i;:::-;5535:24;5562:11;:19;5574:6;5562:19;;;;;;;;;;;;;;;:33;5582:12;:10;:12::i;:::-;5562:33;;;;;;;;;;;;;;;;5535:60;;5634:6;5614:16;:26;;5606:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5721:57;5730:6;5738:12;:10;:12::i;:::-;5771:6;5752:16;:25;5721:8;:57::i;:::-;5809:4;5802:11;;;5329:492;;;;;:::o;4574:93::-;4632:5;4657:2;4650:9;;4574:93;:::o;5829:215::-;5917:4;5934:80;5943:12;:10;:12::i;:::-;5957:7;6003:10;5966:11;:25;5978:12;:10;:12::i;:::-;5966:25;;;;;;;;;;;;;;;:34;5992:7;5966:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5934:8;:80::i;:::-;6032:4;6025:11;;5829:215;;;;:::o;12039:289::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12165:1:::1;12135:32;;:18;:32;;;;12127:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12241:18;12213:17;;:47;;;;;;;;;;;;;;;;;;12301:18;12276:44;;;;;;;;;;;;12039:289:::0;:::o;9598:38::-;;;:::o;9753:33::-;;;;;;;;;;;;;:::o;9063:32::-;;;;:::o;12822:126::-;12888:4;12912:19;:28;12932:7;12912:28;;;;;;;;;;;;;;;;;;;;;;;;;12905:35;;12822:126;;;:::o;8951:31::-;;;;:::o;8757:28::-;;;;:::o;9102:::-;;;;:::o;9645:31::-;;;;;;;;;;;;;:::o;4675:127::-;4749:7;4776:9;:18;4786:7;4776:18;;;;;;;;;;;;;;;;4769:25;;4675:127;;;:::o;3673:150::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3782:1:::1;3745:40;;3766:6;;;;;;;;;;;3745:40;;;;;;;;;;;;3813:1;3796:6;;:19;;;;;;;;;;;;;;;;;;3673:150::o:0;12445:154::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12516:5:::1;12499:14;;:22;;;;;;;;;;;;;;;;;;12555:5;12532:20;;:28;;;;;;;;;;;;;;;;;;12576:15;;;;;;;;;;12445:154::o:0;8723:27::-;;;;:::o;11782:249::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11846:13:::1;;;;;;;;;;;11845:14;11837:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11914:4;11898:13;;:20;;;;;;;;;;;;;;;;;;11943:4;11929:11;;:18;;;;;;;;;;;;;;;;;;11979:12;11958:18;:33;;;;12007:16;;;;;;;;;;11782:249::o:0;3207:79::-;3245:7;3272:6;;;;;;;;;;;3265:13;;3207:79;:::o;4346:104::-;4402:13;4435:7;4428:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4346:104;:::o;13340:244::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13449:13:::1;13441:21;;:4;:21;;;;13433:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;13535:41;13564:4;13570:5;13535:28;:41::i;:::-;13340:244:::0;;:::o;6052:413::-;6145:4;6162:24;6189:11;:25;6201:12;:10;:12::i;:::-;6189:25;;;;;;;;;;;;;;;:34;6215:7;6189:34;;;;;;;;;;;;;;;;6162:61;;6262:15;6242:16;:35;;6234:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6355:67;6364:12;:10;:12::i;:::-;6378:7;6406:15;6387:16;:34;6355:8;:67::i;:::-;6453:4;6446:11;;;6052:413;;;;:::o;4987:175::-;5073:4;5090:42;5100:12;:10;:12::i;:::-;5114:9;5125:6;5090:9;:42::i;:::-;5150:4;5143:11;;4987:175;;;;:::o;8792:30::-;;;;:::o;9481:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;9683:33::-;;;;;;;;;;;;;:::o;12956:182::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13072:8:::1;13041:19;:28;13061:7;13041:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13112:7;13096:34;;;13121:8;13096:34;;;;;;:::i;:::-;;;;;;;;12956:182:::0;;:::o;9139:39::-;;;;;;;;;;;;;:::o;8989:27::-;;;;:::o;5170:151::-;5259:7;5286:11;:18;5298:5;5286:18;;;;;;;;;;;;;;;:27;5305:7;5286:27;;;;;;;;;;;;;;;;5279:34;;5170:151;;;;:::o;9187:33::-;;;;:::o;12339:98::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12424:5:::1;12401:20;;:28;;;;;;;;;;;;;;;;;;12339:98::o:0;8682:32::-;;;;;;;;;;;;;:::o;9795:37::-;;;;:::o;13592:106::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13685:5:::1;13669:4;:13;13674:7;13669:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13592:106:::0;;:::o;8914:30::-;;;;:::o;3421:244::-;3344:12;:10;:12::i;:::-;3334:22;;:6;;;;;;;;;;;:22;;;3326:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3530:1:::1;3510:22;;:8;:22;;;;3502:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3620:8;3591:38;;3612:6;;;;;;;;;;;3591:38;;;;;;;;;;;;3649:8;3640:6;;:17;;;;;;;;;;;;;;;;;;3421:244:::0;:::o;9025:31::-;;;;:::o;8831:34::-;;;;:::o;1696:98::-;1749:7;1776:10;1769:17;;1696:98;:::o;7394:380::-;7547:1;7530:19;;:5;:19;;;;7522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7628:1;7609:21;;:7;:21;;;;7601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7712:6;7682:11;:18;7694:5;7682:18;;;;;;;;;;;;;;;:27;7701:7;7682:27;;;;;;;;;;;;;;;:36;;;;7750:7;7734:32;;7743:5;7734:32;;;7759:6;7734:32;;;;;;:::i;:::-;;;;;;;;7394:380;;;:::o;13706:3956::-;13820:1;13804:18;;:4;:18;;;;13796:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13897:1;13883:16;;:2;:16;;;;13875:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13956:25;:29;13982:2;13956:29;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;13989:4;:10;13994:4;13989:10;;;;;;;;;;;;;;;;;;;;;;;;;13956:43;13952:321;;;14016:7;;13952:321;14053:25;:31;14079:4;14053:31;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;14088:4;:8;14093:2;14088:8;;;;;;;;;;;;;;;;;;;;;;;;;14053:43;14049:224;;;14121:25;:31;14147:4;14121:31;;;;;;;;;;;;;;;;;;;;;;;;;:43;;;;;14156:4;:8;14161:2;14156:8;;;;;;;;;;;;;;;;;;;;;;;;;14121:43;14113:52;;;;;;14049:224;;;14211:4;:8;14216:2;14211:8;;;;;;;;;;;;;;;;;;;;;;;;;14207:55;;;14240:7;;14207:55;14049:224;14300:1;14290:6;:11;14286:50;;;14318:7;;14286:50;14360:14;;;;;;;;;;;14356:1671;;;14403:7;:5;:7::i;:::-;14395:15;;:4;:15;;;;:32;;;;;14420:7;:5;:7::i;:::-;14414:13;;:2;:13;;;;14395:32;:52;;;;;14445:1;14431:16;;:2;:16;;;;14395:52;:77;;;;;14465:6;14451:21;;:2;:21;;;;14395:77;14391:1625;;;14498:13;;;;;;;;;;;14493:158;;14543:19;:25;14563:4;14543:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14572:19;:23;14592:2;14572:23;;;;;;;;;;;;;;;;;;;;;;;;;14543:52;14535:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14493:158;14693:20;;;;;;;;;;;14689:546;;;14756:15;14742:30;;:2;:30;;;;:62;;;;;14790:13;14776:28;;:2;:28;;;;14742:62;14738:478;;;14898:1;14883:12;:16;;;;:::i;:::-;14841:28;:39;14870:9;14841:39;;;;;;;;;;;;;;;;:58;:139;;;;;14979:1;14964:12;:16;;;;:::i;:::-;14929:28;:32;14958:2;14929:32;;;;;;;;;;;;;;;;:51;14841:139;14833:204;;;;;;;;;;;;:::i;:::-;;;;;;;;;15106:12;15064:28;:39;15093:9;15064:39;;;;;;;;;;;;;;;:54;;;;15180:12;15145:28;:32;15174:2;15145:32;;;;;;;;;;;;;;;:47;;;;14738:478;14689:546;15276:25;:31;15302:4;15276:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;15312:31;:35;15344:2;15312:35;;;;;;;;;;;;;;;;;;;;;;;;;15311:36;15276:71;15272:729;;;15390:12;;15380:6;:22;;15372:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;15495:15;;15478:13;15488:2;15478:9;:13::i;:::-;15469:6;:22;;;;:::i;:::-;:41;;15461:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15272:729;;;15587:25;:29;15613:2;15587:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;15621:31;:37;15653:4;15621:37;;;;;;;;;;;;;;;;;;;;;;;;;15620:38;15587:71;15583:418;;;15701:13;;15691:6;:23;;15683:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15583:418;;;15801:31;:35;15833:2;15801:35;;;;;;;;;;;;;;;;;;;;;;;;;15800:36;:78;;;;;15841:31;:37;15873:4;15841:37;;;;;;;;;;;;;;;;;;;;;;;;;15840:38;15800:78;15796:205;;;15937:15;;15920:13;15930:2;15920:9;:13::i;:::-;15911:6;:22;;;;:::i;:::-;:41;;15903:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;15796:205;15583:418;15272:729;14391:1625;14356:1671;16039:28;16070:24;16088:4;16070:9;:24::i;:::-;16039:55;;16115:12;16154:18;;16130:20;:42;;16115:57;;16189:7;:22;;;;;16200:11;;;;;;;;;;;16189:22;:35;;;;;16216:8;;;;;;;;;;;16215:9;16189:35;:71;;;;;16229:25;:31;16255:4;16229:31;;;;;;;;;;;;;;;;;;;;;;;;;16228:32;16189:71;:111;;;;;16275:19;:25;16295:4;16275:25;;;;;;;;;;;;;;;;;;;;;;;;;16274:26;16189:111;:139;;;;;16305:19;:23;16325:2;16305:23;;;;;;;;;;;;;;;;;;;;;;;;;16304:24;16189:139;16185:247;;;16356:4;16345:8;;:15;;;;;;;;;;;;;;;;;;16377:10;:8;:10::i;:::-;16415:5;16404:8;;:16;;;;;;;;;;;;;;;;;;16185:247;16444:12;16459:4;16444:19;;16480;:25;16500:4;16480:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;16509:19;:23;16529:2;16509:23;;;;;;;;;;;;;;;;;;;;;;;;;16480:52;16476:100;;;16559:5;16549:15;;16476:100;16596:12;16623:21;16665:7;16661:948;;;16721:12;16716:1;16695:18;;:22;;;;:::i;:::-;:38;;:73;;;;;16737:25;:31;16763:4;16737:31;;;;;;;;;;;;;;;;;;;;;;;;;16695:73;16691:129;;;16800:4;16789;:8;16794:2;16789:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;16691:129;16841:25;:29;16867:2;16841:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;16890:1;16874:13;;:17;16841:50;16837:585;;;16943:3;16928:13;;16919:6;:22;;;;:::i;:::-;:27;;;;:::i;:::-;16912:34;;17013:13;;16994:16;;16987:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;16965:18;;:61;;;;;;;:::i;:::-;;;;;;;;17095:13;;17075:17;;17068:4;:24;;;;:::i;:::-;:40;;;;:::i;:::-;17045:19;;:63;;;;;;;:::i;:::-;;;;;;;;16837:585;;;17148:25;:31;17174:4;17148:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;17198:1;17183:12;;:16;17148:51;17144:278;;;17248:3;17233:12;;17224:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17217:34;;17314:12;;17296:15;;17289:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;17267:18;;:59;;;;;;;:::i;:::-;;;;;;;;17394:12;;17375:16;;17368:4;:23;;;;:::i;:::-;:38;;;;:::i;:::-;17345:19;;:61;;;;;;;:::i;:::-;;;;;;;;17144:278;16837:585;17461:1;17454:4;:8;17450:95;;;17487:42;17503:4;17517;17524;17487:15;:42::i;:::-;17450:95;17584:13;17577:4;:20;;;;:::i;:::-;17567:30;;;;;:::i;:::-;;;16661:948;17621:33;17637:4;17643:2;17647:6;17621:15;:33::i;:::-;13785:3877;;;;;13706:3956;;;;:::o;13146:186::-;13263:5;13229:25;:31;13255:4;13229:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13318:5;13284:40;;13312:4;13284:40;;;;;;;;;;;;13146:186;;:::o;18155:1207::-;18196:23;18222:24;18240:4;18222:9;:24::i;:::-;18196:50;;18257:25;18306:19;;18285:18;;:40;;;;:::i;:::-;18257:68;;18369:1;18350:15;:20;:46;;;;18395:1;18374:17;:22;18350:46;18346:85;;;18413:7;;;;18346:85;18486:2;18465:18;;:23;;;;:::i;:::-;18447:15;:41;18443:115;;;18544:2;18523:18;;:23;;;;:::i;:::-;18505:41;;18443:115;18570:12;18603:23;18688:1;18668:17;18647:18;;18629:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;18603:86;;18710:51;18745:15;18727;:33;;;;:::i;:::-;18710:16;:51::i;:::-;18783:18;18804:21;18783:42;;18836:23;18862:10;18836:36;;18885:24;18990:1;18969:18;;:22;;;;:::i;:::-;18948:17;:44;;;;:::i;:::-;18925:19;;18912:10;:32;;;;:::i;:::-;:81;;;;:::i;:::-;18885:108;;19025:16;19006:35;;;;;:::i;:::-;;;19087:1;19066:18;:22;;;;19121:1;19099:19;:23;;;;19165:1;19147:15;:19;:42;;;;;19188:1;19170:15;:19;19147:42;19143:121;;;19206:46;19219:15;19236;19206:12;:46::i;:::-;19143:121;19297:17;;;;;;;;;;;19289:31;;19328:21;19289:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19276:78;;;;;18183:1179;;;;;;;18155:1207;:::o;6473:614::-;6631:1;6613:20;;:6;:20;;;;6605:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6715:1;6694:23;;:9;:23;;;;6686:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6770:21;6794:9;:17;6804:6;6794:17;;;;;;;;;;;;;;;;6770:41;;6847:6;6830:13;:23;;6822:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6968:6;6952:13;:22;6932:9;:17;6942:6;6932:17;;;;;;;;;;;;;;;:42;;;;7020:6;6996:9;:20;7006:9;6996:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7061:9;7044:35;;7053:6;7044:35;;;7072:6;7044:35;;;;;;:::i;:::-;;;;;;;;6594:493;6473:614;;;:::o;17670:477::-;17738:21;17776:1;17762:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17738:40;;17807:4;17789;17794:1;17789:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17833:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17823:4;17828:1;17823:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17868:62;17885:4;17900:15;17918:11;17868:8;:62::i;:::-;17943:15;:66;;;18024:11;18050:1;18066:4;18093;18113:15;17943:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17725:422;17670:477;:::o;19374:370::-;19455:62;19472:4;19487:15;19505:11;19455:8;:62::i;:::-;19530:15;:31;;;19569:9;19602:4;19622:11;19648:1;19664;19688:6;19710:15;19530:206;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19374:370;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:144::-;4243:9;4276:37;4307:5;4276:37;:::i;:::-;4263:50;;4175:144;;;:::o;4325:167::-;4430:55;4479:5;4430:55;:::i;:::-;4425:3;4418:68;4325:167;;:::o;4498:258::-;4609:4;4647:2;4636:9;4632:18;4624:26;;4660:89;4746:1;4735:9;4731:17;4722:6;4660:89;:::i;:::-;4498:258;;;;:::o;4762:118::-;4849:24;4867:5;4849:24;:::i;:::-;4844:3;4837:37;4762:118;;:::o;4886:222::-;4979:4;5017:2;5006:9;5002:18;4994:26;;5030:71;5098:1;5087:9;5083:17;5074:6;5030:71;:::i;:::-;4886:222;;;;:::o;5114:619::-;5191:6;5199;5207;5256:2;5244:9;5235:7;5231:23;5227:32;5224:119;;;5262:79;;:::i;:::-;5224:119;5382:1;5407:53;5452:7;5443:6;5432:9;5428:22;5407:53;:::i;:::-;5397:63;;5353:117;5509:2;5535:53;5580:7;5571:6;5560:9;5556:22;5535:53;:::i;:::-;5525:63;;5480:118;5637:2;5663:53;5708:7;5699:6;5688:9;5684:22;5663:53;:::i;:::-;5653:63;;5608:118;5114:619;;;;;:::o;5739:86::-;5774:7;5814:4;5807:5;5803:16;5792:27;;5739:86;;;:::o;5831:112::-;5914:22;5930:5;5914:22;:::i;:::-;5909:3;5902:35;5831:112;;:::o;5949:214::-;6038:4;6076:2;6065:9;6061:18;6053:26;;6089:67;6153:1;6142:9;6138:17;6129:6;6089:67;:::i;:::-;5949:214;;;;:::o;6169:118::-;6256:24;6274:5;6256:24;:::i;:::-;6251:3;6244:37;6169:118;;:::o;6293:222::-;6386:4;6424:2;6413:9;6409:18;6401:26;;6437:71;6505:1;6494:9;6490:17;6481:6;6437:71;:::i;:::-;6293:222;;;;:::o;6521:116::-;6591:21;6606:5;6591:21;:::i;:::-;6584:5;6581:32;6571:60;;6627:1;6624;6617:12;6571:60;6521:116;:::o;6643:133::-;6686:5;6724:6;6711:20;6702:29;;6740:30;6764:5;6740:30;:::i;:::-;6643:133;;;;:::o;6782:468::-;6847:6;6855;6904:2;6892:9;6883:7;6879:23;6875:32;6872:119;;;6910:79;;:::i;:::-;6872:119;7030:1;7055:53;7100:7;7091:6;7080:9;7076:22;7055:53;:::i;:::-;7045:63;;7001:117;7157:2;7183:50;7225:7;7216:6;7205:9;7201:22;7183:50;:::i;:::-;7173:60;;7128:115;6782:468;;;;;:::o;7256:474::-;7324:6;7332;7381:2;7369:9;7360:7;7356:23;7352:32;7349:119;;;7387:79;;:::i;:::-;7349:119;7507:1;7532:53;7577:7;7568:6;7557:9;7553:22;7532:53;:::i;:::-;7522:63;;7478:117;7634:2;7660:53;7705:7;7696:6;7685:9;7681:22;7660:53;:::i;:::-;7650:63;;7605:118;7256:474;;;;;:::o;7736:180::-;7784:77;7781:1;7774:88;7881:4;7878:1;7871:15;7905:4;7902:1;7895:15;7922:320;7966:6;8003:1;7997:4;7993:12;7983:22;;8050:1;8044:4;8040:12;8071:18;8061:81;;8127:4;8119:6;8115:17;8105:27;;8061:81;8189:2;8181:6;8178:14;8158:18;8155:38;8152:84;;;8208:18;;:::i;:::-;8152:84;7973:269;7922:320;;;:::o;8248: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:180::-;9326:77;9323:1;9316:88;9423:4;9420:1;9413:15;9447:4;9444:1;9437:15;9464:305;9504:3;9523:20;9541:1;9523:20;:::i;:::-;9518:25;;9557:20;9575:1;9557:20;:::i;:::-;9552:25;;9711:1;9643:66;9639:74;9636:1;9633:81;9630:107;;;9717:18;;:::i;:::-;9630:107;9761:1;9758;9754:9;9747:16;;9464:305;;;;:::o;9775:182::-;9915:34;9911:1;9903:6;9899:14;9892:58;9775:182;:::o;9963:366::-;10105:3;10126:67;10190:2;10185:3;10126:67;:::i;:::-;10119:74;;10202:93;10291:3;10202:93;:::i;:::-;10320:2;10315:3;10311:12;10304:19;;9963:366;;;:::o;10335:419::-;10501:4;10539:2;10528:9;10524:18;10516:26;;10588:9;10582:4;10578:20;10574:1;10563:9;10559:17;10552:47;10616:131;10742:4;10616:131;:::i;:::-;10608:139;;10335:419;;;:::o;10760:180::-;10900:32;10896:1;10888:6;10884:14;10877:56;10760:180;:::o;10946:366::-;11088:3;11109:67;11173:2;11168:3;11109:67;:::i;:::-;11102:74;;11185:93;11274:3;11185:93;:::i;:::-;11303:2;11298:3;11294:12;11287:19;;10946:366;;;:::o;11318:419::-;11484:4;11522:2;11511:9;11507:18;11499:26;;11571:9;11565:4;11561:20;11557:1;11546:9;11542:17;11535:47;11599:131;11725:4;11599:131;:::i;:::-;11591:139;;11318:419;;;:::o;11743:173::-;11883:25;11879:1;11871:6;11867:14;11860:49;11743:173;:::o;11922:366::-;12064:3;12085:67;12149:2;12144:3;12085:67;:::i;:::-;12078:74;;12161:93;12250:3;12161:93;:::i;:::-;12279:2;12274:3;12270:12;12263:19;;11922:366;;;:::o;12294:419::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12547:9;12541:4;12537:20;12533:1;12522:9;12518:17;12511:47;12575:131;12701:4;12575:131;:::i;:::-;12567:139;;12294:419;;;:::o;12719:244::-;12859:34;12855:1;12847:6;12843:14;12836:58;12928:27;12923:2;12915:6;12911:15;12904:52;12719:244;:::o;12969:366::-;13111:3;13132:67;13196:2;13191:3;13132:67;:::i;:::-;13125:74;;13208:93;13297:3;13208:93;:::i;:::-;13326:2;13321:3;13317:12;13310:19;;12969:366;;;:::o;13341:419::-;13507:4;13545:2;13534:9;13530:18;13522:26;;13594:9;13588:4;13584:20;13580:1;13569:9;13565:17;13558:47;13622:131;13748:4;13622:131;:::i;:::-;13614:139;;13341:419;;;:::o;13766:224::-;13906:34;13902:1;13894:6;13890:14;13883:58;13975:7;13970:2;13962:6;13958:15;13951:32;13766:224;:::o;13996:366::-;14138:3;14159:67;14223:2;14218:3;14159:67;:::i;:::-;14152:74;;14235:93;14324:3;14235:93;:::i;:::-;14353:2;14348:3;14344:12;14337:19;;13996:366;;;:::o;14368:419::-;14534:4;14572:2;14561:9;14557:18;14549:26;;14621:9;14615:4;14611:20;14607:1;14596:9;14592:17;14585:47;14649:131;14775:4;14649:131;:::i;:::-;14641:139;;14368:419;;;:::o;14793:225::-;14933:34;14929:1;14921:6;14917:14;14910:58;15002:8;14997:2;14989:6;14985:15;14978:33;14793:225;:::o;15024:366::-;15166:3;15187:67;15251:2;15246:3;15187:67;:::i;:::-;15180:74;;15263:93;15352:3;15263:93;:::i;:::-;15381:2;15376:3;15372:12;15365:19;;15024:366;;;:::o;15396:419::-;15562:4;15600:2;15589:9;15585:18;15577:26;;15649:9;15643:4;15639:20;15635:1;15624:9;15620:17;15613:47;15677:131;15803:4;15677:131;:::i;:::-;15669:139;;15396:419;;;:::o;15821:223::-;15961:34;15957:1;15949:6;15945:14;15938:58;16030:6;16025:2;16017:6;16013:15;16006:31;15821:223;:::o;16050:366::-;16192:3;16213:67;16277:2;16272:3;16213:67;:::i;:::-;16206:74;;16289:93;16378:3;16289:93;:::i;:::-;16407:2;16402:3;16398:12;16391:19;;16050:366;;;:::o;16422:419::-;16588:4;16626:2;16615:9;16611:18;16603:26;;16675:9;16669:4;16665:20;16661:1;16650:9;16646:17;16639:47;16703:131;16829:4;16703:131;:::i;:::-;16695:139;;16422:419;;;:::o;16847:221::-;16987:34;16983:1;16975:6;16971:14;16964:58;17056:4;17051:2;17043:6;17039:15;17032:29;16847:221;:::o;17074:366::-;17216:3;17237:67;17301:2;17296:3;17237:67;:::i;:::-;17230:74;;17313:93;17402:3;17313:93;:::i;:::-;17431:2;17426:3;17422:12;17415:19;;17074:366;;;:::o;17446:419::-;17612:4;17650:2;17639:9;17635:18;17627:26;;17699:9;17693:4;17689:20;17685:1;17674:9;17670:17;17663:47;17727:131;17853:4;17727:131;:::i;:::-;17719:139;;17446:419;;;:::o;17871:224::-;18011:34;18007:1;17999:6;17995:14;17988:58;18080:7;18075:2;18067:6;18063:15;18056:32;17871:224;:::o;18101:366::-;18243:3;18264:67;18328:2;18323:3;18264:67;:::i;:::-;18257:74;;18340:93;18429:3;18340:93;:::i;:::-;18458:2;18453:3;18449:12;18442:19;;18101:366;;;:::o;18473:419::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:131;18880:4;18754:131;:::i;:::-;18746:139;;18473:419;;;:::o;18898:222::-;19038:34;19034:1;19026:6;19022:14;19015:58;19107:5;19102:2;19094:6;19090:15;19083:30;18898:222;:::o;19126:366::-;19268:3;19289:67;19353:2;19348:3;19289:67;:::i;:::-;19282:74;;19365:93;19454:3;19365:93;:::i;:::-;19483:2;19478:3;19474:12;19467:19;;19126:366;;;:::o;19498:419::-;19664:4;19702:2;19691:9;19687:18;19679:26;;19751:9;19745:4;19741:20;19737:1;19726:9;19722:17;19715:47;19779:131;19905:4;19779:131;:::i;:::-;19771:139;;19498:419;;;:::o;19923:181::-;20063:33;20059:1;20051:6;20047:14;20040:57;19923:181;:::o;20110:366::-;20252:3;20273:67;20337:2;20332:3;20273:67;:::i;:::-;20266:74;;20349:93;20438:3;20349:93;:::i;:::-;20467:2;20462:3;20458:12;20451:19;;20110:366;;;:::o;20482:419::-;20648:4;20686:2;20675:9;20671:18;20663:26;;20735:9;20729:4;20725:20;20721:1;20710:9;20706:17;20699:47;20763:131;20889:4;20763:131;:::i;:::-;20755:139;;20482:419;;;:::o;20907:191::-;20947:4;20967:20;20985:1;20967:20;:::i;:::-;20962:25;;21001:20;21019:1;21001:20;:::i;:::-;20996:25;;21040:1;21037;21034:8;21031:34;;;21045:18;;:::i;:::-;21031:34;21090:1;21087;21083:9;21075:17;;20907:191;;;;:::o;21104:239::-;21244:34;21240:1;21232:6;21228:14;21221:58;21313:22;21308:2;21300:6;21296:15;21289:47;21104:239;:::o;21349:366::-;21491:3;21512:67;21576:2;21571:3;21512:67;:::i;:::-;21505:74;;21588:93;21677:3;21588:93;:::i;:::-;21706:2;21701:3;21697:12;21690:19;;21349:366;;;:::o;21721:419::-;21887:4;21925:2;21914:9;21910:18;21902:26;;21974:9;21968:4;21964:20;21960:1;21949:9;21945:17;21938:47;22002:131;22128:4;22002:131;:::i;:::-;21994:139;;21721:419;;;:::o;22146:181::-;22286:33;22282:1;22274:6;22270:14;22263:57;22146:181;:::o;22333:366::-;22475:3;22496:67;22560:2;22555:3;22496:67;:::i;:::-;22489:74;;22572:93;22661:3;22572:93;:::i;:::-;22690:2;22685:3;22681:12;22674:19;;22333:366;;;:::o;22705:419::-;22871:4;22909:2;22898:9;22894:18;22886:26;;22958:9;22952:4;22948:20;22944:1;22933:9;22929:17;22922:47;22986:131;23112:4;22986:131;:::i;:::-;22978:139;;22705:419;;;:::o;23130:174::-;23270:26;23266:1;23258:6;23254:14;23247:50;23130:174;:::o;23310:366::-;23452:3;23473:67;23537:2;23532:3;23473:67;:::i;:::-;23466:74;;23549:93;23638:3;23549:93;:::i;:::-;23667:2;23662:3;23658:12;23651:19;;23310:366;;;:::o;23682:419::-;23848:4;23886:2;23875:9;23871:18;23863:26;;23935:9;23929:4;23925:20;23921:1;23910:9;23906:17;23899:47;23963:131;24089:4;23963:131;:::i;:::-;23955:139;;23682:419;;;:::o;24107:220::-;24247:34;24243:1;24235:6;24231:14;24224:58;24316:3;24311:2;24303:6;24299:15;24292:28;24107:220;:::o;24333:366::-;24475:3;24496:67;24560:2;24555:3;24496:67;:::i;:::-;24489:74;;24572:93;24661:3;24572:93;:::i;:::-;24690:2;24685:3;24681:12;24674:19;;24333:366;;;:::o;24705:419::-;24871:4;24909:2;24898:9;24894:18;24886:26;;24958:9;24952:4;24948:20;24944:1;24933:9;24929:17;24922:47;24986:131;25112:4;24986:131;:::i;:::-;24978:139;;24705:419;;;:::o;25130:348::-;25170:7;25193:20;25211:1;25193:20;:::i;:::-;25188:25;;25227:20;25245:1;25227:20;:::i;:::-;25222:25;;25415:1;25347:66;25343:74;25340:1;25337:81;25332:1;25325:9;25318:17;25314:105;25311:131;;;25422:18;;:::i;:::-;25311:131;25470:1;25467;25463:9;25452:20;;25130:348;;;;:::o;25484:180::-;25532:77;25529:1;25522:88;25629:4;25626:1;25619:15;25653:4;25650:1;25643:15;25670:185;25710:1;25727:20;25745:1;25727:20;:::i;:::-;25722:25;;25761:20;25779:1;25761:20;:::i;:::-;25756:25;;25800:1;25790:35;;25805:18;;:::i;:::-;25790:35;25847:1;25844;25840:9;25835:14;;25670:185;;;;:::o;25861:147::-;25962:11;25999:3;25984:18;;25861:147;;;;:::o;26014:114::-;;:::o;26134:398::-;26293:3;26314:83;26395:1;26390:3;26314:83;:::i;:::-;26307:90;;26406:93;26495:3;26406:93;:::i;:::-;26524:1;26519:3;26515:11;26508:18;;26134:398;;;:::o;26538:379::-;26722:3;26744:147;26887:3;26744:147;:::i;:::-;26737:154;;26908:3;26901:10;;26538:379;;;:::o;26923:225::-;27063:34;27059:1;27051:6;27047:14;27040:58;27132:8;27127:2;27119:6;27115:15;27108:33;26923:225;:::o;27154:366::-;27296:3;27317:67;27381:2;27376:3;27317:67;:::i;:::-;27310:74;;27393:93;27482:3;27393:93;:::i;:::-;27511:2;27506:3;27502:12;27495:19;;27154:366;;;:::o;27526:419::-;27692:4;27730:2;27719:9;27715:18;27707:26;;27779:9;27773:4;27769:20;27765:1;27754:9;27750:17;27743:47;27807:131;27933:4;27807:131;:::i;:::-;27799:139;;27526:419;;;:::o;27951:180::-;27999:77;27996:1;27989:88;28096:4;28093:1;28086:15;28120:4;28117:1;28110:15;28137:180;28185:77;28182:1;28175:88;28282:4;28279:1;28272:15;28306:4;28303:1;28296:15;28323:143;28380:5;28411:6;28405:13;28396:22;;28427:33;28454:5;28427:33;:::i;:::-;28323:143;;;;:::o;28472:351::-;28542:6;28591:2;28579:9;28570:7;28566:23;28562:32;28559:119;;;28597:79;;:::i;:::-;28559:119;28717:1;28742:64;28798:7;28789:6;28778:9;28774:22;28742:64;:::i;:::-;28732:74;;28688:128;28472:351;;;;:::o;28829:85::-;28874:7;28903:5;28892:16;;28829:85;;;:::o;28920:158::-;28978:9;29011:61;29029:42;29038:32;29064:5;29038:32;:::i;:::-;29029:42;:::i;:::-;29011:61;:::i;:::-;28998:74;;28920:158;;;:::o;29084:147::-;29179:45;29218:5;29179:45;:::i;:::-;29174:3;29167:58;29084:147;;:::o;29237:114::-;29304:6;29338:5;29332:12;29322:22;;29237:114;;;:::o;29357:184::-;29456:11;29490:6;29485:3;29478:19;29530:4;29525:3;29521:14;29506:29;;29357:184;;;;:::o;29547:132::-;29614:4;29637:3;29629:11;;29667:4;29662:3;29658:14;29650:22;;29547:132;;;:::o;29685:108::-;29762:24;29780:5;29762:24;:::i;:::-;29757:3;29750:37;29685:108;;:::o;29799:179::-;29868:10;29889:46;29931:3;29923:6;29889:46;:::i;:::-;29967:4;29962:3;29958:14;29944:28;;29799:179;;;;:::o;29984:113::-;30054:4;30086;30081:3;30077:14;30069:22;;29984:113;;;:::o;30133:732::-;30252:3;30281:54;30329:5;30281:54;:::i;:::-;30351:86;30430:6;30425:3;30351:86;:::i;:::-;30344:93;;30461:56;30511:5;30461:56;:::i;:::-;30540:7;30571:1;30556:284;30581:6;30578:1;30575:13;30556:284;;;30657:6;30651:13;30684:63;30743:3;30728:13;30684:63;:::i;:::-;30677:70;;30770:60;30823:6;30770:60;:::i;:::-;30760:70;;30616:224;30603:1;30600;30596:9;30591:14;;30556:284;;;30560:14;30856:3;30849:10;;30257:608;;;30133:732;;;;:::o;30871:831::-;31134:4;31172:3;31161:9;31157:19;31149:27;;31186:71;31254:1;31243:9;31239:17;31230:6;31186:71;:::i;:::-;31267:80;31343:2;31332:9;31328:18;31319:6;31267:80;:::i;:::-;31394:9;31388:4;31384:20;31379:2;31368:9;31364:18;31357:48;31422:108;31525:4;31516:6;31422:108;:::i;:::-;31414:116;;31540:72;31608:2;31597:9;31593:18;31584:6;31540:72;:::i;:::-;31622:73;31690:3;31679:9;31675:19;31666:6;31622:73;:::i;:::-;30871:831;;;;;;;;:::o;31708:807::-;31957:4;31995:3;31984:9;31980:19;31972:27;;32009:71;32077:1;32066:9;32062:17;32053:6;32009:71;:::i;:::-;32090:72;32158:2;32147:9;32143:18;32134:6;32090:72;:::i;:::-;32172:80;32248:2;32237:9;32233:18;32224:6;32172:80;:::i;:::-;32262;32338:2;32327:9;32323:18;32314:6;32262:80;:::i;:::-;32352:73;32420:3;32409:9;32405:19;32396:6;32352:73;:::i;:::-;32435;32503:3;32492:9;32488:19;32479:6;32435:73;:::i;:::-;31708:807;;;;;;;;;:::o;32521:143::-;32578:5;32609:6;32603:13;32594:22;;32625:33;32652:5;32625:33;:::i;:::-;32521:143;;;;:::o;32670:663::-;32758:6;32766;32774;32823:2;32811:9;32802:7;32798:23;32794:32;32791:119;;;32829:79;;:::i;:::-;32791:119;32949:1;32974:64;33030:7;33021:6;33010:9;33006:22;32974:64;:::i;:::-;32964:74;;32920:128;33087:2;33113:64;33169:7;33160:6;33149:9;33145:22;33113:64;:::i;:::-;33103:74;;33058:129;33226:2;33252:64;33308:7;33299:6;33288:9;33284:22;33252:64;:::i;:::-;33242:74;;33197:129;32670:663;;;;;:::o

Swarm Source

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