ETH Price: $3,431.40 (+2.38%)
Gas: 4 Gwei

Token

Bitcoin Inu (BINU)
 

Overview

Max Total Supply

1,000,000,000 BINU

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,303,238.211079723304097642 BINU

Value
$0.00
0x33a578946096c3794759fee3f42e364424a004d0
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xb1026fa9...Ac20BC9d8
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
BCI

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 2023-12-04
*/

// 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) {
        return msg.data;
    }
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function factory() external view returns (address);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
}

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

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

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 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 decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, 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");

        _beforeTokenTransfer(sender, recipient, amount);

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

        _afterTokenTransfer(sender, recipient, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), 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);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

contract BCI is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    mapping (address => bool) public isBot;
    bool private _swapping;
    uint256 private _launchTime;

    address private devWallet;
    
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
        
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    
    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    
    uint256 public buyTotalFees;
    uint256 public buyDevFee;
 
    uint256 public sellTotalFees;
    uint256 public sellDevFee;
 
    uint256 public tokensForDev;
    
    /******************/

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
    
    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
 
    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);

    constructor() ERC20("Bitcoin Inu", "BINU") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);



        uint256 _buyDevFee = 25;
        uint256 _sellDevFee = 30;
        uint256 totalSupply = 1 * 1e9 * 1e18;
        
        maxTransactionAmount = totalSupply * 1 / 100; // 1% maxTransactionAmountTxn
        maxWallet = totalSupply * 2 / 100; // 1% maxWallet
        swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet

        // Set Fees
        buyDevFee = _buyDevFee;
        buyTotalFees =  buyDevFee;

        sellDevFee = _sellDevFee;
        sellTotalFees = sellDevFee;

        // Set Fee Wallet
        devWallet = address(owner()); // set as dev wallet


        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        
        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

        receive() external payable {
 
    }
 

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        tradingActive = true;
        _launchTime = block.timestamp.add(2);
    }
   
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }
    
    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool) {
        transferDelayEnabled = false;
        return true;
    }
    
     // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) {
  	    require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
  	    require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply.");
  	    swapTokensAtAmount = newAmount;
  	    return true;
  	}
    
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * 1e18;
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * 1e18;
    }
    
    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }
    
    function updateBuyFees(uint256 _devFee) external onlyOwner {
        buyDevFee = _devFee;
        buyTotalFees = buyDevFee;
        require(buyTotalFees <= 99, "Must keep fees at 99% or less");
    }
 
    function updateSellFees(uint256 _devFee) external onlyOwner {
        sellDevFee = _devFee;
        sellTotalFees = sellDevFee;
        require(sellTotalFees <= 99, "Must keep fees at 99% or less");
    }

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

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

        _setAutomatedMarketMakerPair(pair, value);
    }

    // Variable Block - once enabled, can never be turned off 
    function enableTrading(uint256 Bblock) external onlyOwner {
        tradingActive = true;
        _launchTime = block.timestamp.add(Bblock);
    }

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

    function updateDevWallet(address newWallet) external onlyOwner {
        emit devWalletUpdated(newWallet, devWallet);
        devWallet = newWallet;
    }
 

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
    
    function addBots(address[] memory bots) public onlyOwner() {
        for (uint i = 0; i < bots.length; i++) {
            if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) {
                isBot[bots[i]] = true;
            }
        }
    }
    
    function removeBots(address[] memory bots) public onlyOwner() {
        for (uint i = 0; i < bots.length; i++) {
            isBot[bots[i]] = false;
        }
    }

    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");
        require(!isBot[from], "Your address has been marked as a bot/sniper, you are unable to transfer or swap.");
        
         if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if (block.timestamp < _launchTime) isBot[to] = true;
        
        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !_swapping
            ) {
                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  
                if (transferDelayEnabled){
                    if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }
                 
                // On buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                
                // On sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                else if (!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }
        
		uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            !_swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            _swapping = true;
            swapBack();
            _swapping = false;
        }

        bool takeFee = !_swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false;
        
        
        uint256 fees = 0;
        // Only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // On sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount.mul(sellTotalFees).div(100);
                tokensForDev += fees * sellDevFee / sellTotalFees;
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForDev += fees * buyDevFee / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
        	
        	amount -= fees;
        }

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

    function _swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    
    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForDev;
        bool success;
 
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}
 
        if(contractBalance > swapTokensAtAmount * 20){
          contractBalance = swapTokensAtAmount * 20;
        }
 
 
        _swapTokensForEth(totalTokensToSwap); 
 
        uint256 ethBalance = address(this).balance;
 
 
        tokensForDev = 0;
 
        (success,) = address(devWallet).call{value: ethBalance}("");
 

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Bblock","type":"uint256"}],"name":"enableTrading","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":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"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 IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600b81526020017f426974636f696e20496e750000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42494e55000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000996565b5080600490805190602001906200010092919062000996565b5050506200012362000117620004ec60201b60201c565b620004f460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200014f816001620005ba60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000ab0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000ab0565b6040518363ffffffff1660e01b8152600401620002a292919062000af3565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000ab0565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005ba60201b60201c565b6200034560a0516001620006a460201b60201c565b6000601990506000601e905060006b033b2e3c9fd0803ce80000009050606460018262000373919062000b59565b6200037f919062000be9565b600a81905550606460028262000396919062000b59565b620003a2919062000be9565b600c81905550612710600582620003ba919062000b59565b620003c6919062000be9565b600b819055508260118190555060115460108190555081601381905550601354601281905550620003fc620006ff60201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200045e62000450620006ff60201b60201c565b60016200072960201b60201c565b620004713060016200072960201b60201c565b6200048661dead60016200072960201b60201c565b620004a86200049a620006ff60201b60201c565b6001620005ba60201b60201c565b620004bb306001620005ba60201b60201c565b620004d061dead6001620005ba60201b60201c565b620004e233826200081360201b60201c565b5050505062000e06565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005ca620004ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f0620006ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006409062000c82565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000739620004ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200075f620006ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007af9062000c82565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000886576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200087d9062000cf4565b60405180910390fd5b6200089a600083836200098c60201b60201c565b8060026000828254620008ae919062000d16565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000905919062000d16565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096c919062000d84565b60405180910390a362000988600083836200099160201b60201c565b5050565b505050565b505050565b828054620009a49062000dd0565b90600052602060002090601f016020900481019282620009c8576000855562000a14565b82601f10620009e357805160ff191683800117855562000a14565b8280016001018555821562000a14579182015b8281111562000a13578251825591602001919060010190620009f6565b5b50905062000a23919062000a27565b5090565b5b8082111562000a4257600081600090555060010162000a28565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a788262000a4b565b9050919050565b62000a8a8162000a6b565b811462000a9657600080fd5b50565b60008151905062000aaa8162000a7f565b92915050565b60006020828403121562000ac95762000ac862000a46565b5b600062000ad98482850162000a99565b91505092915050565b62000aed8162000a6b565b82525050565b600060408201905062000b0a600083018562000ae2565b62000b19602083018462000ae2565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b668262000b20565b915062000b738362000b20565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000baf5762000bae62000b2a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bf68262000b20565b915062000c038362000b20565b92508262000c165762000c1562000bba565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c6a60208362000c21565b915062000c778262000c32565b602082019050919050565b6000602082019050818103600083015262000c9d8162000c5b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cdc601f8362000c21565b915062000ce98262000ca4565b602082019050919050565b6000602082019050818103600083015262000d0f8162000ccd565b9050919050565b600062000d238262000b20565b915062000d308362000b20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d685762000d6762000b2a565b5b828201905092915050565b62000d7e8162000b20565b82525050565b600060208201905062000d9b600083018462000d73565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000de957607f821691505b6020821081141562000e005762000dff62000da1565b5b50919050565b60805160a051614d2d62000e646000396000818161101e0152818161177c01528181611d43015261282d015260008181610bb101528181611db4015281816127d5015281816135bc0152818161369d01526136c40152614d2d6000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b8060118190555060115460108190555060636010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550606360125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a890614116565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219790614482565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614514565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612291906145a6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c906146ca565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e990614782565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612776906147ee565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f9906148a6565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c90614938565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a84906149a4565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614a36565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c24906149a4565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614a56565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c990614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613239906146ca565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614afc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614b4d565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614b77565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614c9d565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061446c602683613765565b915061447782614410565b604082019050919050565b6000602082019050818103600083015261449b8161445f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144fe602483613765565b9150614509826144a2565b604082019050919050565b6000602082019050818103600083015261452d816144f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614590602283613765565b915061459b82614534565b604082019050919050565b600060208201905081810360008301526145bf81614583565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614622602583613765565b915061462d826145c6565b604082019050919050565b6000602082019050818103600083015261465181614615565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b4602383613765565b91506146bf82614658565b604082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b600061476c605183613765565b9150614777826146ea565b606082019050919050565b6000602082019050818103600083015261479b8161475f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006147d8601683613765565b91506147e3826147a2565b602082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614890604983613765565b915061489b8261480e565b606082019050919050565b600060208201905081810360008301526148bf81614883565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614922603583613765565b915061492d826148c6565b604082019050919050565b6000602082019050818103600083015261495181614915565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061498e601383613765565b915061499982614958565b602082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a20603683613765565b9150614a2b826149c4565b604082019050919050565b60006020820190508181036000830152614a4f81614a13565b9050919050565b6000614a6182613887565b9150614a6c83613887565b925082821015614a7f57614a7e613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ae6602683613765565b9150614af182614a8a565b604082019050919050565b60006020820190508181036000830152614b1581614ad9565b9050919050565b600081905092915050565b50565b6000614b37600083614b1c565b9150614b4282614b27565b600082019050919050565b6000614b5882614b2a565b9150819050919050565b600081519050614b718161385b565b92915050565b600060208284031215614b8d57614b8c61381f565b5b6000614b9b84828501614b62565b91505092915050565b6000819050919050565b6000614bc9614bc4614bbf84614ba4565b613960565b613887565b9050919050565b614bd981614bae565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c1481613849565b82525050565b6000614c268383614c0b565b60208301905092915050565b6000602082019050919050565b6000614c4a82614bdf565b614c548185614bea565b9350614c5f83614bfb565b8060005b83811015614c90578151614c778882614c1a565b9750614c8283614c32565b925050600181019050614c63565b5085935050505092915050565b600060a082019050614cb260008301886139da565b614cbf6020830187614bd0565b8181036040830152614cd18186614c3f565b9050614ce06060830185613abb565b614ced60808301846139da565b969550505050505056fea2646970667358221220d9f11123482d3ff193a961ce828d7afcbb68a687bdfce7440a490aad5429dada64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000008587039818632fa10cdb5e2a9e7538105888b11781565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b8060118190555060115460108190555060636010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f0000000000000000000000008587039818632fa10cdb5e2a9e7538105888b11773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f0000000000000000000000008587039818632fa10cdb5e2a9e7538105888b11773ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550606360125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a890614116565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219790614482565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614514565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612291906145a6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c906146ca565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e990614782565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612776906147ee565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f0000000000000000000000008587039818632fa10cdb5e2a9e7538105888b11773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f9906148a6565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c90614938565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a84906149a4565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614a36565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c24906149a4565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614a56565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c990614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613239906146ca565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614afc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614b4d565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614b77565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846121ba565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614c9d565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061446c602683613765565b915061447782614410565b604082019050919050565b6000602082019050818103600083015261449b8161445f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144fe602483613765565b9150614509826144a2565b604082019050919050565b6000602082019050818103600083015261452d816144f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614590602283613765565b915061459b82614534565b604082019050919050565b600060208201905081810360008301526145bf81614583565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614622602583613765565b915061462d826145c6565b604082019050919050565b6000602082019050818103600083015261465181614615565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b4602383613765565b91506146bf82614658565b604082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b600061476c605183613765565b9150614777826146ea565b606082019050919050565b6000602082019050818103600083015261479b8161475f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006147d8601683613765565b91506147e3826147a2565b602082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614890604983613765565b915061489b8261480e565b606082019050919050565b600060208201905081810360008301526148bf81614883565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614922603583613765565b915061492d826148c6565b604082019050919050565b6000602082019050818103600083015261495181614915565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061498e601383613765565b915061499982614958565b602082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a20603683613765565b9150614a2b826149c4565b604082019050919050565b60006020820190508181036000830152614a4f81614a13565b9050919050565b6000614a6182613887565b9150614a6c83613887565b925082821015614a7f57614a7e613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ae6602683613765565b9150614af182614a8a565b604082019050919050565b60006020820190508181036000830152614b1581614ad9565b9050919050565b600081905092915050565b50565b6000614b37600083614b1c565b9150614b4282614b27565b600082019050919050565b6000614b5882614b2a565b9150819050919050565b600081519050614b718161385b565b92915050565b600060208284031215614b8d57614b8c61381f565b5b6000614b9b84828501614b62565b91505092915050565b6000819050919050565b6000614bc9614bc4614bbf84614ba4565b613960565b613887565b9050919050565b614bd981614bae565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c1481613849565b82525050565b6000614c268383614c0b565b60208301905092915050565b6000602082019050919050565b6000614c4a82614bdf565b614c548185614bea565b9350614c5f83614bfb565b8060005b83811015614c90578151614c778882614c1a565b9750614c8283614c32565b925050600181019050614c63565b5085935050505092915050565b600060a082019050614cb260008301886139da565b614cbf6020830187614bd0565b8181036040830152614cd18186614c3f565b9050614ce06060830185613abb565b614ced60808301846139da565b969550505050505056fea2646970667358221220d9f11123482d3ff193a961ce828d7afcbb68a687bdfce7440a490aad5429dada64736f6c634300080b0033

Deployed Bytecode Sourcemap

11697:12688:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3915:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12781:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11770:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3322:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17991:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16187:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4092:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3221:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4673:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11875:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11828;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12146:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18159:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12530:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18575:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3438:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10480:103;;;;;;;;;;;;;:::i;:::-;;16806:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15397:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16650:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17690:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15212:130;;;;;;;;;;;;;:::i;:::-;;10257:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3109:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17374:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12496:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12600:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12565:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4896:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3573:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12186:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17234:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16427:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12410:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12023:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15793:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18296:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12462:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3756:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12065:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15583:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17018:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10591:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12105:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3001:100;3055:13;3088:5;3081:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3001:100;:::o;3915:169::-;3998:4;4015:39;4024:12;:10;:12::i;:::-;4038:7;4047:6;4015:8;:39::i;:::-;4072:4;4065:11;;3915:169;;;;:::o;12781:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11770:51::-;;;:::o;3322:108::-;3383:7;3410:12;;3403:19;;3322:108;:::o;17991:157::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18098:9:::1;;;;;;;;;;;18070:38;;18087:9;18070:38;;;;;;;;;;;;18131:9;18119;;:21;;;;;;;;;;;;;;;;;;17991:157:::0;:::o;16187:232::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16308:4:::1;16300;16296:1;16280:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16279:33;;;;:::i;:::-;16269:6;:43;;16261:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16407:4;16398:6;:13;;;;:::i;:::-;16375:20;:36;;;;16187:232:::0;:::o;4092:573::-;4232:4;4249:24;4276:11;:19;4288:6;4276:19;;;;;;;;;;;;;;;:33;4296:12;:10;:12::i;:::-;4276:33;;;;;;;;;;;;;;;;4249:60;;4344:17;4324:16;:37;4320:265;;4406:6;4386:16;:26;;4378:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4501:57;4510:6;4518:12;:10;:12::i;:::-;4551:6;4532:16;:25;4501:8;:57::i;:::-;4320:265;4597:36;4607:6;4615:9;4626:6;4597:9;:36::i;:::-;4653:4;4646:11;;;4092:573;;;;;:::o;3221:93::-;3279:5;3304:2;3297:9;;3221:93;:::o;4673:215::-;4761:4;4778:80;4787:12;:10;:12::i;:::-;4801:7;4847:10;4810:11;:25;4822:12;:10;:12::i;:::-;4810:25;;;;;;;;;;;;;;;:34;4836:7;4810:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4778:8;:80::i;:::-;4876:4;4869:11;;4673:215;;;;:::o;11875:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11828:::-;;;:::o;12146:33::-;;;;;;;;;;;;;:::o;18159:125::-;18224:4;18248:19;:28;18268:7;18248:28;;;;;;;;;;;;;;;;;;;;;;;;;18241:35;;18159:125;;;:::o;12530:28::-;;;;:::o;18575:168::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18653:6:::1;18648:88;18669:4;:11;18665:1;:15;18648:88;;;18719:5;18702;:14;18708:4;18713:1;18708:7;;;;;;;;:::i;:::-;;;;;;;;18702:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18682:3;;;;;:::i;:::-;;;;18648:88;;;;18575:168:::0;:::o;3438:127::-;3512:7;3539:9;:18;3549:7;3539:18;;;;;;;;;;;;;;;;3532:25;;3438:127;;;:::o;10480:103::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10545:30:::1;10572:1;10545:18;:30::i;:::-;10480:103::o:0;16806:203::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16888:7:::1;16876:9;:19;;;;16921:9;;16906:12;:24;;;;16965:2;16949:12;;:18;;16941:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16806:203:::0;:::o;15397:121::-;15449:4;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15483:5:::1;15466:14;;:22;;;;;;;;;;;;;;;;;;15506:4;15499:11;;15397:121:::0;:::o;16650:144::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16782:4:::1;16740:31;:39;16772:6;16740:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16650:144:::0;;:::o;17690:149::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17775:4:::1;17759:13;;:20;;;;;;;;;;;;;;;;;;17804:27;17824:6;17804:15;:19;;:27;;;;:::i;:::-;17790:11;:41;;;;17690:149:::0;:::o;15212:130::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15283:4:::1;15267:13;;:20;;;;;;;;;;;;;;;;;;15312:22;15332:1;15312:15;:19;;:22;;;;:::i;:::-;15298:11;:36;;;;15212:130::o:0;10257:87::-;10303:7;10330:6;;;;;;;;;;;10323:13;;10257:87;:::o;3109:104::-;3165:13;3198:7;3191:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3109:104;:::o;17374:244::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17481:13:::1;17473:21;;:4;:21;;;;17465:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17569:41;17598:4;17604:5;17569:28;:41::i;:::-;17374:244:::0;;:::o;12496:24::-;;;;:::o;12600:27::-;;;;:::o;12565:25::-;;;;:::o;4896:413::-;4989:4;5006:24;5033:11;:25;5045:12;:10;:12::i;:::-;5033:25;;;;;;;;;;;;;;;:34;5059:7;5033:34;;;;;;;;;;;;;;;;5006:61;;5106:15;5086:16;:35;;5078:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5199:67;5208:12;:10;:12::i;:::-;5222:7;5250:15;5231:16;:34;5199:8;:67::i;:::-;5297:4;5290:11;;;4896:413;;;;:::o;3573:175::-;3659:4;3676:42;3686:12;:10;:12::i;:::-;3700:9;3711:6;3676:9;:42::i;:::-;3736:4;3729:11;;3573:175;;;;:::o;13003:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12186:33::-;;;;;;;;;;;;;:::o;17234:132::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17350:8:::1;17319:19;:28;17339:7;17319:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17234:132:::0;;:::o;16427:211::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16549:4:::1;16543;16539:1;16523:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16522:31;;;;:::i;:::-;16512:6;:41;;16504:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16626:4;16617:6;:13;;;;:::i;:::-;16605:9;:25;;;;16427:211:::0;:::o;12410:39::-;;;;;;;;;;;;;:::o;12023:35::-;;;;:::o;15793:382::-;15874:4;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15931:6:::1;15927:1;15911:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;15898:9;:39;;15890:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16046:4;16042:1;16026:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16013:9;:37;;16005:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16138:9;16117:18;:30;;;;16164:4;16157:11;;15793:382:::0;;;:::o;18296:267::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18371:6:::1;18366:190;18387:4;:11;18383:1;:15;18366:190;;;18435:13;18424:24;;:4;18429:1;18424:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;18471:15;18452:35;;:4;18457:1;18452:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;18424:63;18420:125;;;18525:4;18508:5;:14;18514:4;18519:1;18514:7;;;;;;;;:::i;:::-;;;;;;;;18508:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18420:125;18400:3;;;;;:::i;:::-;;;;18366:190;;;;18296:267:::0;:::o;12462:27::-;;;;:::o;3756:151::-;3845:7;3872:11;:18;3884:5;3872:18;;;;;;;;;;;;;;;:27;3891:7;3872:27;;;;;;;;;;;;;;;;3865:34;;3756:151;;;;:::o;12065:33::-;;;;:::o;15583:135::-;15643:4;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15683:5:::1;15660:20;;:28;;;;;;;;;;;;;;;;;;15706:4;15699:11;;15583:135:::0;:::o;17018:208::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17102:7:::1;17089:10;:20;;;;17136:10;;17120:13;:26;;;;17182:2;17165:13;;:19;;17157:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17018:208:::0;:::o;10591:201::-;10403:12;:10;:12::i;:::-;10392:23;;:7;:5;:7::i;:::-;:23;;;10384:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10700:1:::1;10680:22;;:8;:22;;;;10672:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10756:28;10775:8;10756:18;:28::i;:::-;10591:201:::0;:::o;12105:24::-;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;7064:380::-;7217:1;7200:19;;:5;:19;;;;7192:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7298:1;7279:21;;:7;:21;;;;7271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7382:6;7352:11;:18;7364:5;7352:18;;;;;;;;;;;;;;;:27;7371:7;7352:27;;;;;;;;;;;;;;;:36;;;;7420:7;7404:32;;7413:5;7404:32;;;7429:6;7404:32;;;;;;:::i;:::-;;;;;;;;7064:380;;;:::o;18751:3910::-;18899:1;18883:18;;:4;:18;;;;18875:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18976:1;18962:16;;:2;:16;;;;18954:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19038:5;:11;19044:4;19038:11;;;;;;;;;;;;;;;;;;;;;;;;;19037:12;19029:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19171:1;19161:6;:11;19157:93;;;19189:28;19205:4;19211:2;19215:1;19189:15;:28::i;:::-;19232:7;;19157:93;19292:11;;19274:15;:29;19270:51;;;19317:4;19305:5;:9;19311:2;19305:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;19270:51;19346:14;;;;;;;;;;;19342:1834;;;19407:7;:5;:7::i;:::-;19399:15;;:4;:15;;;;:49;;;;;19441:7;:5;:7::i;:::-;19435:13;;:2;:13;;;;19399:49;:86;;;;;19483:1;19469:16;;:2;:16;;;;19399:86;:128;;;;;19520:6;19506:21;;:2;:21;;;;19399:128;:159;;;;;19549:9;;;;;;;;;;;19548:10;19399:159;19377:1788;;;19598:13;;;;;;;;;;;19593:150;;19644:19;:25;19664:4;19644:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19673:19;:23;19693:2;19673:23;;;;;;;;;;;;;;;;;;;;;;;;;19644:52;19636:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19593:150;19901:20;;;;;;;;;;;19897:423;;;19955:7;:5;:7::i;:::-;19949:13;;:2;:13;;;;:47;;;;;19980:15;19966:30;;:2;:30;;;;19949:47;:79;;;;;20014:13;20000:28;;:2;:28;;;;19949:79;19945:356;;;20106:12;20064:28;:39;20093:9;20064:39;;;;;;;;;;;;;;;;:54;20056:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;20265:12;20223:28;:39;20252:9;20223:39;;;;;;;;;;;;;;;:54;;;;19945:356;19897:423;20388:25;:31;20414:4;20388:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20424:31;:35;20456:2;20424:35;;;;;;;;;;;;;;;;;;;;;;;;;20423:36;20388:71;20384:766;;;20502:20;;20492:6;:30;;20484:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20637:9;;20620:13;20630:2;20620:9;:13::i;:::-;20611:6;:22;;;;:::i;:::-;:35;;20603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20384:766;;;20763:25;:29;20789:2;20763:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20797:31;:37;20829:4;20797:37;;;;;;;;;;;;;;;;;;;;;;;;;20796:38;20763:71;20759:391;;;20877:20;;20867:6;:30;;20859:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20759:391;;;21004:31;:35;21036:2;21004:35;;;;;;;;;;;;;;;;;;;;;;;;;20999:151;;21097:9;;21080:13;21090:2;21080:9;:13::i;:::-;21071:6;:22;;;;:::i;:::-;:35;;21063:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20999:151;20759:391;20384:766;19377:1788;19342:1834;21190:28;21221:24;21239:4;21221:9;:24::i;:::-;21190:55;;21256:12;21295:18;;21271:20;:42;;21256:57;;21344:7;:34;;;;;21369:9;;;;;;;;;;;21368:10;21344:34;:83;;;;;21396:25;:31;21422:4;21396:31;;;;;;;;;;;;;;;;;;;;;;;;;21395:32;21344:83;:126;;;;;21445:19;:25;21465:4;21445:25;;;;;;;;;;;;;;;;;;;;;;;;;21444:26;21344:126;:167;;;;;21488:19;:23;21508:2;21488:23;;;;;;;;;;;;;;;;;;;;;;;;;21487:24;21344:167;21326:297;;;21550:4;21538:9;;:16;;;;;;;;;;;;;;;;;;21569:10;:8;:10::i;:::-;21606:5;21594:9;;:17;;;;;;;;;;;;;;;;;;21326:297;21635:12;21651:9;;;;;;;;;;;21650:10;21635:25;;21762:19;:25;21782:4;21762:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21791:19;:23;21811:2;21791:23;;;;;;;;;;;;;;;;;;;;;;;;;21762:52;21758:73;;;21826:5;21816:15;;21758:73;21862:12;21967:7;21963:645;;;22019:25;:29;22045:2;22019:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22068:1;22052:13;;:17;22019:50;22015:438;;;22096:34;22126:3;22096:25;22107:13;;22096:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;22089:41;;22185:13;;22172:10;;22165:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;22149:12;;:49;;;;;;;:::i;:::-;;;;;;;;22015:438;;;22259:25;:31;22285:4;22259:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22309:1;22294:12;;:16;22259:51;22256:197;;;22338:33;22367:3;22338:24;22349:12;;22338:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22331:40;;22425:12;;22413:9;;22406:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;22390:12;;:47;;;;;;;:::i;:::-;;;;;;;;22256:197;22015:438;22480:1;22473:4;:8;22469:91;;;22502:42;22518:4;22532;22539;22502:15;:42::i;:::-;22469:91;22592:4;22582:14;;;;;:::i;:::-;;;21963:645;22620:33;22636:4;22642:2;22646:6;22620:15;:33::i;:::-;18864:3797;;;;18751:3910;;;;:::o;10800:191::-;10874:16;10893:6;;;;;;;;;;;10874:25;;10919:8;10910:6;;:17;;;;;;;;;;;;;;;;;;10974:8;10943:40;;10964:8;10943:40;;;;;;;;;;;;10863:128;10800:191;:::o;8854:98::-;8912:7;8943:1;8939;:5;;;;:::i;:::-;8932:12;;8854:98;;;;:::o;17847:130::-;17964:5;17930:25;:31;17956:4;17930:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17847:130;;:::o;5317:733::-;5475:1;5457:20;;:6;:20;;;;5449:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5559:1;5538:23;;:9;:23;;;;5530:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5614:47;5635:6;5643:9;5654:6;5614:20;:47::i;:::-;5674:21;5698:9;:17;5708:6;5698:17;;;;;;;;;;;;;;;;5674:41;;5751:6;5734:13;:23;;5726:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5872:6;5856:13;:22;5836:9;:17;5846:6;5836:17;;;;;;;;;;;;;;;:42;;;;5924:6;5900:9;:20;5910:9;5900:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5965:9;5948:35;;5957:6;5948:35;;;5976:6;5948:35;;;;;;:::i;:::-;;;;;;;;5996:46;6016:6;6024:9;6035:6;5996:19;:46::i;:::-;5438:612;5317:733;;;:::o;23793:589::-;23832:23;23858:24;23876:4;23858:9;:24::i;:::-;23832:50;;23893:25;23921:12;;23893:40;;23944:12;23992:1;23973:15;:20;:46;;;;24018:1;23997:17;:22;23973:46;23970:60;;;24022:7;;;;;23970:60;24085:2;24064:18;;:23;;;;:::i;:::-;24046:15;:41;24043:111;;;24140:2;24119:18;;:23;;;;:::i;:::-;24101:41;;24043:111;24170:36;24188:17;24170;:36::i;:::-;24221:18;24242:21;24221:42;;24295:1;24280:12;:16;;;;24331:9;;;;;;;;;;;24323:23;;24354:10;24323:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24310:59;;;;;23821:561;;;;23793:589;:::o;9066:98::-;9124:7;9155:1;9151;:5;;;;:::i;:::-;9144:12;;9066:98;;;;:::o;9172:::-;9230:7;9261:1;9257;:5;;;;:::i;:::-;9250:12;;9172:98;;;;:::o;7452:125::-;;;;:::o;7585:124::-;;;;:::o;22669:590::-;22796:21;22834:1;22820:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22796:40;;22865:4;22847;22852:1;22847:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22891:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22881:4;22886:1;22881:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22926:62;22943:4;22958:15;22976:11;22926:8;:62::i;:::-;23027:15;:66;;;23108:11;23134:1;23178:4;23205;23225:15;23027:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22725:534;22669:590;:::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;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700: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:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:86::-;6154:7;6194:4;6187:5;6183:16;6172:27;;6119:86;;;:::o;6211:112::-;6294:22;6310:5;6294:22;:::i;:::-;6289:3;6282:35;6211:112;;:::o;6329:214::-;6418:4;6456:2;6445:9;6441:18;6433:26;;6469:67;6533:1;6522:9;6518:17;6509:6;6469:67;:::i;:::-;6329:214;;;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6549:118;;:::o;6673:222::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:71;6885:1;6874:9;6870:17;6861:6;6817:71;:::i;:::-;6673:222;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:180;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7210:281;7293:27;7315:4;7293:27;:::i;:::-;7285:6;7281:40;7423:6;7411:10;7408:22;7387:18;7375:10;7372:34;7369:62;7366:88;;;7434:18;;:::i;:::-;7366:88;7474:10;7470:2;7463:22;7253:238;7210:281;;:::o;7497:129::-;7531:6;7558:20;;:::i;:::-;7548:30;;7587:33;7615:4;7607:6;7587:33;:::i;:::-;7497:129;;;:::o;7632:311::-;7709:4;7799:18;7791:6;7788:30;7785:56;;;7821:18;;:::i;:::-;7785:56;7871:4;7863:6;7859:17;7851:25;;7931:4;7925;7921:15;7913:23;;7632:311;;;:::o;7949:117::-;8058:1;8055;8048:12;8089:710;8185:5;8210:81;8226:64;8283:6;8226:64;:::i;:::-;8210:81;:::i;:::-;8201:90;;8311:5;8340:6;8333:5;8326:21;8374:4;8367:5;8363:16;8356:23;;8427:4;8419:6;8415:17;8407:6;8403:30;8456:3;8448:6;8445:15;8442:122;;;8475:79;;:::i;:::-;8442:122;8590:6;8573:220;8607:6;8602:3;8599:15;8573:220;;;8682:3;8711:37;8744:3;8732:10;8711:37;:::i;:::-;8706:3;8699:50;8778:4;8773:3;8769:14;8762:21;;8649:144;8633:4;8628:3;8624:14;8617:21;;8573:220;;;8577:21;8191:608;;8089:710;;;;;:::o;8822:370::-;8893:5;8942:3;8935:4;8927:6;8923:17;8919:27;8909:122;;8950:79;;:::i;:::-;8909:122;9067:6;9054:20;9092:94;9182:3;9174:6;9167:4;9159:6;9155:17;9092:94;:::i;:::-;9083:103;;8899:293;8822:370;;;;:::o;9198:539::-;9282:6;9331:2;9319:9;9310:7;9306:23;9302:32;9299:119;;;9337:79;;:::i;:::-;9299:119;9485:1;9474:9;9470:17;9457:31;9515:18;9507:6;9504:30;9501:117;;;9537:79;;:::i;:::-;9501:117;9642:78;9712:7;9703:6;9692:9;9688:22;9642:78;:::i;:::-;9632:88;;9428:302;9198:539;;;;:::o;9743:116::-;9813:21;9828:5;9813:21;:::i;:::-;9806:5;9803:32;9793:60;;9849:1;9846;9839:12;9793:60;9743:116;:::o;9865:133::-;9908:5;9946:6;9933:20;9924:29;;9962:30;9986:5;9962:30;:::i;:::-;9865:133;;;;:::o;10004:468::-;10069:6;10077;10126:2;10114:9;10105:7;10101:23;10097:32;10094:119;;;10132:79;;:::i;:::-;10094:119;10252:1;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10223:117;10379:2;10405:50;10447:7;10438:6;10427:9;10423:22;10405:50;:::i;:::-;10395:60;;10350:115;10004:468;;;;;:::o;10478:474::-;10546:6;10554;10603:2;10591:9;10582:7;10578:23;10574:32;10571:119;;;10609:79;;:::i;:::-;10571:119;10729:1;10754:53;10799:7;10790:6;10779:9;10775:22;10754:53;:::i;:::-;10744:63;;10700:117;10856:2;10882:53;10927:7;10918:6;10907:9;10903:22;10882:53;:::i;:::-;10872:63;;10827:118;10478:474;;;;;:::o;10958:180::-;11006:77;11003:1;10996:88;11103:4;11100:1;11093:15;11127:4;11124:1;11117:15;11144:320;11188:6;11225:1;11219:4;11215:12;11205:22;;11272:1;11266:4;11262:12;11293:18;11283:81;;11349:4;11341:6;11337:17;11327:27;;11283:81;11411:2;11403:6;11400:14;11380:18;11377:38;11374:84;;;11430:18;;:::i;:::-;11374:84;11195:269;11144:320;;;:::o;11470:182::-;11610:34;11606:1;11598:6;11594:14;11587:58;11470:182;:::o;11658:366::-;11800:3;11821:67;11885:2;11880:3;11821:67;:::i;:::-;11814:74;;11897:93;11986:3;11897:93;:::i;:::-;12015:2;12010:3;12006:12;11999:19;;11658:366;;;:::o;12030:419::-;12196:4;12234:2;12223:9;12219:18;12211:26;;12283:9;12277:4;12273:20;12269:1;12258:9;12254:17;12247:47;12311:131;12437:4;12311:131;:::i;:::-;12303:139;;12030:419;;;:::o;12455:180::-;12503:77;12500:1;12493:88;12600:4;12597:1;12590:15;12624:4;12621:1;12614:15;12641:348;12681:7;12704:20;12722:1;12704:20;:::i;:::-;12699:25;;12738:20;12756:1;12738:20;:::i;:::-;12733:25;;12926:1;12858:66;12854:74;12851:1;12848:81;12843:1;12836:9;12829:17;12825:105;12822:131;;;12933:18;;:::i;:::-;12822:131;12981:1;12978;12974:9;12963:20;;12641:348;;;;:::o;12995:180::-;13043:77;13040:1;13033:88;13140:4;13137:1;13130:15;13164:4;13161:1;13154:15;13181:185;13221:1;13238:20;13256:1;13238:20;:::i;:::-;13233:25;;13272:20;13290:1;13272:20;:::i;:::-;13267:25;;13311:1;13301:35;;13316:18;;:::i;:::-;13301:35;13358:1;13355;13351:9;13346:14;;13181:185;;;;:::o;13372:234::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:17;13576:2;13568:6;13564:15;13557:42;13372:234;:::o;13612:366::-;13754:3;13775:67;13839:2;13834:3;13775:67;:::i;:::-;13768:74;;13851:93;13940:3;13851:93;:::i;:::-;13969:2;13964:3;13960:12;13953:19;;13612:366;;;:::o;13984:419::-;14150:4;14188:2;14177:9;14173:18;14165:26;;14237:9;14231:4;14227:20;14223:1;14212:9;14208:17;14201:47;14265:131;14391:4;14265:131;:::i;:::-;14257:139;;13984:419;;;:::o;14409:227::-;14549:34;14545:1;14537:6;14533:14;14526:58;14618:10;14613:2;14605:6;14601:15;14594:35;14409:227;:::o;14642:366::-;14784:3;14805:67;14869:2;14864:3;14805:67;:::i;:::-;14798:74;;14881:93;14970:3;14881:93;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;14642:366;;;:::o;15014:419::-;15180:4;15218:2;15207:9;15203:18;15195:26;;15267:9;15261:4;15257:20;15253:1;15242:9;15238:17;15231:47;15295:131;15421:4;15295:131;:::i;:::-;15287:139;;15014:419;;;:::o;15439:305::-;15479:3;15498:20;15516:1;15498:20;:::i;:::-;15493:25;;15532:20;15550:1;15532:20;:::i;:::-;15527:25;;15686:1;15618:66;15614:74;15611:1;15608:81;15605:107;;;15692:18;;:::i;:::-;15605:107;15736:1;15733;15729:9;15722:16;;15439:305;;;;:::o;15750:180::-;15798:77;15795:1;15788:88;15895:4;15892:1;15885:15;15919:4;15916:1;15909:15;15936:233;15975:3;15998:24;16016:5;15998:24;:::i;:::-;15989:33;;16044:66;16037:5;16034:77;16031:103;;;16114:18;;:::i;:::-;16031:103;16161:1;16154:5;16150:13;16143:20;;15936:233;;;:::o;16175:179::-;16315:31;16311:1;16303:6;16299:14;16292:55;16175:179;:::o;16360:366::-;16502:3;16523:67;16587:2;16582:3;16523:67;:::i;:::-;16516:74;;16599:93;16688:3;16599:93;:::i;:::-;16717:2;16712:3;16708:12;16701:19;;16360:366;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:244::-;17297:34;17293:1;17285:6;17281:14;17274:58;17366:27;17361:2;17353:6;17349:15;17342:52;17157:244;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:224::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:7;18408:2;18400:6;18396:15;18389:32;18204:224;:::o;18434:366::-;18576:3;18597:67;18661:2;18656:3;18597:67;:::i;:::-;18590:74;;18673:93;18762:3;18673:93;:::i;:::-;18791:2;18786:3;18782:12;18775:19;;18434:366;;;:::o;18806:419::-;18972:4;19010:2;18999:9;18995:18;18987:26;;19059:9;19053:4;19049:20;19045:1;19034:9;19030:17;19023:47;19087:131;19213:4;19087:131;:::i;:::-;19079:139;;18806:419;;;:::o;19231:223::-;19371:34;19367:1;19359:6;19355:14;19348:58;19440:6;19435:2;19427:6;19423:15;19416:31;19231:223;:::o;19460:366::-;19602:3;19623:67;19687:2;19682:3;19623:67;:::i;:::-;19616:74;;19699:93;19788:3;19699:93;:::i;:::-;19817:2;19812:3;19808:12;19801:19;;19460:366;;;:::o;19832:419::-;19998:4;20036:2;20025:9;20021:18;20013:26;;20085:9;20079:4;20075:20;20071:1;20060:9;20056:17;20049:47;20113:131;20239:4;20113:131;:::i;:::-;20105:139;;19832:419;;;:::o;20257:240::-;20397:34;20393:1;20385:6;20381:14;20374:58;20466:23;20461:2;20453:6;20449:15;20442:48;20257:240;:::o;20503:366::-;20645:3;20666:67;20730:2;20725:3;20666:67;:::i;:::-;20659:74;;20742:93;20831:3;20742:93;:::i;:::-;20860:2;20855:3;20851:12;20844:19;;20503:366;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;20875:419;;;:::o;21300:239::-;21440:34;21436:1;21428:6;21424:14;21417:58;21509:22;21504:2;21496:6;21492:15;21485:47;21300:239;:::o;21545:366::-;21687:3;21708:67;21772:2;21767:3;21708:67;:::i;:::-;21701:74;;21784:93;21873:3;21784:93;:::i;:::-;21902:2;21897:3;21893:12;21886:19;;21545:366;;;:::o;21917:419::-;22083:4;22121:2;22110:9;22106:18;22098:26;;22170:9;22164:4;22160:20;22156:1;22145:9;22141:17;22134:47;22198:131;22324:4;22198:131;:::i;:::-;22190:139;;21917:419;;;:::o;22342:225::-;22482:34;22478:1;22470:6;22466:14;22459:58;22551:8;22546:2;22538:6;22534:15;22527:33;22342:225;:::o;22573:366::-;22715:3;22736:67;22800:2;22795:3;22736:67;:::i;:::-;22729:74;;22812:93;22901:3;22812:93;:::i;:::-;22930:2;22925:3;22921:12;22914:19;;22573:366;;;:::o;22945:419::-;23111:4;23149:2;23138:9;23134:18;23126:26;;23198:9;23192:4;23188:20;23184:1;23173:9;23169:17;23162:47;23226:131;23352:4;23226:131;:::i;:::-;23218:139;;22945:419;;;:::o;23370:223::-;23510:34;23506:1;23498:6;23494:14;23487:58;23579:6;23574:2;23566:6;23562:15;23555:31;23370:223;:::o;23599:366::-;23741:3;23762:67;23826:2;23821:3;23762:67;:::i;:::-;23755:74;;23838:93;23927:3;23838:93;:::i;:::-;23956:2;23951:3;23947:12;23940:19;;23599:366;;;:::o;23971:419::-;24137:4;24175:2;24164:9;24160:18;24152:26;;24224:9;24218:4;24214:20;24210:1;24199:9;24195:17;24188:47;24252:131;24378:4;24252:131;:::i;:::-;24244:139;;23971:419;;;:::o;24396:221::-;24536:34;24532:1;24524:6;24520:14;24513:58;24605:4;24600:2;24592:6;24588:15;24581:29;24396:221;:::o;24623:366::-;24765:3;24786:67;24850:2;24845:3;24786:67;:::i;:::-;24779:74;;24862:93;24951:3;24862:93;:::i;:::-;24980:2;24975:3;24971:12;24964:19;;24623:366;;;:::o;24995:419::-;25161:4;25199:2;25188:9;25184:18;25176:26;;25248:9;25242:4;25238:20;25234:1;25223:9;25219:17;25212:47;25276:131;25402:4;25276:131;:::i;:::-;25268:139;;24995:419;;;:::o;25420:224::-;25560:34;25556:1;25548:6;25544:14;25537:58;25629:7;25624:2;25616:6;25612:15;25605:32;25420:224;:::o;25650:366::-;25792:3;25813:67;25877:2;25872:3;25813:67;:::i;:::-;25806:74;;25889:93;25978:3;25889:93;:::i;:::-;26007:2;26002:3;25998:12;25991:19;;25650:366;;;:::o;26022:419::-;26188:4;26226:2;26215:9;26211:18;26203:26;;26275:9;26269:4;26265:20;26261:1;26250:9;26246:17;26239:47;26303:131;26429:4;26303:131;:::i;:::-;26295:139;;26022:419;;;:::o;26447:222::-;26587:34;26583:1;26575:6;26571:14;26564:58;26656:5;26651:2;26643:6;26639:15;26632:30;26447:222;:::o;26675:366::-;26817:3;26838:67;26902:2;26897:3;26838:67;:::i;:::-;26831:74;;26914:93;27003:3;26914:93;:::i;:::-;27032:2;27027:3;27023:12;27016:19;;26675:366;;;:::o;27047:419::-;27213:4;27251:2;27240:9;27236:18;27228:26;;27300:9;27294:4;27290:20;27286:1;27275:9;27271:17;27264:47;27328:131;27454:4;27328:131;:::i;:::-;27320:139;;27047:419;;;:::o;27472:305::-;27612:34;27608:1;27600:6;27596:14;27589:58;27681:34;27676:2;27668:6;27664:15;27657:59;27750:19;27745:2;27737:6;27733:15;27726:44;27472:305;:::o;27783:366::-;27925:3;27946:67;28010:2;28005:3;27946:67;:::i;:::-;27939:74;;28022:93;28111:3;28022:93;:::i;:::-;28140:2;28135:3;28131:12;28124:19;;27783:366;;;:::o;28155:419::-;28321:4;28359:2;28348:9;28344:18;28336:26;;28408:9;28402:4;28398:20;28394:1;28383:9;28379:17;28372:47;28436:131;28562:4;28436:131;:::i;:::-;28428:139;;28155:419;;;:::o;28580:172::-;28720:24;28716:1;28708:6;28704:14;28697:48;28580:172;:::o;28758:366::-;28900:3;28921:67;28985:2;28980:3;28921:67;:::i;:::-;28914:74;;28997:93;29086:3;28997:93;:::i;:::-;29115:2;29110:3;29106:12;29099:19;;28758:366;;;:::o;29130:419::-;29296:4;29334:2;29323:9;29319:18;29311:26;;29383:9;29377:4;29373:20;29369:1;29358:9;29354:17;29347:47;29411:131;29537:4;29411:131;:::i;:::-;29403:139;;29130:419;;;:::o;29555:297::-;29695:34;29691:1;29683:6;29679:14;29672:58;29764:34;29759:2;29751:6;29747:15;29740:59;29833:11;29828:2;29820:6;29816:15;29809:36;29555:297;:::o;29858:366::-;30000:3;30021:67;30085:2;30080:3;30021:67;:::i;:::-;30014:74;;30097:93;30186:3;30097:93;:::i;:::-;30215:2;30210:3;30206:12;30199:19;;29858:366;;;:::o;30230:419::-;30396:4;30434:2;30423:9;30419:18;30411:26;;30483:9;30477:4;30473:20;30469:1;30458:9;30454:17;30447:47;30511:131;30637:4;30511:131;:::i;:::-;30503:139;;30230:419;;;:::o;30655:240::-;30795:34;30791:1;30783:6;30779:14;30772:58;30864:23;30859:2;30851:6;30847:15;30840:48;30655:240;:::o;30901:366::-;31043:3;31064:67;31128:2;31123:3;31064:67;:::i;:::-;31057:74;;31140:93;31229:3;31140:93;:::i;:::-;31258:2;31253:3;31249:12;31242:19;;30901:366;;;:::o;31273:419::-;31439:4;31477:2;31466:9;31462:18;31454:26;;31526:9;31520:4;31516:20;31512:1;31501:9;31497:17;31490:47;31554:131;31680:4;31554:131;:::i;:::-;31546:139;;31273:419;;;:::o;31698:169::-;31838:21;31834:1;31826:6;31822:14;31815:45;31698:169;:::o;31873:366::-;32015:3;32036:67;32100:2;32095:3;32036:67;:::i;:::-;32029:74;;32112:93;32201:3;32112:93;:::i;:::-;32230:2;32225:3;32221:12;32214:19;;31873:366;;;:::o;32245:419::-;32411:4;32449:2;32438:9;32434:18;32426:26;;32498:9;32492:4;32488:20;32484:1;32473:9;32469:17;32462:47;32526:131;32652:4;32526:131;:::i;:::-;32518:139;;32245:419;;;:::o;32670:241::-;32810:34;32806:1;32798:6;32794:14;32787:58;32879:24;32874:2;32866:6;32862:15;32855:49;32670:241;:::o;32917:366::-;33059:3;33080:67;33144:2;33139:3;33080:67;:::i;:::-;33073:74;;33156:93;33245:3;33156:93;:::i;:::-;33274:2;33269:3;33265:12;33258:19;;32917:366;;;:::o;33289:419::-;33455:4;33493:2;33482:9;33478:18;33470:26;;33542:9;33536:4;33532:20;33528:1;33517:9;33513:17;33506:47;33570:131;33696:4;33570:131;:::i;:::-;33562:139;;33289:419;;;:::o;33714:191::-;33754:4;33774:20;33792:1;33774:20;:::i;:::-;33769:25;;33808:20;33826:1;33808:20;:::i;:::-;33803:25;;33847:1;33844;33841:8;33838:34;;;33852:18;;:::i;:::-;33838:34;33897:1;33894;33890:9;33882:17;;33714:191;;;;:::o;33911:225::-;34051:34;34047:1;34039:6;34035:14;34028:58;34120:8;34115:2;34107:6;34103:15;34096:33;33911:225;:::o;34142:366::-;34284:3;34305:67;34369:2;34364:3;34305:67;:::i;:::-;34298:74;;34381:93;34470:3;34381:93;:::i;:::-;34499:2;34494:3;34490:12;34483:19;;34142:366;;;:::o;34514:419::-;34680:4;34718:2;34707:9;34703:18;34695:26;;34767:9;34761:4;34757:20;34753:1;34742:9;34738:17;34731:47;34795:131;34921:4;34795:131;:::i;:::-;34787:139;;34514:419;;;:::o;34939:147::-;35040:11;35077:3;35062:18;;34939:147;;;;:::o;35092:114::-;;:::o;35212:398::-;35371:3;35392:83;35473:1;35468:3;35392:83;:::i;:::-;35385:90;;35484:93;35573:3;35484:93;:::i;:::-;35602:1;35597:3;35593:11;35586:18;;35212:398;;;:::o;35616:379::-;35800:3;35822:147;35965:3;35822:147;:::i;:::-;35815:154;;35986:3;35979:10;;35616:379;;;:::o;36001:143::-;36058:5;36089:6;36083:13;36074:22;;36105:33;36132:5;36105:33;:::i;:::-;36001:143;;;;:::o;36150:351::-;36220:6;36269:2;36257:9;36248:7;36244:23;36240:32;36237:119;;;36275:79;;:::i;:::-;36237:119;36395:1;36420:64;36476:7;36467:6;36456:9;36452:22;36420:64;:::i;:::-;36410:74;;36366:128;36150:351;;;;:::o;36507:85::-;36552:7;36581:5;36570:16;;36507:85;;;:::o;36598:158::-;36656:9;36689:61;36707:42;36716:32;36742:5;36716:32;:::i;:::-;36707:42;:::i;:::-;36689:61;:::i;:::-;36676:74;;36598:158;;;:::o;36762:147::-;36857:45;36896:5;36857:45;:::i;:::-;36852:3;36845:58;36762:147;;:::o;36915:114::-;36982:6;37016:5;37010:12;37000:22;;36915:114;;;:::o;37035:184::-;37134:11;37168:6;37163:3;37156:19;37208:4;37203:3;37199:14;37184:29;;37035:184;;;;:::o;37225:132::-;37292:4;37315:3;37307:11;;37345:4;37340:3;37336:14;37328:22;;37225:132;;;:::o;37363:108::-;37440:24;37458:5;37440:24;:::i;:::-;37435:3;37428:37;37363:108;;:::o;37477:179::-;37546:10;37567:46;37609:3;37601:6;37567:46;:::i;:::-;37645:4;37640:3;37636:14;37622:28;;37477:179;;;;:::o;37662:113::-;37732:4;37764;37759:3;37755:14;37747:22;;37662:113;;;:::o;37811:732::-;37930:3;37959:54;38007:5;37959:54;:::i;:::-;38029:86;38108:6;38103:3;38029:86;:::i;:::-;38022:93;;38139:56;38189:5;38139:56;:::i;:::-;38218:7;38249:1;38234:284;38259:6;38256:1;38253:13;38234:284;;;38335:6;38329:13;38362:63;38421:3;38406:13;38362:63;:::i;:::-;38355:70;;38448:60;38501:6;38448:60;:::i;:::-;38438:70;;38294:224;38281:1;38278;38274:9;38269:14;;38234:284;;;38238:14;38534:3;38527:10;;37935:608;;;37811:732;;;;:::o;38549:831::-;38812:4;38850:3;38839:9;38835:19;38827:27;;38864:71;38932:1;38921:9;38917:17;38908:6;38864:71;:::i;:::-;38945:80;39021:2;39010:9;39006:18;38997:6;38945:80;:::i;:::-;39072:9;39066:4;39062:20;39057:2;39046:9;39042:18;39035:48;39100:108;39203:4;39194:6;39100:108;:::i;:::-;39092:116;;39218:72;39286:2;39275:9;39271:18;39262:6;39218:72;:::i;:::-;39300:73;39368:3;39357:9;39353:19;39344:6;39300:73;:::i;:::-;38549:831;;;;;;;;:::o

Swarm Source

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