ETH Price: $2,521.12 (-1.17%)

Token

Zulei (ZULEI)
 

Overview

Max Total Supply

1,000,000,000 ZULEI

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,000,000 ZULEI

Value
$0.00
0x4201783FEd8A78c797fddEE5cA058c88837b022a
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-15
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint256);

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

pragma solidity ^0.8.21;

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

pragma solidity ^0.8.21;

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

pragma solidity ^0.8.21;

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

pragma solidity ^0.8.21;


interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

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

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

pragma solidity ^0.8.21;

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

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

pragma solidity ^0.8.21;


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

pragma solidity ^0.8.21;


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

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

        return true;
    }

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

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

        return true;
    }

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

        _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 {}
}

pragma solidity ^0.8.21;

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

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

    bool private swapping;

    address private marketingWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public maxSwapAmount;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 private launchedAt;
    uint256 private launchedTime;
    uint256 public blocks;

    uint256 public buyTotalFees;

    uint256 public sellTotalFees;

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

    mapping(address => bool) public automatedMarketMakerPairs;

    mapping(uint256 => uint256) private blockSwaps;

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor() ERC20("Zulei", "ZULEI") {
        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 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = 10_000_000 * 1e18;
        maxWallet = 10_000_000 * 1e18;
        swapTokensAtAmount = 100_000 * 1e18;
        maxSwapAmount = 5_000_000 * 1e18;

        marketingWallet = msg.sender;

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

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function settrade(uint256 _blocks) external payable onlyOwner {
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        blocks = _blocks;
        tradingActive = true;
        swapEnabled = true;
        launchedAt = block.number;
        launchedTime = block.timestamp;
    }

    function removelimits() external onlyOwner {
        limitsInEffect = false;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        swapTokensAtAmount = newAmount * (10 ** 18);
    }

    function updateMaxSwap(uint256 newAmount) external onlyOwner {
        maxSwapAmount = newAmount * (10 ** 18);
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10 ** 18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10 ** 18);
    }

    function whitelistContract(address _whitelist, bool isWL) public onlyOwner {
        _isExcludedMaxTransactionAmount[_whitelist] = isWL;

        _isExcludedFromFees[_whitelist] = isWL;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

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

    function manualswap(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function manualsend() external {
        bool success;
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }

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

        _setAutomatedMarketMakerPair(pair, value);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(uint256 _marketingFee) external onlyOwner {
        buyTotalFees = _marketingFee;
    }

    function updateSellFees(uint256 _marketingFee) external onlyOwner {
        sellTotalFees = _marketingFee;
    }

    function updateFees(uint256 _buy, uint256 _sell) external onlyOwner {
        buyTotalFees = _buy;
        sellTotalFees = _sell;
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 18));
        }
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if ((launchedAt + blocks) >= block.number) {
                   
                    sellTotalFees = 0;
                    buyTotalFees = 0;
                }

                if (!tradingActive) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                //when 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 && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from]
                && !_isExcludedFromFees[to]
        ) {
            // Limit swaps per block
            if (blockSwaps[block.number] < 3) {
                swapping = true;

                swapBack();

                swapping = false;

                blockSwaps[block.number] = blockSwaps[block.number] + 1;
            }
        }

        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);
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
            }

            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 swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        bool success;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > maxSwapAmount) {
            contractBalance = maxSwapAmount;
        }

        // Halve the amount of liquidity tokens

        uint256 amountToSwapForETH = contractBalance;

        swapTokensForEth(amountToSwapForETH);

        uint256 totalETH = address(this).balance;

        (success,) = address(marketingWallet).call{value: totalETH}("");
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":"blocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[{"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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blocks","type":"uint256"}],"name":"settrade","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"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":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","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":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff02191690831515021790555034801561005d575f80fd5b506040518060400160405280600581526020017f5a756c65690000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5a554c454900000000000000000000000000000000000000000000000000000081525081600390816100d99190610b88565b5080600490816100e99190610b88565b5050506101086100fd61044360201b60201c565b61044a60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061013181600161050d60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610cb5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610237573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025b9190610cb5565b6040518363ffffffff1660e01b8152600401610278929190610cef565b6020604051808303815f875af1158015610294573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b89190610cb5565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506102fe60a051600161050d60201b60201c565b61031160a05160016105ed60201b60201c565b5f6b033b2e3c9fd0803ce800000090506a084595161401484a0000006007819055506a084595161401484a00000060098190555069152d02c7e14af68000006008819055506a0422ca8b0a00a425000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103c66103b961068b60201b60201c565b60016106b360201b60201c565b6103d73060016106b360201b60201c565b6103ea61dead60016106b360201b60201c565b6104086103fb61068b60201b60201c565b600161050d60201b60201c565b61041930600161050d60201b60201c565b61042c61dead600161050d60201b60201c565b61043c33826107e160201b60201c565b5050610eb1565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61051b61044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661053f61068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610595576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058c90610d70565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106c161044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166106e561068b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461073b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073290610d70565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516107d59190610da8565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084690610e0b565b60405180910390fd5b6108605f838361094460201b60201c565b8060025f8282546108719190610e56565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108c39190610e56565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109279190610e98565b60405180910390a36109405f838361094960201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806109c957607f821691505b6020821081036109dc576109db610985565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610a3e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a03565b610a488683610a03565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610a8c610a87610a8284610a60565b610a69565b610a60565b9050919050565b5f819050919050565b610aa583610a72565b610ab9610ab182610a93565b848454610a0f565b825550505050565b5f90565b610acd610ac1565b610ad8818484610a9c565b505050565b5b81811015610afb57610af05f82610ac5565b600181019050610ade565b5050565b601f821115610b4057610b11816109e2565b610b1a846109f4565b81016020851015610b29578190505b610b3d610b35856109f4565b830182610add565b50505b505050565b5f82821c905092915050565b5f610b605f1984600802610b45565b1980831691505092915050565b5f610b788383610b51565b9150826002028217905092915050565b610b918261094e565b67ffffffffffffffff811115610baa57610ba9610958565b5b610bb482546109b2565b610bbf828285610aff565b5f60209050601f831160018114610bf0575f8415610bde578287015190505b610be88582610b6d565b865550610c4f565b601f198416610bfe866109e2565b5f5b82811015610c2557848901518255600182019150602085019450602081019050610c00565b86831015610c425784890151610c3e601f891682610b51565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8482610c5b565b9050919050565b610c9481610c7a565b8114610c9e575f80fd5b50565b5f81519050610caf81610c8b565b92915050565b5f60208284031215610cca57610cc9610c57565b5b5f610cd784828501610ca1565b91505092915050565b610ce981610c7a565b82525050565b5f604082019050610d025f830185610ce0565b610d0f6020830184610ce0565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610d5a602083610d16565b9150610d6582610d26565b602082019050919050565b5f6020820190508181035f830152610d8781610d4e565b9050919050565b5f8115159050919050565b610da281610d8e565b82525050565b5f602082019050610dbb5f830184610d99565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610df5601f83610d16565b9150610e0082610dc1565b602082019050919050565b5f6020820190508181035f830152610e2281610de9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e6082610a60565b9150610e6b83610a60565b9250828201905080821115610e8357610e82610e29565b5b92915050565b610e9281610a60565b82525050565b5f602082019050610eab5f830184610e89565b92915050565b60805160a0516147d6610f0a5f395f81816110310152818161115b01526118ba01525f8181610be901528181610f4c01528181610f7a0152818161106d01528181612ed001528181612faf0152612fd601526147d65ff3fe60806040526004361061028b575f3560e01c80637571336a11610159578063bbc0c742116100c0578063d85ba06311610079578063d85ba0631461097a578063dd62ed3e146109a4578063e2f45605146109e0578063eba4c33314610a0a578063f2fde38b14610a32578063f8b45b0514610a5a57610292565b8063bbc0c74214610884578063c0246668146108ae578063c18bc195146108d6578063c8c8ebe4146108fe578063cce987d414610928578063d257b34f1461095257610292565b80639a7a23d6116101125780639a7a23d614610758578063a457c2d714610780578063a672990c146107bc578063a9059cbb146107e4578063aacebbe314610820578063b62496f51461084857610292565b80637571336a14610662578063881dce601461068a5780638da5cb5b146106b2578063924de9b7146106dc57806395d89b4114610704578063967ff23e1461072e57610292565b8063411ee514116101fd5780636db79437116101b65780636db79437146105805780636ddd1713146105a85780636fc3eaec146105d257806370a08231146105e8578063715018a61461062457806371fc46881461063a57610292565b8063411ee514146104a857806349bd5a5e146104c45780634a62bb65146104ee5780635e4ae81b14610518578063672434821461052e5780636a486a8e1461055657610292565b806318160ddd1161024f57806318160ddd1461038a578063203e727e146103b457806323b872dd146103dc57806327c8f83514610418578063313ce56714610442578063395093511461046c57610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150074a3146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a84565b6040516102b791906134ea565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e1919061359f565b610b14565b6040516102f391906135f7565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d9190613610565b610b31565b60405161032f91906135f7565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061363b565b610b4e565b005b34801561036b575f80fd5b50610374610be7565b60405161038191906136c1565b60405180910390f35b348015610395575f80fd5b5061039e610c0b565b6040516103ab91906136e9565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061363b565b610c14565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613702565b610d23565b60405161040f91906135f7565b60405180910390f35b348015610423575f80fd5b5061042c610e15565b6040516104399190613761565b60405180910390f35b34801561044d575f80fd5b50610456610e1b565b6040516104639190613795565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d919061359f565b610e23565b60405161049f91906135f7565b60405180910390f35b6104c260048036038101906104bd919061363b565b610eca565b005b3480156104cf575f80fd5b506104d8611159565b6040516104e59190613761565b60405180910390f35b3480156104f9575f80fd5b5061050261117d565b60405161050f91906135f7565b60405180910390f35b348015610523575f80fd5b5061052c61118f565b005b348015610539575f80fd5b50610554600480360381019061054f9190613864565b611226565b005b348015610561575f80fd5b5061056a6112c9565b60405161057791906136e9565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a191906138e2565b6112cf565b005b3480156105b3575f80fd5b506105bc61135d565b6040516105c991906135f7565b60405180910390f35b3480156105dd575f80fd5b506105e6611370565b005b3480156105f3575f80fd5b5061060e60048036038101906106099190613610565b6113fe565b60405161061b91906136e9565b60405180910390f35b34801561062f575f80fd5b50610638611443565b005b348015610645575f80fd5b50610660600480360381019061065b919061363b565b6114ca565b005b34801561066d575f80fd5b506106886004803603810190610683919061394a565b611550565b005b348015610695575f80fd5b506106b060048036038101906106ab919061363b565b611624565b005b3480156106bd575f80fd5b506106c66116e5565b6040516106d39190613761565b60405180910390f35b3480156106e7575f80fd5b5061070260048036038101906106fd9190613988565b61170d565b005b34801561070f575f80fd5b506107186117a6565b60405161072591906134ea565b60405180910390f35b348015610739575f80fd5b50610742611836565b60405161074f91906136e9565b60405180910390f35b348015610763575f80fd5b5061077e6004803603810190610779919061394a565b61183c565b005b34801561078b575f80fd5b506107a660048036038101906107a1919061359f565b611954565b6040516107b391906135f7565b60405180910390f35b3480156107c7575f80fd5b506107e260048036038101906107dd919061394a565b611a3a565b005b3480156107ef575f80fd5b5061080a6004803603810190610805919061359f565b611b62565b60405161081791906135f7565b60405180910390f35b34801561082b575f80fd5b5061084660048036038101906108419190613610565b611b7f565b005b348015610853575f80fd5b5061086e60048036038101906108699190613610565b611cb9565b60405161087b91906135f7565b60405180910390f35b34801561088f575f80fd5b50610898611cd6565b6040516108a591906135f7565b60405180910390f35b3480156108b9575f80fd5b506108d460048036038101906108cf919061394a565b611ce9565b005b3480156108e1575f80fd5b506108fc60048036038101906108f7919061363b565b611e0b565b005b348015610909575f80fd5b50610912611f1a565b60405161091f91906136e9565b60405180910390f35b348015610933575f80fd5b5061093c611f20565b60405161094991906136e9565b60405180910390f35b34801561095d575f80fd5b506109786004803603810190610973919061363b565b611f26565b005b348015610985575f80fd5b5061098e611fbf565b60405161099b91906136e9565b60405180910390f35b3480156109af575f80fd5b506109ca60048036038101906109c591906139b3565b611fc5565b6040516109d791906136e9565b60405180910390f35b3480156109eb575f80fd5b506109f4612047565b604051610a0191906136e9565b60405180910390f35b348015610a15575f80fd5b50610a306004803603810190610a2b919061363b565b61204d565b005b348015610a3d575f80fd5b50610a586004803603810190610a539190613610565b6120d3565b005b348015610a65575f80fd5b50610a6e6121c9565b604051610a7b91906136e9565b60405180910390f35b606060038054610a9390613a1e565b80601f0160208091040260200160405190810160405280929190818152602001828054610abf90613a1e565b8015610b0a5780601f10610ae157610100808354040283529160200191610b0a565b820191905f5260205f20905b815481529060010190602001808311610aed57829003601f168201915b5050505050905090565b5f610b27610b206121cf565b84846121d6565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b566121cf565b73ffffffffffffffffffffffffffffffffffffffff16610b746116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190613a98565b60405180910390fd5b670de0b6b3a764000081610bde9190613ae3565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610c1c6121cf565b73ffffffffffffffffffffffffffffffffffffffff16610c3a6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613a98565b60405180910390fd5b670de0b6b3a76400006103e86001610ca6610c0b565b610cb09190613ae3565b610cba9190613b51565b610cc49190613b51565b811015610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90613bf1565b60405180910390fd5b670de0b6b3a764000081610d1a9190613ae3565b60078190555050565b5f610d2f848484612399565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d766121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90613c7f565b60405180910390fd5b610e0985610e016121cf565b8584036121d6565b60019150509392505050565b61dead81565b5f6012905090565b5f610ec0610e2f6121cf565b848460015f610e3c6121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ebb9190613c9d565b6121d6565b6001905092915050565b610ed26121cf565b73ffffffffffffffffffffffffffffffffffffffff16610ef06116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90613a98565b60405180910390fd5b610f78307f0000000000000000000000000000000000000000000000000000000000000000610f73610c0b565b6121d6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fbf306113fe565b5f80610fc96116e5565b426040518863ffffffff1660e01b8152600401610feb96959493929190613d09565b60606040518083038185885af1158015611007573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061102c9190613d7c565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110ca929190613dcc565b6020604051808303815f875af11580156110e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110a9190613e07565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b6111976121cf565b73ffffffffffffffffffffffffffffffffffffffff166111b56116e5565b73ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290613a98565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b5f8484905011801561123d57508383905082829050145b611245575f80fd5b5f3390505f5b858590508110156112c1576112b48287878481811061126d5761126c613e32565b5b90506020020160208101906112829190613610565b670de0b6b3a764000087878681811061129e5761129d613e32565b5b905060200201356112af9190613ae3565b612399565b808060010191505061124b565b505050505050565b60105481565b6112d76121cf565b73ffffffffffffffffffffffffffffffffffffffff166112f56116e5565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290613a98565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516113b690613e8c565b5f6040518083038185875af1925050503d805f81146113f0576040519150601f19603f3d011682016040523d82523d5f602084013e6113f5565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61144b6121cf565b73ffffffffffffffffffffffffffffffffffffffff166114696116e5565b73ffffffffffffffffffffffffffffffffffffffff16146114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690613a98565b60405180910390fd5b6114c85f612d70565b565b6114d26121cf565b73ffffffffffffffffffffffffffffffffffffffff166114f06116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90613a98565b60405180910390fd5b80600f8190555050565b6115586121cf565b73ffffffffffffffffffffffffffffffffffffffff166115766116e5565b73ffffffffffffffffffffffffffffffffffffffff16146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c390613a98565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116646121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611683575f80fd5b61168c306113fe565b811115801561169a57505f81115b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613eea565b60405180910390fd5b6116e281612e33565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117156121cf565b73ffffffffffffffffffffffffffffffffffffffff166117336116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090613a98565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546117b590613a1e565b80601f01602080910402602001604051908101604052809291908181526020018280546117e190613a1e565b801561182c5780601f106118035761010080835404028352916020019161182c565b820191905f5260205f20905b81548152906001019060200180831161180f57829003601f168201915b5050505050905090565b600e5481565b6118446121cf565b73ffffffffffffffffffffffffffffffffffffffff166118626116e5565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90613a98565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90613f78565b60405180910390fd5b6119508282613066565b5050565b5f8060015f6119616121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290614006565b60405180910390fd5b611a2f611a266121cf565b858584036121d6565b600191505092915050565b611a426121cf565b73ffffffffffffffffffffffffffffffffffffffff16611a606116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613a98565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611b75611b6e6121cf565b8484612399565b6001905092915050565b611b876121cf565b73ffffffffffffffffffffffffffffffffffffffff16611ba56116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613a98565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611cf16121cf565b73ffffffffffffffffffffffffffffffffffffffff16611d0f6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613a98565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611dff91906135f7565b60405180910390a25050565b611e136121cf565b73ffffffffffffffffffffffffffffffffffffffff16611e316116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e90613a98565b60405180910390fd5b670de0b6b3a76400006103e86005611e9d610c0b565b611ea79190613ae3565b611eb19190613b51565b611ebb9190613b51565b811015611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490614094565b60405180910390fd5b670de0b6b3a764000081611f119190613ae3565b60098190555050565b60075481565b600a5481565b611f2e6121cf565b73ffffffffffffffffffffffffffffffffffffffff16611f4c6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990613a98565b60405180910390fd5b670de0b6b3a764000081611fb69190613ae3565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120556121cf565b73ffffffffffffffffffffffffffffffffffffffff166120736116e5565b73ffffffffffffffffffffffffffffffffffffffff16146120c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c090613a98565b60405180910390fd5b8060108190555050565b6120db6121cf565b73ffffffffffffffffffffffffffffffffffffffff166120f96116e5565b73ffffffffffffffffffffffffffffffffffffffff161461214f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214690613a98565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b490614122565b60405180910390fd5b6121c681612d70565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b906141b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061423e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238c91906136e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe906142cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c9061435a565b60405180910390fd5b5f810361248c5761248783835f613104565b612d6b565b600b5f9054906101000a900460ff1615612995576124a86116e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251657506124e66116e5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612588575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125a15750600560149054906101000a900460ff16155b156129945743600e54600c546125b79190613c9d565b106125cb575f6010819055505f600f819055505b600b60019054906101000a900460ff166126ba5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061267a575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b0906143c2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612757575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127fe576007548111156127a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279890614450565b60405180910390fd5b6009546127ad836113fe565b826127b89190613c9d565b11156127f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f0906144b8565b60405180910390fd5b612993565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289b575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ea576007548111156128e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dc90614546565b60405180910390fd5b612992565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661299157600954612944836113fe565b8261294f9190613c9d565b1115612990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612987906144b8565b60405180910390fd5b5b5b5b5b5b5f61299f306113fe565b90505f60085482101590508080156129c35750600b60029054906101000a900460ff165b80156129dc5750600560149054906101000a900460ff16155b8015612a2f575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a82575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad5575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6657600360145f4381526020019081526020015f20541015612b65576001600560146101000a81548160ff021916908315150217905550612b17613379565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b4f9190613c9d565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c15575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c1e575f90505b5f8115612d5b5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7c57505f601054115b15612cb057612ca96064612c9b6010548861344690919063ffffffff16565b61345b90919063ffffffff16565b9050612d38565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0757505f600f54115b15612d3757612d346064612d26600f548861344690919063ffffffff16565b61345b90919063ffffffff16565b90505b5b5f811115612d4c57612d4b873083613104565b5b8085612d589190614564565b94505b612d66878787613104565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4f57612e4e614597565b5b604051908082528060200260200182016040528015612e7d5781602001602082028036833780820191505090505b50905030815f81518110612e9457612e93613e32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5b91906145d8565b81600181518110612f6f57612f6e613e32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd4307f0000000000000000000000000000000000000000000000000000000000000000846121d6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130359594939291906146ba565b5f604051808303815f87803b15801561304c575f80fd5b505af115801561305e573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613172576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613169906142cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d79061435a565b60405180910390fd5b6131eb838383613470565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561326e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326590614782565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fc9190613c9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161336091906136e9565b60405180910390a3613373848484613475565b50505050565b5f613383306113fe565b90505f808203613394575050613444565b600a548211156133a457600a5491505b5f8290506133b181612e33565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133fa90613e8c565b5f6040518083038185875af1925050503d805f8114613434576040519150601f19603f3d011682016040523d82523d5f602084013e613439565b606091505b505080935050505050505b565b5f81836134539190613ae3565b905092915050565b5f81836134689190613b51565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6134bc8261347a565b6134c68185613484565b93506134d6818560208601613494565b6134df816134a2565b840191505092915050565b5f6020820190508181035f83015261350281846134b2565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61353b82613512565b9050919050565b61354b81613531565b8114613555575f80fd5b50565b5f8135905061356681613542565b92915050565b5f819050919050565b61357e8161356c565b8114613588575f80fd5b50565b5f8135905061359981613575565b92915050565b5f80604083850312156135b5576135b461350a565b5b5f6135c285828601613558565b92505060206135d38582860161358b565b9150509250929050565b5f8115159050919050565b6135f1816135dd565b82525050565b5f60208201905061360a5f8301846135e8565b92915050565b5f602082840312156136255761362461350a565b5b5f61363284828501613558565b91505092915050565b5f602082840312156136505761364f61350a565b5b5f61365d8482850161358b565b91505092915050565b5f819050919050565b5f61368961368461367f84613512565b613666565b613512565b9050919050565b5f61369a8261366f565b9050919050565b5f6136ab82613690565b9050919050565b6136bb816136a1565b82525050565b5f6020820190506136d45f8301846136b2565b92915050565b6136e38161356c565b82525050565b5f6020820190506136fc5f8301846136da565b92915050565b5f805f606084860312156137195761371861350a565b5b5f61372686828701613558565b935050602061373786828701613558565b92505060406137488682870161358b565b9150509250925092565b61375b81613531565b82525050565b5f6020820190506137745f830184613752565b92915050565b5f60ff82169050919050565b61378f8161377a565b82525050565b5f6020820190506137a85f830184613786565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137cf576137ce6137ae565b5b8235905067ffffffffffffffff8111156137ec576137eb6137b2565b5b602083019150836020820283011115613808576138076137b6565b5b9250929050565b5f8083601f840112613824576138236137ae565b5b8235905067ffffffffffffffff811115613841576138406137b2565b5b60208301915083602082028301111561385d5761385c6137b6565b5b9250929050565b5f805f806040858703121561387c5761387b61350a565b5b5f85013567ffffffffffffffff8111156138995761389861350e565b5b6138a5878288016137ba565b9450945050602085013567ffffffffffffffff8111156138c8576138c761350e565b5b6138d48782880161380f565b925092505092959194509250565b5f80604083850312156138f8576138f761350a565b5b5f6139058582860161358b565b92505060206139168582860161358b565b9150509250929050565b613929816135dd565b8114613933575f80fd5b50565b5f8135905061394481613920565b92915050565b5f80604083850312156139605761395f61350a565b5b5f61396d85828601613558565b925050602061397e85828601613936565b9150509250929050565b5f6020828403121561399d5761399c61350a565b5b5f6139aa84828501613936565b91505092915050565b5f80604083850312156139c9576139c861350a565b5b5f6139d685828601613558565b92505060206139e785828601613558565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a3557607f821691505b602082108103613a4857613a476139f1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a82602083613484565b9150613a8d82613a4e565b602082019050919050565b5f6020820190508181035f830152613aaf81613a76565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aed8261356c565b9150613af88361356c565b9250828202613b068161356c565b91508282048414831517613b1d57613b1c613ab6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b5b8261356c565b9150613b668361356c565b925082613b7657613b75613b24565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613bdb602f83613484565b9150613be682613b81565b604082019050919050565b5f6020820190508181035f830152613c0881613bcf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613c69602883613484565b9150613c7482613c0f565b604082019050919050565b5f6020820190508181035f830152613c9681613c5d565b9050919050565b5f613ca78261356c565b9150613cb28361356c565b9250828201905080821115613cca57613cc9613ab6565b5b92915050565b5f819050919050565b5f613cf3613cee613ce984613cd0565b613666565b61356c565b9050919050565b613d0381613cd9565b82525050565b5f60c082019050613d1c5f830189613752565b613d2960208301886136da565b613d366040830187613cfa565b613d436060830186613cfa565b613d506080830185613752565b613d5d60a08301846136da565b979650505050505050565b5f81519050613d7681613575565b92915050565b5f805f60608486031215613d9357613d9261350a565b5b5f613da086828701613d68565b9350506020613db186828701613d68565b9250506040613dc286828701613d68565b9150509250925092565b5f604082019050613ddf5f830185613752565b613dec60208301846136da565b9392505050565b5f81519050613e0181613920565b92915050565b5f60208284031215613e1c57613e1b61350a565b5b5f613e2984828501613df3565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f613e775f83613e5f565b9150613e8282613e69565b5f82019050919050565b5f613e9682613e6c565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613ed4600c83613484565b9150613edf82613ea0565b602082019050919050565b5f6020820190508181035f830152613f0181613ec8565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613f62603983613484565b9150613f6d82613f08565b604082019050919050565b5f6020820190508181035f830152613f8f81613f56565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ff0602583613484565b9150613ffb82613f96565b604082019050919050565b5f6020820190508181035f83015261401d81613fe4565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61407e602483613484565b915061408982614024565b604082019050919050565b5f6020820190508181035f8301526140ab81614072565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61410c602683613484565b9150614117826140b2565b604082019050919050565b5f6020820190508181035f83015261413981614100565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61419a602483613484565b91506141a582614140565b604082019050919050565b5f6020820190508181035f8301526141c78161418e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614228602283613484565b9150614233826141ce565b604082019050919050565b5f6020820190508181035f8301526142558161421c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142b6602583613484565b91506142c18261425c565b604082019050919050565b5f6020820190508181035f8301526142e3816142aa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614344602383613484565b915061434f826142ea565b604082019050919050565b5f6020820190508181035f83015261437181614338565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143ac601683613484565b91506143b782614378565b602082019050919050565b5f6020820190508181035f8301526143d9816143a0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61443a603583613484565b9150614445826143e0565b604082019050919050565b5f6020820190508181035f8301526144678161442e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144a2601383613484565b91506144ad8261446e565b602082019050919050565b5f6020820190508181035f8301526144cf81614496565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614530603683613484565b915061453b826144d6565b604082019050919050565b5f6020820190508181035f83015261455d81614524565b9050919050565b5f61456e8261356c565b91506145798361356c565b925082820390508181111561459157614590613ab6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145d281613542565b92915050565b5f602082840312156145ed576145ec61350a565b5b5f6145fa848285016145c4565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61463581613531565b82525050565b5f614646838361462c565b60208301905092915050565b5f602082019050919050565b5f61466882614603565b614672818561460d565b935061467d8361461d565b805f5b838110156146ad578151614694888261463b565b975061469f83614652565b925050600181019050614680565b5085935050505092915050565b5f60a0820190506146cd5f8301886136da565b6146da6020830187613cfa565b81810360408301526146ec818661465e565b90506146fb6060830185613752565b61470860808301846136da565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61476c602683613484565b915061477782614712565b604082019050919050565b5f6020820190508181035f83015261479981614760565b905091905056fea26469706673582212201ca32ffdcb2b8c67d69ddf0409f0268218c543c3c513d89162c2e3c7f16d24db64736f6c63430008190033

Deployed Bytecode

0x60806040526004361061028b575f3560e01c80637571336a11610159578063bbc0c742116100c0578063d85ba06311610079578063d85ba0631461097a578063dd62ed3e146109a4578063e2f45605146109e0578063eba4c33314610a0a578063f2fde38b14610a32578063f8b45b0514610a5a57610292565b8063bbc0c74214610884578063c0246668146108ae578063c18bc195146108d6578063c8c8ebe4146108fe578063cce987d414610928578063d257b34f1461095257610292565b80639a7a23d6116101125780639a7a23d614610758578063a457c2d714610780578063a672990c146107bc578063a9059cbb146107e4578063aacebbe314610820578063b62496f51461084857610292565b80637571336a14610662578063881dce601461068a5780638da5cb5b146106b2578063924de9b7146106dc57806395d89b4114610704578063967ff23e1461072e57610292565b8063411ee514116101fd5780636db79437116101b65780636db79437146105805780636ddd1713146105a85780636fc3eaec146105d257806370a08231146105e8578063715018a61461062457806371fc46881461063a57610292565b8063411ee514146104a857806349bd5a5e146104c45780634a62bb65146104ee5780635e4ae81b14610518578063672434821461052e5780636a486a8e1461055657610292565b806318160ddd1161024f57806318160ddd1461038a578063203e727e146103b457806323b872dd146103dc57806327c8f83514610418578063313ce56714610442578063395093511461046c57610292565b806306fdde0314610296578063095ea7b3146102c057806310d5de53146102fc578063150074a3146103385780631694505e1461036057610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa610a84565b6040516102b791906134ea565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e1919061359f565b610b14565b6040516102f391906135f7565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d9190613610565b610b31565b60405161032f91906135f7565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061363b565b610b4e565b005b34801561036b575f80fd5b50610374610be7565b60405161038191906136c1565b60405180910390f35b348015610395575f80fd5b5061039e610c0b565b6040516103ab91906136e9565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061363b565b610c14565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190613702565b610d23565b60405161040f91906135f7565b60405180910390f35b348015610423575f80fd5b5061042c610e15565b6040516104399190613761565b60405180910390f35b34801561044d575f80fd5b50610456610e1b565b6040516104639190613795565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d919061359f565b610e23565b60405161049f91906135f7565b60405180910390f35b6104c260048036038101906104bd919061363b565b610eca565b005b3480156104cf575f80fd5b506104d8611159565b6040516104e59190613761565b60405180910390f35b3480156104f9575f80fd5b5061050261117d565b60405161050f91906135f7565b60405180910390f35b348015610523575f80fd5b5061052c61118f565b005b348015610539575f80fd5b50610554600480360381019061054f9190613864565b611226565b005b348015610561575f80fd5b5061056a6112c9565b60405161057791906136e9565b60405180910390f35b34801561058b575f80fd5b506105a660048036038101906105a191906138e2565b6112cf565b005b3480156105b3575f80fd5b506105bc61135d565b6040516105c991906135f7565b60405180910390f35b3480156105dd575f80fd5b506105e6611370565b005b3480156105f3575f80fd5b5061060e60048036038101906106099190613610565b6113fe565b60405161061b91906136e9565b60405180910390f35b34801561062f575f80fd5b50610638611443565b005b348015610645575f80fd5b50610660600480360381019061065b919061363b565b6114ca565b005b34801561066d575f80fd5b506106886004803603810190610683919061394a565b611550565b005b348015610695575f80fd5b506106b060048036038101906106ab919061363b565b611624565b005b3480156106bd575f80fd5b506106c66116e5565b6040516106d39190613761565b60405180910390f35b3480156106e7575f80fd5b5061070260048036038101906106fd9190613988565b61170d565b005b34801561070f575f80fd5b506107186117a6565b60405161072591906134ea565b60405180910390f35b348015610739575f80fd5b50610742611836565b60405161074f91906136e9565b60405180910390f35b348015610763575f80fd5b5061077e6004803603810190610779919061394a565b61183c565b005b34801561078b575f80fd5b506107a660048036038101906107a1919061359f565b611954565b6040516107b391906135f7565b60405180910390f35b3480156107c7575f80fd5b506107e260048036038101906107dd919061394a565b611a3a565b005b3480156107ef575f80fd5b5061080a6004803603810190610805919061359f565b611b62565b60405161081791906135f7565b60405180910390f35b34801561082b575f80fd5b5061084660048036038101906108419190613610565b611b7f565b005b348015610853575f80fd5b5061086e60048036038101906108699190613610565b611cb9565b60405161087b91906135f7565b60405180910390f35b34801561088f575f80fd5b50610898611cd6565b6040516108a591906135f7565b60405180910390f35b3480156108b9575f80fd5b506108d460048036038101906108cf919061394a565b611ce9565b005b3480156108e1575f80fd5b506108fc60048036038101906108f7919061363b565b611e0b565b005b348015610909575f80fd5b50610912611f1a565b60405161091f91906136e9565b60405180910390f35b348015610933575f80fd5b5061093c611f20565b60405161094991906136e9565b60405180910390f35b34801561095d575f80fd5b506109786004803603810190610973919061363b565b611f26565b005b348015610985575f80fd5b5061098e611fbf565b60405161099b91906136e9565b60405180910390f35b3480156109af575f80fd5b506109ca60048036038101906109c591906139b3565b611fc5565b6040516109d791906136e9565b60405180910390f35b3480156109eb575f80fd5b506109f4612047565b604051610a0191906136e9565b60405180910390f35b348015610a15575f80fd5b50610a306004803603810190610a2b919061363b565b61204d565b005b348015610a3d575f80fd5b50610a586004803603810190610a539190613610565b6120d3565b005b348015610a65575f80fd5b50610a6e6121c9565b604051610a7b91906136e9565b60405180910390f35b606060038054610a9390613a1e565b80601f0160208091040260200160405190810160405280929190818152602001828054610abf90613a1e565b8015610b0a5780601f10610ae157610100808354040283529160200191610b0a565b820191905f5260205f20905b815481529060010190602001808311610aed57829003601f168201915b5050505050905090565b5f610b27610b206121cf565b84846121d6565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b566121cf565b73ffffffffffffffffffffffffffffffffffffffff16610b746116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190613a98565b60405180910390fd5b670de0b6b3a764000081610bde9190613ae3565b600a8190555050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b610c1c6121cf565b73ffffffffffffffffffffffffffffffffffffffff16610c3a6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790613a98565b60405180910390fd5b670de0b6b3a76400006103e86001610ca6610c0b565b610cb09190613ae3565b610cba9190613b51565b610cc49190613b51565b811015610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90613bf1565b60405180910390fd5b670de0b6b3a764000081610d1a9190613ae3565b60078190555050565b5f610d2f848484612399565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d766121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90613c7f565b60405180910390fd5b610e0985610e016121cf565b8584036121d6565b60019150509392505050565b61dead81565b5f6012905090565b5f610ec0610e2f6121cf565b848460015f610e3c6121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610ebb9190613c9d565b6121d6565b6001905092915050565b610ed26121cf565b73ffffffffffffffffffffffffffffffffffffffff16610ef06116e5565b73ffffffffffffffffffffffffffffffffffffffff1614610f46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3d90613a98565b60405180910390fd5b610f78307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d610f73610c0b565b6121d6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fbf306113fe565b5f80610fc96116e5565b426040518863ffffffff1660e01b8152600401610feb96959493929190613d09565b60606040518083038185885af1158015611007573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061102c9190613d7c565b5050507f00000000000000000000000068eb4a8752e85d1861f91ef76dc966969071e77473ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110ca929190613dcc565b6020604051808303815f875af11580156110e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110a9190613e07565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b7f00000000000000000000000068eb4a8752e85d1861f91ef76dc966969071e77481565b600b5f9054906101000a900460ff1681565b6111976121cf565b73ffffffffffffffffffffffffffffffffffffffff166111b56116e5565b73ffffffffffffffffffffffffffffffffffffffff161461120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290613a98565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b5f8484905011801561123d57508383905082829050145b611245575f80fd5b5f3390505f5b858590508110156112c1576112b48287878481811061126d5761126c613e32565b5b90506020020160208101906112829190613610565b670de0b6b3a764000087878681811061129e5761129d613e32565b5b905060200201356112af9190613ae3565b612399565b808060010191505061124b565b505050505050565b60105481565b6112d76121cf565b73ffffffffffffffffffffffffffffffffffffffff166112f56116e5565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290613a98565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516113b690613e8c565b5f6040518083038185875af1925050503d805f81146113f0576040519150601f19603f3d011682016040523d82523d5f602084013e6113f5565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61144b6121cf565b73ffffffffffffffffffffffffffffffffffffffff166114696116e5565b73ffffffffffffffffffffffffffffffffffffffff16146114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690613a98565b60405180910390fd5b6114c85f612d70565b565b6114d26121cf565b73ffffffffffffffffffffffffffffffffffffffff166114f06116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90613a98565b60405180910390fd5b80600f8190555050565b6115586121cf565b73ffffffffffffffffffffffffffffffffffffffff166115766116e5565b73ffffffffffffffffffffffffffffffffffffffff16146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c390613a98565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116646121cf565b73ffffffffffffffffffffffffffffffffffffffff1614611683575f80fd5b61168c306113fe565b811115801561169a57505f81115b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613eea565b60405180910390fd5b6116e281612e33565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117156121cf565b73ffffffffffffffffffffffffffffffffffffffff166117336116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090613a98565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546117b590613a1e565b80601f01602080910402602001604051908101604052809291908181526020018280546117e190613a1e565b801561182c5780601f106118035761010080835404028352916020019161182c565b820191905f5260205f20905b81548152906001019060200180831161180f57829003601f168201915b5050505050905090565b600e5481565b6118446121cf565b73ffffffffffffffffffffffffffffffffffffffff166118626116e5565b73ffffffffffffffffffffffffffffffffffffffff16146118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af90613a98565b60405180910390fd5b7f00000000000000000000000068eb4a8752e85d1861f91ef76dc966969071e77473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90613f78565b60405180910390fd5b6119508282613066565b5050565b5f8060015f6119616121cf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290614006565b60405180910390fd5b611a2f611a266121cf565b858584036121d6565b600191505092915050565b611a426121cf565b73ffffffffffffffffffffffffffffffffffffffff16611a606116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613a98565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611b75611b6e6121cf565b8484612399565b6001905092915050565b611b876121cf565b73ffffffffffffffffffffffffffffffffffffffff16611ba56116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613a98565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611cf16121cf565b73ffffffffffffffffffffffffffffffffffffffff16611d0f6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c90613a98565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611dff91906135f7565b60405180910390a25050565b611e136121cf565b73ffffffffffffffffffffffffffffffffffffffff16611e316116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e90613a98565b60405180910390fd5b670de0b6b3a76400006103e86005611e9d610c0b565b611ea79190613ae3565b611eb19190613b51565b611ebb9190613b51565b811015611efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef490614094565b60405180910390fd5b670de0b6b3a764000081611f119190613ae3565b60098190555050565b60075481565b600a5481565b611f2e6121cf565b73ffffffffffffffffffffffffffffffffffffffff16611f4c6116e5565b73ffffffffffffffffffffffffffffffffffffffff1614611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990613a98565b60405180910390fd5b670de0b6b3a764000081611fb69190613ae3565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120556121cf565b73ffffffffffffffffffffffffffffffffffffffff166120736116e5565b73ffffffffffffffffffffffffffffffffffffffff16146120c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c090613a98565b60405180910390fd5b8060108190555050565b6120db6121cf565b73ffffffffffffffffffffffffffffffffffffffff166120f96116e5565b73ffffffffffffffffffffffffffffffffffffffff161461214f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214690613a98565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b490614122565b60405180910390fd5b6121c681612d70565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b906141b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a99061423e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161238c91906136e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe906142cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c9061435a565b60405180910390fd5b5f810361248c5761248783835f613104565b612d6b565b600b5f9054906101000a900460ff1615612995576124a86116e5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251657506124e66116e5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612588575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125a15750600560149054906101000a900460ff16155b156129945743600e54600c546125b79190613c9d565b106125cb575f6010819055505f600f819055505b600b60019054906101000a900460ff166126ba5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061267a575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b0906143c2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612757575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127fe576007548111156127a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279890614450565b60405180910390fd5b6009546127ad836113fe565b826127b89190613c9d565b11156127f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f0906144b8565b60405180910390fd5b612993565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289b575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ea576007548111156128e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128dc90614546565b60405180910390fd5b612992565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661299157600954612944836113fe565b8261294f9190613c9d565b1115612990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612987906144b8565b60405180910390fd5b5b5b5b5b5b5f61299f306113fe565b90505f60085482101590508080156129c35750600b60029054906101000a900460ff165b80156129dc5750600560149054906101000a900460ff16155b8015612a2f575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a82575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad5575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6657600360145f4381526020019081526020015f20541015612b65576001600560146101000a81548160ff021916908315150217905550612b17613379565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b4f9190613c9d565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c15575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c1e575f90505b5f8115612d5b5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7c57505f601054115b15612cb057612ca96064612c9b6010548861344690919063ffffffff16565b61345b90919063ffffffff16565b9050612d38565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0757505f600f54115b15612d3757612d346064612d26600f548861344690919063ffffffff16565b61345b90919063ffffffff16565b90505b5b5f811115612d4c57612d4b873083613104565b5b8085612d589190614564565b94505b612d66878787613104565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4f57612e4e614597565b5b604051908082528060200260200182016040528015612e7d5781602001602082028036833780820191505090505b50905030815f81518110612e9457612e93613e32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5b91906145d8565b81600181518110612f6f57612f6e613e32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846121d6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130359594939291906146ba565b5f604051808303815f87803b15801561304c575f80fd5b505af115801561305e573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613172576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613169906142cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d79061435a565b60405180910390fd5b6131eb838383613470565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561326e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161326590614782565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fc9190613c9d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161336091906136e9565b60405180910390a3613373848484613475565b50505050565b5f613383306113fe565b90505f808203613394575050613444565b600a548211156133a457600a5491505b5f8290506133b181612e33565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133fa90613e8c565b5f6040518083038185875af1925050503d805f8114613434576040519150601f19603f3d011682016040523d82523d5f602084013e613439565b606091505b505080935050505050505b565b5f81836134539190613ae3565b905092915050565b5f81836134689190613b51565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6134bc8261347a565b6134c68185613484565b93506134d6818560208601613494565b6134df816134a2565b840191505092915050565b5f6020820190508181035f83015261350281846134b2565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61353b82613512565b9050919050565b61354b81613531565b8114613555575f80fd5b50565b5f8135905061356681613542565b92915050565b5f819050919050565b61357e8161356c565b8114613588575f80fd5b50565b5f8135905061359981613575565b92915050565b5f80604083850312156135b5576135b461350a565b5b5f6135c285828601613558565b92505060206135d38582860161358b565b9150509250929050565b5f8115159050919050565b6135f1816135dd565b82525050565b5f60208201905061360a5f8301846135e8565b92915050565b5f602082840312156136255761362461350a565b5b5f61363284828501613558565b91505092915050565b5f602082840312156136505761364f61350a565b5b5f61365d8482850161358b565b91505092915050565b5f819050919050565b5f61368961368461367f84613512565b613666565b613512565b9050919050565b5f61369a8261366f565b9050919050565b5f6136ab82613690565b9050919050565b6136bb816136a1565b82525050565b5f6020820190506136d45f8301846136b2565b92915050565b6136e38161356c565b82525050565b5f6020820190506136fc5f8301846136da565b92915050565b5f805f606084860312156137195761371861350a565b5b5f61372686828701613558565b935050602061373786828701613558565b92505060406137488682870161358b565b9150509250925092565b61375b81613531565b82525050565b5f6020820190506137745f830184613752565b92915050565b5f60ff82169050919050565b61378f8161377a565b82525050565b5f6020820190506137a85f830184613786565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137cf576137ce6137ae565b5b8235905067ffffffffffffffff8111156137ec576137eb6137b2565b5b602083019150836020820283011115613808576138076137b6565b5b9250929050565b5f8083601f840112613824576138236137ae565b5b8235905067ffffffffffffffff811115613841576138406137b2565b5b60208301915083602082028301111561385d5761385c6137b6565b5b9250929050565b5f805f806040858703121561387c5761387b61350a565b5b5f85013567ffffffffffffffff8111156138995761389861350e565b5b6138a5878288016137ba565b9450945050602085013567ffffffffffffffff8111156138c8576138c761350e565b5b6138d48782880161380f565b925092505092959194509250565b5f80604083850312156138f8576138f761350a565b5b5f6139058582860161358b565b92505060206139168582860161358b565b9150509250929050565b613929816135dd565b8114613933575f80fd5b50565b5f8135905061394481613920565b92915050565b5f80604083850312156139605761395f61350a565b5b5f61396d85828601613558565b925050602061397e85828601613936565b9150509250929050565b5f6020828403121561399d5761399c61350a565b5b5f6139aa84828501613936565b91505092915050565b5f80604083850312156139c9576139c861350a565b5b5f6139d685828601613558565b92505060206139e785828601613558565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a3557607f821691505b602082108103613a4857613a476139f1565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613a82602083613484565b9150613a8d82613a4e565b602082019050919050565b5f6020820190508181035f830152613aaf81613a76565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aed8261356c565b9150613af88361356c565b9250828202613b068161356c565b91508282048414831517613b1d57613b1c613ab6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b5b8261356c565b9150613b668361356c565b925082613b7657613b75613b24565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613bdb602f83613484565b9150613be682613b81565b604082019050919050565b5f6020820190508181035f830152613c0881613bcf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613c69602883613484565b9150613c7482613c0f565b604082019050919050565b5f6020820190508181035f830152613c9681613c5d565b9050919050565b5f613ca78261356c565b9150613cb28361356c565b9250828201905080821115613cca57613cc9613ab6565b5b92915050565b5f819050919050565b5f613cf3613cee613ce984613cd0565b613666565b61356c565b9050919050565b613d0381613cd9565b82525050565b5f60c082019050613d1c5f830189613752565b613d2960208301886136da565b613d366040830187613cfa565b613d436060830186613cfa565b613d506080830185613752565b613d5d60a08301846136da565b979650505050505050565b5f81519050613d7681613575565b92915050565b5f805f60608486031215613d9357613d9261350a565b5b5f613da086828701613d68565b9350506020613db186828701613d68565b9250506040613dc286828701613d68565b9150509250925092565b5f604082019050613ddf5f830185613752565b613dec60208301846136da565b9392505050565b5f81519050613e0181613920565b92915050565b5f60208284031215613e1c57613e1b61350a565b5b5f613e2984828501613df3565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f613e775f83613e5f565b9150613e8282613e69565b5f82019050919050565b5f613e9682613e6c565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613ed4600c83613484565b9150613edf82613ea0565b602082019050919050565b5f6020820190508181035f830152613f0181613ec8565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613f62603983613484565b9150613f6d82613f08565b604082019050919050565b5f6020820190508181035f830152613f8f81613f56565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613ff0602583613484565b9150613ffb82613f96565b604082019050919050565b5f6020820190508181035f83015261401d81613fe4565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61407e602483613484565b915061408982614024565b604082019050919050565b5f6020820190508181035f8301526140ab81614072565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61410c602683613484565b9150614117826140b2565b604082019050919050565b5f6020820190508181035f83015261413981614100565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61419a602483613484565b91506141a582614140565b604082019050919050565b5f6020820190508181035f8301526141c78161418e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614228602283613484565b9150614233826141ce565b604082019050919050565b5f6020820190508181035f8301526142558161421c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142b6602583613484565b91506142c18261425c565b604082019050919050565b5f6020820190508181035f8301526142e3816142aa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614344602383613484565b915061434f826142ea565b604082019050919050565b5f6020820190508181035f83015261437181614338565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6143ac601683613484565b91506143b782614378565b602082019050919050565b5f6020820190508181035f8301526143d9816143a0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61443a603583613484565b9150614445826143e0565b604082019050919050565b5f6020820190508181035f8301526144678161442e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6144a2601383613484565b91506144ad8261446e565b602082019050919050565b5f6020820190508181035f8301526144cf81614496565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614530603683613484565b915061453b826144d6565b604082019050919050565b5f6020820190508181035f83015261455d81614524565b9050919050565b5f61456e8261356c565b91506145798361356c565b925082820390508181111561459157614590613ab6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506145d281613542565b92915050565b5f602082840312156145ed576145ec61350a565b5b5f6145fa848285016145c4565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61463581613531565b82525050565b5f614646838361462c565b60208301905092915050565b5f602082019050919050565b5f61466882614603565b614672818561460d565b935061467d8361461d565b805f5b838110156146ad578151614694888261463b565b975061469f83614652565b925050600181019050614680565b5085935050505092915050565b5f60a0820190506146cd5f8301886136da565b6146da6020830187613cfa565b81810360408301526146ec818661465e565b90506146fb6060830185613752565b61470860808301846136da565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61476c602683613484565b915061477782614712565b604082019050919050565b5f6020820190508181035f83015261479981614760565b905091905056fea26469706673582212201ca32ffdcb2b8c67d69ddf0409f0268218c543c3c513d89162c2e3c7f16d24db64736f6c63430008190033

Deployed Bytecode Sourcemap

11719:10922:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7227:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8141:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12529:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15145:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11794:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7548:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15271:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8318:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11897:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7447:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8784:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14370:533;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11852:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12179:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14911:84;;;;;;;;;;;;;:::i;:::-;;17929:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12433:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17567:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12259:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16720:149;;;;;;;;;;;;;:::i;:::-;;7664:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6273:103;;;;;;;;;;;;;:::i;:::-;;17325:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15951:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16489:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6050:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16191:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7335:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12367:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16877:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9007:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15748:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7799:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17713:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12601:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12219:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16299:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15519:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12029:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12142:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15003:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12397:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7982:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12071:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17445:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6384:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12111:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7227:100;7281:13;7314:5;7307:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7227:100;:::o;8141:169::-;8224:4;8241:39;8250:12;:10;:12::i;:::-;8264:7;8273:6;8241:8;:39::i;:::-;8298:4;8291:11;;8141:169;;;;:::o;12529:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15145:118::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15246:8:::1;15233:9;:22;;;;:::i;:::-;15217:13;:38;;;;15145:118:::0;:::o;11794:51::-;;;:::o;7548:108::-;7609:7;7636:12;;7629:19;;7548:108;:::o;15271:240::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15394:4:::1;15386;15381:1;15365:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15364:26;;;;:::i;:::-;15363:35;;;;:::i;:::-;15353:6;:45;;15345:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;15494:8;15484:6;:19;;;;:::i;:::-;15461:20;:42;;;;15271:240:::0;:::o;8318:458::-;8424:4;8441:36;8451:6;8459:9;8470:6;8441:9;:36::i;:::-;8490:24;8517:11;:19;8529:6;8517:19;;;;;;;;;;;;;;;:33;8537:12;:10;:12::i;:::-;8517:33;;;;;;;;;;;;;;;;8490:60;;8589:6;8569:16;:26;;8561:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8676:57;8685:6;8693:12;:10;:12::i;:::-;8726:6;8707:16;:25;8676:8;:57::i;:::-;8764:4;8757:11;;;8318:458;;;;;:::o;11897:53::-;11943:6;11897:53;:::o;7447:93::-;7505:5;7530:2;7523:9;;7447:93;:::o;8784:215::-;8872:4;8889:80;8898:12;:10;:12::i;:::-;8912:7;8958:10;8921:11;:25;8933:12;:10;:12::i;:::-;8921:25;;;;;;;;;;;;;;;:34;8947:7;8921:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8889:8;:80::i;:::-;8987:4;8980:11;;8784:215;;;;:::o;14370:533::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14443:64:::1;14460:4;14475:15;14493:13;:11;:13::i;:::-;14443:8;:64::i;:::-;14518:15;:31;;;14557:21;14588:4;14594:24;14612:4;14594:9;:24::i;:::-;14619:1;14621::::0;14623:7:::1;:5;:7::i;:::-;14631:15;14518:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14665:13;14658:29;;;14696:15;14714:14;14658:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14751:7;14742:6;:16;;;;14785:4;14769:13;;:20;;;;;;;;;;;;;;;;;;14814:4;14800:11;;:18;;;;;;;;;;;;;;;;;;14842:12;14829:10;:25;;;;14880:15;14865:12;:30;;;;14370:533:::0;:::o;11852:38::-;;;:::o;12179:33::-;;;;;;;;;;;;;:::o;14911:84::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14982:5:::1;14965:14;;:22;;;;;;;;;;;;;;;;;;14911:84::o:0;17929:346::-;18051:1;18032:9;;:16;;:20;:58;;;;;18074:9;;:16;;18056:7;;:14;;:34;18032:58;18024:67;;;;;;18102:12;18117:10;18102:25;;18145:9;18140:128;18164:9;;:16;;18160:1;:20;18140:128;;;18202:54;18212:4;18218:9;;18228:1;18218:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18246:8;18232:7;;18240:1;18232:10;;;;;;;:::i;:::-;;;;;;;;:23;;;;:::i;:::-;18202:9;:54::i;:::-;18182:3;;;;;;;18140:128;;;;18013:262;17929:346;;;;:::o;12433:28::-;;;;:::o;17567:138::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17661:4:::1;17646:12;:19;;;;17692:5;17676:13;:21;;;;17567:138:::0;;:::o;12259:31::-;;;;;;;;;;;;;:::o;16720:149::-;16762:12;16806:15;;;;;;;;;;;16798:29;;16835:21;16798:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16785:76;;;;;16751:118;16720:149::o;7664:127::-;7738:7;7765:9;:18;7775:7;7765:18;;;;;;;;;;;;;;;;7758:25;;7664:127;;;:::o;6273:103::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6338:30:::1;6365:1;6338:18;:30::i;:::-;6273:103::o:0;17325:112::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17416:13:::1;17401:12;:28;;;;17325:112:::0;:::o;15951:144::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16083:4:::1;16041:31;:39;16073:6;16041:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;15951:144:::0;;:::o;16489:223::-;16569:15;;;;;;;;;;;16553:31;;:12;:10;:12::i;:::-;:31;;;16545:40;;;;;;16614:24;16632:4;16614:9;:24::i;:::-;16604:6;:34;;:48;;;;;16651:1;16642:6;:10;16604:48;16596:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16680:24;16697:6;16680:16;:24::i;:::-;16489:223;:::o;6050:87::-;6096:7;6123:6;;;;;;;;;;;6116:13;;6050:87;:::o;16191:100::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16276:7:::1;16262:11;;:21;;;;;;;;;;;;;;;;;;16191:100:::0;:::o;7335:104::-;7391:13;7424:7;7417:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7335:104;:::o;12367:21::-;;;;:::o;16877:244::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16984:13:::1;16976:21;;:4;:21;;::::0;16968:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17072:41;17101:4;17107:5;17072:28;:41::i;:::-;16877:244:::0;;:::o;9007:413::-;9100:4;9117:24;9144:11;:25;9156:12;:10;:12::i;:::-;9144:25;;;;;;;;;;;;;;;:34;9170:7;9144:34;;;;;;;;;;;;;;;;9117:61;;9217:15;9197:16;:35;;9189:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9310:67;9319:12;:10;:12::i;:::-;9333:7;9361:15;9342:16;:34;9310:8;:67::i;:::-;9408:4;9401:11;;;9007:413;;;;:::o;15748:195::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15880:4:::1;15834:31;:43;15866:10;15834:43;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;15931:4;15897:19;:31;15917:10;15897:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;15748:195:::0;;:::o;7799:175::-;7885:4;7902:42;7912:12;:10;:12::i;:::-;7926:9;7937:6;7902:9;:42::i;:::-;7962:4;7955:11;;7799:175;;;;:::o;17713:208::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17850:15:::1;;;;;;;;;;;17807:59;;17830:18;17807:59;;;;;;;;;;;;17895:18;17877:15;;:36;;;;;;;;;;;;;;;;;;17713:208:::0;:::o;12601:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;12219:33::-;;;;;;;;;;;;;:::o;16299:182::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16415:8:::1;16384:19;:28;16404:7;16384:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16455:7;16439:34;;;16464:8;16439:34;;;;;;:::i;:::-;;;;;;;;16299:182:::0;;:::o;15519:221::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15645:4:::1;15637;15632:1;15616:13;:11;:13::i;:::-;:17;;;;:::i;:::-;15615:26;;;;:::i;:::-;15614:35;;;;:::i;:::-;15604:6;:45;;15596:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15723:8;15713:6;:19;;;;:::i;:::-;15701:9;:31;;;;15519:221:::0;:::o;12029:35::-;;;;:::o;12142:28::-;;;;:::o;15003:134::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15120:8:::1;15107:9;:22;;;;:::i;:::-;15086:18;:43;;;;15003:134:::0;:::o;12397:27::-;;;;:::o;7982:151::-;8071:7;8098:11;:18;8110:5;8098:18;;;;;;;;;;;;;;;:27;8117:7;8098:27;;;;;;;;;;;;;;;;8091:34;;7982:151;;;;:::o;12071:33::-;;;;:::o;17445:114::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17538:13:::1;17522;:29;;;;17445:114:::0;:::o;6384:201::-;6196:12;:10;:12::i;:::-;6185:23;;:7;:5;:7::i;:::-;:23;;;6177:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6493:1:::1;6473:22;;:8;:22;;::::0;6465:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6549:28;6568:8;6549:18;:28::i;:::-;6384:201:::0;:::o;12111:24::-;;;;:::o;5566:98::-;5619:7;5646:10;5639:17;;5566:98;:::o;11141:346::-;11260:1;11243:19;;:5;:19;;;11235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11341:1;11322:21;;:7;:21;;;11314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11425:6;11395:11;:18;11407:5;11395:18;;;;;;;;;;;;;;;:27;11414:7;11395:27;;;;;;;;;;;;;;;:36;;;;11463:7;11447:32;;11456:5;11447:32;;;11472:6;11447:32;;;;;;:::i;:::-;;;;;;;;11141:346;;;:::o;18283:3166::-;18397:1;18381:18;;:4;:18;;;18373:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18474:1;18460:16;;:2;:16;;;18452:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18543:1;18533:6;:11;18529:93;;18561:28;18577:4;18583:2;18587:1;18561:15;:28::i;:::-;18604:7;;18529:93;18638:14;;;;;;;;;;;18634:1290;;;18681:7;:5;:7::i;:::-;18673:15;;:4;:15;;;;:32;;;;;18698:7;:5;:7::i;:::-;18692:13;;:2;:13;;;;18673:32;:52;;;;;18723:1;18709:16;;:2;:16;;;;18673:52;:77;;;;;18743:6;18729:21;;:2;:21;;;;18673:77;:90;;;;;18755:8;;;;;;;;;;;18754:9;18673:90;18669:1244;;;18813:12;18802:6;;18789:10;;:19;;;;:::i;:::-;18788:37;18784:163;;18887:1;18871:13;:17;;;;18926:1;18911:12;:16;;;;18784:163;18972:13;;;;;;;;;;;18967:150;;19018:19;:25;19038:4;19018:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19047:19;:23;19067:2;19047:23;;;;;;;;;;;;;;;;;;;;;;;;;19018:52;19010:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;18967:150;19169:25;:31;19195:4;19169:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19205:31;:35;19237:2;19205:35;;;;;;;;;;;;;;;;;;;;;;;;;19204:36;19169:71;19165:733;;;19283:20;;19273:6;:30;;19265:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;19418:9;;19401:13;19411:2;19401:9;:13::i;:::-;19392:6;:22;;;;:::i;:::-;:35;;19384:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19165:733;;;19527:25;:29;19553:2;19527:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;19561:31;:37;19593:4;19561:37;;;;;;;;;;;;;;;;;;;;;;;;;19560:38;19527:71;19523:375;;;19641:20;;19631:6;:30;;19623:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19523:375;;;19751:31;:35;19783:2;19751:35;;;;;;;;;;;;;;;;;;;;;;;;;19746:152;;19845:9;;19828:13;19838:2;19828:9;:13::i;:::-;19819:6;:22;;;;:::i;:::-;:35;;19811:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19746:152;19523:375;19165:733;18669:1244;18634:1290;19936:28;19967:24;19985:4;19967:9;:24::i;:::-;19936:55;;20004:12;20043:18;;20019:20;:42;;20004:57;;20092:7;:22;;;;;20103:11;;;;;;;;;;;20092:22;:35;;;;;20119:8;;;;;;;;;;;20118:9;20092:35;:71;;;;;20132:25;:31;20158:4;20132:31;;;;;;;;;;;;;;;;;;;;;;;;;20131:32;20092:71;:101;;;;;20168:19;:25;20188:4;20168:25;;;;;;;;;;;;;;;;;;;;;;;;;20167:26;20092:101;:146;;;;;20215:19;:23;20235:2;20215:23;;;;;;;;;;;;;;;;;;;;;;;;;20214:24;20092:146;20074:468;;;20334:1;20307:10;:24;20318:12;20307:24;;;;;;;;;;;;:28;20303:228;;;20367:4;20356:8;;:15;;;;;;;;;;;;;;;;;;20392:10;:8;:10::i;:::-;20434:5;20423:8;;:16;;;;;;;;;;;;;;;;;;20514:1;20487:10;:24;20498:12;20487:24;;;;;;;;;;;;:28;;;;:::i;:::-;20460:10;:24;20471:12;20460:24;;;;;;;;;;;:55;;;;20303:228;20074:468;20554:12;20570:8;;;;;;;;;;;20569:9;20554:24;;20680:19;:25;20700:4;20680:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20709:19;:23;20729:2;20709:23;;;;;;;;;;;;;;;;;;;;;;;;;20680:52;20676:100;;;20759:5;20749:15;;20676:100;20788:12;20893:7;20889:507;;;20945:25;:29;20971:2;20945:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;20994:1;20978:13;;:17;20945:50;20941:306;;;21023:34;21053:3;21023:25;21034:13;;21023:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;21016:41;;20941:306;;;21119:25;:31;21145:4;21119:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;21169:1;21154:12;;:16;21119:51;21115:132;;;21198:33;21227:3;21198:24;21209:12;;21198:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;21191:40;;21115:132;20941:306;21274:1;21267:4;:8;21263:91;;;21296:42;21312:4;21326;21333;21296:15;:42::i;:::-;21263:91;21380:4;21370:14;;;;;:::i;:::-;;;20889:507;21408:33;21424:4;21430:2;21434:6;21408:15;:33::i;:::-;18362:3087;;;;18283:3166;;;;:::o;6593:191::-;6667:16;6686:6;;;;;;;;;;;6667:25;;6712:8;6703:6;;:17;;;;;;;;;;;;;;;;;;6767:8;6736:40;;6757:8;6736:40;;;;;;;;;;;;6656:128;6593:191;:::o;21457:589::-;21583:21;21621:1;21607:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21583:40;;21652:4;21634;21639:1;21634:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21678:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21668:4;21673:1;21668:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21713:62;21730:4;21745:15;21763:11;21713:8;:62::i;:::-;21814:15;:66;;;21895:11;21921:1;21965:4;21992;22012:15;21814:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21512:534;21457:589;:::o;17129:188::-;17246:5;17212:25;:31;17238:4;17212:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17303:5;17269:40;;17297:4;17269:40;;;;;;;;;;;;17129:188;;:::o;9428:699::-;9552:1;9534:20;;:6;:20;;;9526:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9636:1;9615:23;;:9;:23;;;9607:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9691:47;9712:6;9720:9;9731:6;9691:20;:47::i;:::-;9751:21;9775:9;:17;9785:6;9775:17;;;;;;;;;;;;;;;;9751:41;;9828:6;9811:13;:23;;9803:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9949:6;9933:13;:22;9913:9;:17;9923:6;9913:17;;;;;;;;;;;;;;;:42;;;;10001:6;9977:9;:20;9987:9;9977:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10042:9;10025:35;;10034:6;10025:35;;;10053:6;10025:35;;;;;;:::i;:::-;;;;;;;;10073:46;10093:6;10101:9;10112:6;10073:19;:46::i;:::-;9515:612;9428:699;;;:::o;22054:584::-;22093:23;22119:24;22137:4;22119:9;:24::i;:::-;22093:50;;22154:12;22202:1;22183:15;:20;22179:59;;22220:7;;;;22179:59;22272:13;;22254:15;:31;22250:95;;;22320:13;;22302:31;;22250:95;22408:26;22437:15;22408:44;;22465:36;22482:18;22465:16;:36::i;:::-;22514:16;22533:21;22514:40;;22588:15;;;;;;;;;;;22580:29;;22617:8;22580:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22567:63;;;;;22082:556;;;;22054:584;:::o;3574:98::-;3632:7;3663:1;3659;:5;;;;:::i;:::-;3652:12;;3574:98;;;;:::o;3680:::-;3738:7;3769:1;3765;:5;;;;:::i;:::-;3758:12;;3680:98;;;;:::o;11495:91::-;;;;:::o;11594:90::-;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:::-;3733:6;3782:2;3770:9;3761:7;3757:23;3753:32;3750:119;;;3788:79;;:::i;:::-;3750:119;3908:1;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3879:117;3674:329;;;;:::o;4009:60::-;4037:3;4058:5;4051:12;;4009:60;;;:::o;4075:142::-;4125:9;4158:53;4176:34;4185:24;4203:5;4185:24;:::i;:::-;4176:34;:::i;:::-;4158:53;:::i;:::-;4145:66;;4075:142;;;:::o;4223:126::-;4273:9;4306:37;4337:5;4306:37;:::i;:::-;4293:50;;4223:126;;;:::o;4355:152::-;4431:9;4464:37;4495:5;4464:37;:::i;:::-;4451:50;;4355:152;;;:::o;4513:183::-;4626:63;4683:5;4626:63;:::i;:::-;4621:3;4614:76;4513:183;;:::o;4702:274::-;4821:4;4859:2;4848:9;4844:18;4836:26;;4872:97;4966:1;4955:9;4951:17;4942:6;4872:97;:::i;:::-;4702:274;;;;:::o;4982:118::-;5069:24;5087:5;5069:24;:::i;:::-;5064:3;5057:37;4982:118;;:::o;5106:222::-;5199:4;5237:2;5226:9;5222:18;5214:26;;5250:71;5318:1;5307:9;5303:17;5294:6;5250:71;:::i;:::-;5106:222;;;;:::o;5334:619::-;5411:6;5419;5427;5476:2;5464:9;5455:7;5451:23;5447:32;5444:119;;;5482:79;;:::i;:::-;5444:119;5602:1;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5573:117;5729:2;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5700:118;5857:2;5883:53;5928:7;5919:6;5908:9;5904:22;5883:53;:::i;:::-;5873:63;;5828:118;5334:619;;;;;:::o;5959:118::-;6046:24;6064:5;6046:24;:::i;:::-;6041:3;6034:37;5959:118;;:::o;6083:222::-;6176:4;6214:2;6203:9;6199:18;6191:26;;6227:71;6295:1;6284:9;6280:17;6271:6;6227:71;:::i;:::-;6083:222;;;;:::o;6311:86::-;6346:7;6386:4;6379:5;6375:16;6364:27;;6311:86;;;:::o;6403:112::-;6486:22;6502:5;6486:22;:::i;:::-;6481:3;6474:35;6403:112;;:::o;6521:214::-;6610:4;6648:2;6637:9;6633:18;6625:26;;6661:67;6725:1;6714:9;6710:17;6701:6;6661:67;:::i;:::-;6521:214;;;;:::o;6741:117::-;6850:1;6847;6840:12;6864:117;6973:1;6970;6963:12;6987:117;7096:1;7093;7086:12;7127:568;7200:8;7210:6;7260:3;7253:4;7245:6;7241:17;7237:27;7227:122;;7268:79;;:::i;:::-;7227:122;7381:6;7368:20;7358:30;;7411:18;7403:6;7400:30;7397:117;;;7433:79;;:::i;:::-;7397:117;7547:4;7539:6;7535:17;7523:29;;7601:3;7593:4;7585:6;7581:17;7571:8;7567:32;7564:41;7561:128;;;7608:79;;:::i;:::-;7561:128;7127:568;;;;;:::o;7718:::-;7791:8;7801:6;7851:3;7844:4;7836:6;7832:17;7828:27;7818:122;;7859:79;;:::i;:::-;7818:122;7972:6;7959:20;7949:30;;8002:18;7994:6;7991:30;7988:117;;;8024:79;;:::i;:::-;7988:117;8138:4;8130:6;8126:17;8114:29;;8192:3;8184:4;8176:6;8172:17;8162:8;8158:32;8155:41;8152:128;;;8199:79;;:::i;:::-;8152:128;7718:568;;;;;:::o;8292:934::-;8414:6;8422;8430;8438;8487:2;8475:9;8466:7;8462:23;8458:32;8455:119;;;8493:79;;:::i;:::-;8455:119;8641:1;8630:9;8626:17;8613:31;8671:18;8663:6;8660:30;8657:117;;;8693:79;;:::i;:::-;8657:117;8806:80;8878:7;8869:6;8858:9;8854:22;8806:80;:::i;:::-;8788:98;;;;8584:312;8963:2;8952:9;8948:18;8935:32;8994:18;8986:6;8983:30;8980:117;;;9016:79;;:::i;:::-;8980:117;9129:80;9201:7;9192:6;9181:9;9177:22;9129:80;:::i;:::-;9111:98;;;;8906:313;8292:934;;;;;;;:::o;9232:474::-;9300:6;9308;9357:2;9345:9;9336:7;9332:23;9328:32;9325:119;;;9363:79;;:::i;:::-;9325:119;9483:1;9508:53;9553:7;9544:6;9533:9;9529:22;9508:53;:::i;:::-;9498:63;;9454:117;9610:2;9636:53;9681:7;9672:6;9661:9;9657:22;9636:53;:::i;:::-;9626:63;;9581:118;9232:474;;;;;:::o;9712:116::-;9782:21;9797:5;9782:21;:::i;:::-;9775:5;9772:32;9762:60;;9818:1;9815;9808:12;9762:60;9712:116;:::o;9834:133::-;9877:5;9915:6;9902:20;9893:29;;9931:30;9955:5;9931:30;:::i;:::-;9834:133;;;;:::o;9973:468::-;10038:6;10046;10095:2;10083:9;10074:7;10070:23;10066:32;10063:119;;;10101:79;;:::i;:::-;10063:119;10221:1;10246:53;10291:7;10282:6;10271:9;10267:22;10246:53;:::i;:::-;10236:63;;10192:117;10348:2;10374:50;10416:7;10407:6;10396:9;10392:22;10374:50;:::i;:::-;10364:60;;10319:115;9973:468;;;;;:::o;10447:323::-;10503:6;10552:2;10540:9;10531:7;10527:23;10523:32;10520:119;;;10558:79;;:::i;:::-;10520:119;10678:1;10703:50;10745:7;10736:6;10725:9;10721:22;10703:50;:::i;:::-;10693:60;;10649:114;10447:323;;;;:::o;10776:474::-;10844:6;10852;10901:2;10889:9;10880:7;10876:23;10872:32;10869:119;;;10907:79;;:::i;:::-;10869:119;11027:1;11052:53;11097:7;11088:6;11077:9;11073:22;11052:53;:::i;:::-;11042:63;;10998:117;11154:2;11180:53;11225:7;11216:6;11205:9;11201:22;11180:53;:::i;:::-;11170:63;;11125:118;10776:474;;;;;:::o;11256:180::-;11304:77;11301:1;11294:88;11401:4;11398:1;11391:15;11425:4;11422:1;11415:15;11442:320;11486:6;11523:1;11517:4;11513:12;11503:22;;11570:1;11564:4;11560:12;11591:18;11581:81;;11647:4;11639:6;11635:17;11625:27;;11581:81;11709:2;11701:6;11698:14;11678:18;11675:38;11672:84;;11728:18;;:::i;:::-;11672:84;11493:269;11442:320;;;:::o;11768:182::-;11908:34;11904:1;11896:6;11892:14;11885:58;11768:182;:::o;11956:366::-;12098:3;12119:67;12183:2;12178:3;12119:67;:::i;:::-;12112:74;;12195:93;12284:3;12195:93;:::i;:::-;12313:2;12308:3;12304:12;12297:19;;11956:366;;;:::o;12328:419::-;12494:4;12532:2;12521:9;12517:18;12509:26;;12581:9;12575:4;12571:20;12567:1;12556:9;12552:17;12545:47;12609:131;12735:4;12609:131;:::i;:::-;12601:139;;12328:419;;;:::o;12753:180::-;12801:77;12798:1;12791:88;12898:4;12895:1;12888:15;12922:4;12919:1;12912:15;12939:410;12979:7;13002:20;13020:1;13002:20;:::i;:::-;12997:25;;13036:20;13054:1;13036:20;:::i;:::-;13031:25;;13091:1;13088;13084:9;13113:30;13131:11;13113:30;:::i;:::-;13102:41;;13292:1;13283:7;13279:15;13276:1;13273:22;13253:1;13246:9;13226:83;13203:139;;13322:18;;:::i;:::-;13203:139;12987:362;12939:410;;;;:::o;13355:180::-;13403:77;13400:1;13393:88;13500:4;13497:1;13490:15;13524:4;13521:1;13514:15;13541:185;13581:1;13598:20;13616:1;13598:20;:::i;:::-;13593:25;;13632:20;13650:1;13632:20;:::i;:::-;13627:25;;13671:1;13661:35;;13676:18;;:::i;:::-;13661:35;13718:1;13715;13711:9;13706:14;;13541:185;;;;:::o;13732:234::-;13872:34;13868:1;13860:6;13856:14;13849:58;13941:17;13936:2;13928:6;13924:15;13917:42;13732:234;:::o;13972:366::-;14114:3;14135:67;14199:2;14194:3;14135:67;:::i;:::-;14128:74;;14211:93;14300:3;14211:93;:::i;:::-;14329:2;14324:3;14320:12;14313:19;;13972:366;;;:::o;14344:419::-;14510:4;14548:2;14537:9;14533:18;14525:26;;14597:9;14591:4;14587:20;14583:1;14572:9;14568:17;14561:47;14625:131;14751:4;14625:131;:::i;:::-;14617:139;;14344:419;;;:::o;14769:227::-;14909:34;14905:1;14897:6;14893:14;14886:58;14978:10;14973:2;14965:6;14961:15;14954:35;14769:227;:::o;15002:366::-;15144:3;15165:67;15229:2;15224:3;15165:67;:::i;:::-;15158:74;;15241:93;15330:3;15241:93;:::i;:::-;15359:2;15354:3;15350:12;15343:19;;15002:366;;;:::o;15374:419::-;15540:4;15578:2;15567:9;15563:18;15555:26;;15627:9;15621:4;15617:20;15613:1;15602:9;15598:17;15591:47;15655:131;15781:4;15655:131;:::i;:::-;15647:139;;15374:419;;;:::o;15799:191::-;15839:3;15858:20;15876:1;15858:20;:::i;:::-;15853:25;;15892:20;15910:1;15892:20;:::i;:::-;15887:25;;15935:1;15932;15928:9;15921:16;;15956:3;15953:1;15950:10;15947:36;;;15963:18;;:::i;:::-;15947:36;15799:191;;;;:::o;15996:85::-;16041:7;16070:5;16059:16;;15996:85;;;:::o;16087:158::-;16145:9;16178:61;16196:42;16205:32;16231:5;16205:32;:::i;:::-;16196:42;:::i;:::-;16178:61;:::i;:::-;16165:74;;16087:158;;;:::o;16251:147::-;16346:45;16385:5;16346:45;:::i;:::-;16341:3;16334:58;16251:147;;:::o;16404:807::-;16653:4;16691:3;16680:9;16676:19;16668:27;;16705:71;16773:1;16762:9;16758:17;16749:6;16705:71;:::i;:::-;16786:72;16854:2;16843:9;16839:18;16830:6;16786:72;:::i;:::-;16868:80;16944:2;16933:9;16929:18;16920:6;16868:80;:::i;:::-;16958;17034:2;17023:9;17019:18;17010:6;16958:80;:::i;:::-;17048:73;17116:3;17105:9;17101:19;17092:6;17048:73;:::i;:::-;17131;17199:3;17188:9;17184:19;17175:6;17131:73;:::i;:::-;16404:807;;;;;;;;;:::o;17217:143::-;17274:5;17305:6;17299:13;17290:22;;17321:33;17348:5;17321:33;:::i;:::-;17217:143;;;;:::o;17366:663::-;17454:6;17462;17470;17519:2;17507:9;17498:7;17494:23;17490:32;17487:119;;;17525:79;;:::i;:::-;17487:119;17645:1;17670:64;17726:7;17717:6;17706:9;17702:22;17670:64;:::i;:::-;17660:74;;17616:128;17783:2;17809:64;17865:7;17856:6;17845:9;17841:22;17809:64;:::i;:::-;17799:74;;17754:129;17922:2;17948:64;18004:7;17995:6;17984:9;17980:22;17948:64;:::i;:::-;17938:74;;17893:129;17366:663;;;;;:::o;18035:332::-;18156:4;18194:2;18183:9;18179:18;18171:26;;18207:71;18275:1;18264:9;18260:17;18251:6;18207:71;:::i;:::-;18288:72;18356:2;18345:9;18341:18;18332:6;18288:72;:::i;:::-;18035:332;;;;;:::o;18373:137::-;18427:5;18458:6;18452:13;18443:22;;18474:30;18498:5;18474:30;:::i;:::-;18373:137;;;;:::o;18516:345::-;18583:6;18632:2;18620:9;18611:7;18607:23;18603:32;18600:119;;;18638:79;;:::i;:::-;18600:119;18758:1;18783:61;18836:7;18827:6;18816:9;18812:22;18783:61;:::i;:::-;18773:71;;18729:125;18516:345;;;;:::o;18867:180::-;18915:77;18912:1;18905:88;19012:4;19009:1;19002:15;19036:4;19033:1;19026:15;19053:147;19154:11;19191:3;19176:18;;19053:147;;;;:::o;19206:114::-;;:::o;19326:398::-;19485:3;19506:83;19587:1;19582:3;19506:83;:::i;:::-;19499:90;;19598:93;19687:3;19598:93;:::i;:::-;19716:1;19711:3;19707:11;19700:18;;19326:398;;;:::o;19730:379::-;19914:3;19936:147;20079:3;19936:147;:::i;:::-;19929:154;;20100:3;20093:10;;19730:379;;;:::o;20115:162::-;20255:14;20251:1;20243:6;20239:14;20232:38;20115:162;:::o;20283:366::-;20425:3;20446:67;20510:2;20505:3;20446:67;:::i;:::-;20439:74;;20522:93;20611:3;20522:93;:::i;:::-;20640:2;20635:3;20631:12;20624:19;;20283:366;;;:::o;20655:419::-;20821:4;20859:2;20848:9;20844:18;20836:26;;20908:9;20902:4;20898:20;20894:1;20883:9;20879:17;20872:47;20936:131;21062:4;20936:131;:::i;:::-;20928:139;;20655:419;;;:::o;21080:244::-;21220:34;21216:1;21208:6;21204:14;21197:58;21289:27;21284:2;21276:6;21272:15;21265:52;21080:244;:::o;21330:366::-;21472:3;21493:67;21557:2;21552:3;21493:67;:::i;:::-;21486:74;;21569:93;21658:3;21569:93;:::i;:::-;21687:2;21682:3;21678:12;21671:19;;21330:366;;;:::o;21702:419::-;21868:4;21906:2;21895:9;21891:18;21883:26;;21955:9;21949:4;21945:20;21941:1;21930:9;21926:17;21919:47;21983:131;22109:4;21983:131;:::i;:::-;21975:139;;21702:419;;;:::o;22127:224::-;22267:34;22263:1;22255:6;22251:14;22244:58;22336:7;22331:2;22323:6;22319:15;22312:32;22127:224;:::o;22357:366::-;22499:3;22520:67;22584:2;22579:3;22520:67;:::i;:::-;22513:74;;22596:93;22685:3;22596:93;:::i;:::-;22714:2;22709:3;22705:12;22698:19;;22357:366;;;:::o;22729:419::-;22895:4;22933:2;22922:9;22918:18;22910:26;;22982:9;22976:4;22972:20;22968:1;22957:9;22953:17;22946:47;23010:131;23136:4;23010:131;:::i;:::-;23002:139;;22729:419;;;:::o;23154:223::-;23294:34;23290:1;23282:6;23278:14;23271:58;23363:6;23358:2;23350:6;23346:15;23339:31;23154:223;:::o;23383:366::-;23525:3;23546:67;23610:2;23605:3;23546:67;:::i;:::-;23539:74;;23622:93;23711:3;23622:93;:::i;:::-;23740:2;23735:3;23731:12;23724:19;;23383:366;;;:::o;23755:419::-;23921:4;23959:2;23948:9;23944:18;23936:26;;24008:9;24002:4;23998:20;23994:1;23983:9;23979:17;23972:47;24036:131;24162:4;24036:131;:::i;:::-;24028:139;;23755:419;;;:::o;24180:225::-;24320:34;24316:1;24308:6;24304:14;24297:58;24389:8;24384:2;24376:6;24372:15;24365:33;24180:225;:::o;24411:366::-;24553:3;24574:67;24638:2;24633:3;24574:67;:::i;:::-;24567:74;;24650:93;24739:3;24650:93;:::i;:::-;24768:2;24763:3;24759:12;24752:19;;24411:366;;;:::o;24783:419::-;24949:4;24987:2;24976:9;24972:18;24964:26;;25036:9;25030:4;25026:20;25022:1;25011:9;25007:17;25000:47;25064:131;25190:4;25064:131;:::i;:::-;25056:139;;24783:419;;;:::o;25208:223::-;25348:34;25344:1;25336:6;25332:14;25325:58;25417:6;25412:2;25404:6;25400:15;25393:31;25208:223;:::o;25437:366::-;25579:3;25600:67;25664:2;25659:3;25600:67;:::i;:::-;25593:74;;25676:93;25765:3;25676:93;:::i;:::-;25794:2;25789:3;25785:12;25778:19;;25437:366;;;:::o;25809:419::-;25975:4;26013:2;26002:9;25998:18;25990:26;;26062:9;26056:4;26052:20;26048:1;26037:9;26033:17;26026:47;26090:131;26216:4;26090:131;:::i;:::-;26082:139;;25809:419;;;:::o;26234:221::-;26374:34;26370:1;26362:6;26358:14;26351:58;26443:4;26438:2;26430:6;26426:15;26419:29;26234:221;:::o;26461:366::-;26603:3;26624:67;26688:2;26683:3;26624:67;:::i;:::-;26617:74;;26700:93;26789:3;26700:93;:::i;:::-;26818:2;26813:3;26809:12;26802:19;;26461:366;;;:::o;26833:419::-;26999:4;27037:2;27026:9;27022:18;27014:26;;27086:9;27080:4;27076:20;27072:1;27061:9;27057:17;27050:47;27114:131;27240:4;27114:131;:::i;:::-;27106:139;;26833:419;;;:::o;27258:224::-;27398:34;27394:1;27386:6;27382:14;27375:58;27467:7;27462:2;27454:6;27450:15;27443:32;27258:224;:::o;27488:366::-;27630:3;27651:67;27715:2;27710:3;27651:67;:::i;:::-;27644:74;;27727:93;27816:3;27727:93;:::i;:::-;27845:2;27840:3;27836:12;27829:19;;27488:366;;;:::o;27860:419::-;28026:4;28064:2;28053:9;28049:18;28041:26;;28113:9;28107:4;28103:20;28099:1;28088:9;28084:17;28077:47;28141:131;28267:4;28141:131;:::i;:::-;28133:139;;27860:419;;;:::o;28285:222::-;28425:34;28421:1;28413:6;28409:14;28402:58;28494:5;28489:2;28481:6;28477:15;28470:30;28285:222;:::o;28513:366::-;28655:3;28676:67;28740:2;28735:3;28676:67;:::i;:::-;28669:74;;28752:93;28841:3;28752:93;:::i;:::-;28870:2;28865:3;28861:12;28854:19;;28513:366;;;:::o;28885:419::-;29051:4;29089:2;29078:9;29074:18;29066:26;;29138:9;29132:4;29128:20;29124:1;29113:9;29109:17;29102:47;29166:131;29292:4;29166:131;:::i;:::-;29158:139;;28885:419;;;:::o;29310:172::-;29450:24;29446:1;29438:6;29434:14;29427:48;29310:172;:::o;29488:366::-;29630:3;29651:67;29715:2;29710:3;29651:67;:::i;:::-;29644:74;;29727:93;29816:3;29727:93;:::i;:::-;29845:2;29840:3;29836:12;29829:19;;29488:366;;;:::o;29860:419::-;30026:4;30064:2;30053:9;30049:18;30041:26;;30113:9;30107:4;30103:20;30099:1;30088:9;30084:17;30077:47;30141:131;30267:4;30141:131;:::i;:::-;30133:139;;29860:419;;;:::o;30285:240::-;30425:34;30421:1;30413:6;30409:14;30402:58;30494:23;30489:2;30481:6;30477:15;30470:48;30285:240;:::o;30531:366::-;30673:3;30694:67;30758:2;30753:3;30694:67;:::i;:::-;30687:74;;30770:93;30859:3;30770:93;:::i;:::-;30888:2;30883:3;30879:12;30872:19;;30531:366;;;:::o;30903:419::-;31069:4;31107:2;31096:9;31092:18;31084:26;;31156:9;31150:4;31146:20;31142:1;31131:9;31127:17;31120:47;31184:131;31310:4;31184:131;:::i;:::-;31176:139;;30903:419;;;:::o;31328:169::-;31468:21;31464:1;31456:6;31452:14;31445:45;31328:169;:::o;31503:366::-;31645:3;31666:67;31730:2;31725:3;31666:67;:::i;:::-;31659:74;;31742:93;31831:3;31742:93;:::i;:::-;31860:2;31855:3;31851:12;31844:19;;31503:366;;;:::o;31875:419::-;32041:4;32079:2;32068:9;32064:18;32056:26;;32128:9;32122:4;32118:20;32114:1;32103:9;32099:17;32092:47;32156:131;32282:4;32156:131;:::i;:::-;32148:139;;31875:419;;;:::o;32300:241::-;32440:34;32436:1;32428:6;32424:14;32417:58;32509:24;32504:2;32496:6;32492:15;32485:49;32300:241;:::o;32547:366::-;32689:3;32710:67;32774:2;32769:3;32710:67;:::i;:::-;32703:74;;32786:93;32875:3;32786:93;:::i;:::-;32904:2;32899:3;32895:12;32888:19;;32547:366;;;:::o;32919:419::-;33085:4;33123:2;33112:9;33108:18;33100:26;;33172:9;33166:4;33162:20;33158:1;33147:9;33143:17;33136:47;33200:131;33326:4;33200:131;:::i;:::-;33192:139;;32919:419;;;:::o;33344:194::-;33384:4;33404:20;33422:1;33404:20;:::i;:::-;33399:25;;33438:20;33456:1;33438:20;:::i;:::-;33433:25;;33482:1;33479;33475:9;33467:17;;33506:1;33500:4;33497:11;33494:37;;;33511:18;;:::i;:::-;33494:37;33344:194;;;;:::o;33544:180::-;33592:77;33589:1;33582:88;33689:4;33686:1;33679:15;33713:4;33710:1;33703:15;33730:143;33787:5;33818:6;33812:13;33803:22;;33834:33;33861:5;33834:33;:::i;:::-;33730:143;;;;:::o;33879:351::-;33949:6;33998:2;33986:9;33977:7;33973:23;33969:32;33966:119;;;34004:79;;:::i;:::-;33966:119;34124:1;34149:64;34205:7;34196:6;34185:9;34181:22;34149:64;:::i;:::-;34139:74;;34095:128;33879:351;;;;:::o;34236:114::-;34303:6;34337:5;34331:12;34321:22;;34236:114;;;:::o;34356:184::-;34455:11;34489:6;34484:3;34477:19;34529:4;34524:3;34520:14;34505:29;;34356:184;;;;:::o;34546:132::-;34613:4;34636:3;34628:11;;34666:4;34661:3;34657:14;34649:22;;34546:132;;;:::o;34684:108::-;34761:24;34779:5;34761:24;:::i;:::-;34756:3;34749:37;34684:108;;:::o;34798:179::-;34867:10;34888:46;34930:3;34922:6;34888:46;:::i;:::-;34966:4;34961:3;34957:14;34943:28;;34798:179;;;;:::o;34983:113::-;35053:4;35085;35080:3;35076:14;35068:22;;34983:113;;;:::o;35132:732::-;35251:3;35280:54;35328:5;35280:54;:::i;:::-;35350:86;35429:6;35424:3;35350:86;:::i;:::-;35343:93;;35460:56;35510:5;35460:56;:::i;:::-;35539:7;35570:1;35555:284;35580:6;35577:1;35574:13;35555:284;;;35656:6;35650:13;35683:63;35742:3;35727:13;35683:63;:::i;:::-;35676:70;;35769:60;35822:6;35769:60;:::i;:::-;35759:70;;35615:224;35602:1;35599;35595:9;35590:14;;35555:284;;;35559:14;35855:3;35848:10;;35256:608;;;35132:732;;;;:::o;35870:831::-;36133:4;36171:3;36160:9;36156:19;36148:27;;36185:71;36253:1;36242:9;36238:17;36229:6;36185:71;:::i;:::-;36266:80;36342:2;36331:9;36327:18;36318:6;36266:80;:::i;:::-;36393:9;36387:4;36383:20;36378:2;36367:9;36363:18;36356:48;36421:108;36524:4;36515:6;36421:108;:::i;:::-;36413:116;;36539:72;36607:2;36596:9;36592:18;36583:6;36539:72;:::i;:::-;36621:73;36689:3;36678:9;36674:19;36665:6;36621:73;:::i;:::-;35870:831;;;;;;;;:::o;36707:225::-;36847:34;36843:1;36835:6;36831:14;36824:58;36916:8;36911:2;36903:6;36899:15;36892:33;36707:225;:::o;36938:366::-;37080:3;37101:67;37165:2;37160:3;37101:67;:::i;:::-;37094:74;;37177:93;37266:3;37177:93;:::i;:::-;37295:2;37290:3;37286:12;37279:19;;36938:366;;;:::o;37310:419::-;37476:4;37514:2;37503:9;37499:18;37491:26;;37563:9;37557:4;37553:20;37549:1;37538:9;37534:17;37527:47;37591:131;37717:4;37591:131;:::i;:::-;37583:139;;37310:419;;;:::o

Swarm Source

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