ETH Price: $2,426.40 (+1.23%)
 

Overview

Max Total Supply

10,000,000 SHIBOX

Holders

43

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
SHIBOX

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-10
*/

// SPDX-License-Identifier: MIT

/*
    https://t.me/shiboxportal
*/

pragma solidity =0.8.16;
pragma experimental ABIEncoderV2;

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

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

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 { //Change
        _transferOwnership(address(0));
    }

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);

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

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _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 _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

contract SHIBOX 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 public marketingWallet;

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

    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 private buyMarketingFee;
    uint256 private buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 private sellMarketingFee;
    uint256 private sellLiquidityFee;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;
    uint256 private previousFee;

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

    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("Shib Box Inu", "SHIBOX") {
        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 _buyMarketingFee = 20;
        uint256 _buyLiquidityFee = 0;

        uint256 _sellMarketingFee = 40;
        uint256 _sellLiquidityFee = 0;

        uint256 totalSupply = 10000000 * 1e18;

        maxTransactionAmount = 200000 * 1e18;
        maxWallet = 200000 * 1e18;
        swapTokensAtAmount = (totalSupply * 5) / 10000;

        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;
        previousFee = sellTotalFees;

        marketingWallet = address(0x83dF11b5B8E65eD46cB8699EbB4E155Af42Bcf8d);

        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 enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

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

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

    function updateBuyFees(
        uint256 _marketingFee,
        uint256 _liquidityFee
    ) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee;
        require(buyTotalFees <= 20, "Must keep fees at 20% or less");
    }

    function updateSellFees(
        uint256 _marketingFee,
        uint256 _liquidityFee
    ) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;
        previousFee = sellTotalFees;
        require(sellTotalFees <= 99, "Must keep fees at 99% or less");
    }

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

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFees[accounts[i]] = excluded;
        }
    }

    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 isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    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 (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                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]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

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

            amount -= fees;
        }

        super._transfer(from, to, amount);
        sellTotalFees = previousFee;

    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

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

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

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

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
            totalTokensToSwap
        );

        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

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

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":"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":"account","type":"address"}],"name":"balanceOf","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"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":[],"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"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxnNum","type":"uint256"},{"internalType":"uint256","name":"newMaxWalletNum","type":"uint256"}],"name":"updateMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600c81526020017f5368696220426f7820496e7500000000000000000000000000000000000000008152506040518060400160405280600681526020017f534849424f5800000000000000000000000000000000000000000000000000008152508160039081620000c5919062000c95565b508060049081620000d7919062000c95565b505050620000fa620000ee620004dc60201b60201c565b620004e460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905062000126816001620005aa60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000de6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025a919062000de6565b6040518363ffffffff1660e01b81526004016200027992919062000e29565b6020604051808303816000875af115801562000299573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bf919062000de6565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200030760a0516001620005aa60201b60201c565b6200031c60a05160016200069460201b60201c565b600060149050600080602890506000806a084595161401484a0000009050692a5a058fc295ed000000600781905550692a5a058fc295ed0000006009819055506127106005826200036e919062000e85565b6200037a919062000f15565b60088190555084600c8190555083600d81905550600d54600c54620003a0919062000f4d565b600b8190555082600f8190555081601081905550601054600f54620003c6919062000f4d565b600e81905550600e546013819055507383df11b5b8e65ed46cb8699ebb4e155af42bcf8d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200044c6200043e6200073560201b60201c565b60016200075f60201b60201c565b6200045f3060016200075f60201b60201c565b6200047461dead60016200075f60201b60201c565b62000496620004886200073560201b60201c565b6001620005aa60201b60201c565b620004a9306001620005aa60201b60201c565b620004be61dead6001620005aa60201b60201c565b620004d033826200089960201b60201c565b505050505050620010e5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005ba620004dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005e06200073560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006309062000fe9565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200076f620004dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007956200073560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007e59062000fe9565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200088d919062001028565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200090b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009029062001095565b60405180910390fd5b6200091f6000838362000a1160201b60201c565b806002600082825462000933919062000f4d565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200098a919062000f4d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009f19190620010c8565b60405180910390a362000a0d6000838362000a1660201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9d57607f821691505b60208210810362000ab35762000ab262000a55565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ade565b62000b29868362000ade565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b7662000b7062000b6a8462000b41565b62000b4b565b62000b41565b9050919050565b6000819050919050565b62000b928362000b55565b62000baa62000ba18262000b7d565b84845462000aeb565b825550505050565b600090565b62000bc162000bb2565b62000bce81848462000b87565b505050565b5b8181101562000bf65762000bea60008262000bb7565b60018101905062000bd4565b5050565b601f82111562000c455762000c0f8162000ab9565b62000c1a8462000ace565b8101602085101562000c2a578190505b62000c4262000c398562000ace565b83018262000bd3565b50505b505050565b600082821c905092915050565b600062000c6a6000198460080262000c4a565b1980831691505092915050565b600062000c85838362000c57565b9150826002028217905092915050565b62000ca08262000a1b565b67ffffffffffffffff81111562000cbc5762000cbb62000a26565b5b62000cc8825462000a84565b62000cd582828562000bfa565b600060209050601f83116001811462000d0d576000841562000cf8578287015190505b62000d04858262000c77565b86555062000d74565b601f19841662000d1d8662000ab9565b60005b8281101562000d475784890151825560018201915060208501945060208101905062000d20565b8683101562000d67578489015162000d63601f89168262000c57565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dae8262000d81565b9050919050565b62000dc08162000da1565b811462000dcc57600080fd5b50565b60008151905062000de08162000db5565b92915050565b60006020828403121562000dff5762000dfe62000d7c565b5b600062000e0f8482850162000dcf565b91505092915050565b62000e238162000da1565b82525050565b600060408201905062000e40600083018562000e18565b62000e4f602083018462000e18565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e928262000b41565b915062000e9f8362000b41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000edb5762000eda62000e56565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f228262000b41565b915062000f2f8362000b41565b92508262000f425762000f4162000ee6565b5b828204905092915050565b600062000f5a8262000b41565b915062000f678362000b41565b925082820190508082111562000f825762000f8162000e56565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000fd160208362000f88565b915062000fde8262000f99565b602082019050919050565b60006020820190508181036000830152620010048162000fc2565b9050919050565b60008115159050919050565b62001022816200100b565b82525050565b60006020820190506200103f600083018462001017565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200107d601f8362000f88565b91506200108a8262001045565b602082019050919050565b60006020820190508181036000830152620010b0816200106e565b9050919050565b620010c28162000b41565b82525050565b6000602082019050620010df6000830184620010b7565b92915050565b60805160a0516144626200113560003960008181610be501526112bb015260008181610a0401528181612cad01528181612d8e01528181612db501528181612e510152612e7801526144626000f3fe6080604052600436106102085760003560e01c806375f0a87411610118578063c0246668116100a0578063d85ba0631161006f578063d85ba06314610778578063dd62ed3e146107a3578063e2f45605146107e0578063f2fde38b1461080b578063f8b45b05146108345761020f565b8063c0246668146106be578063c492f046146106e7578063c8c8ebe414610710578063d257b34f1461073b5761020f565b806396188399116100e757806396188399146105c75780639a7a23d6146105f0578063a457c2d714610619578063a9059cbb14610656578063bbc0c742146106935761020f565b806375f0a8741461052f5780638a8c523c1461055a5780638da5cb5b1461057157806395d89b411461059c5761020f565b8063395093511161019b5780636a486a8e1161016a5780636a486a8e1461045c5780636ddd17131461048757806370a08231146104b2578063715018a6146104ef5780637571336a146105065761020f565b8063395093511461038e57806349bd5a5e146103cb5780634fbee193146103f657806366ca9b83146104335761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb57806327c8f83514610338578063313ce567146103635761020f565b806302dbd8f81461021457806306fdde031461023d578063095ea7b3146102685780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612f67565b61085f565b005b34801561024957600080fd5b50610252610952565b60405161025f9190613037565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a91906130b7565b6109e4565b60405161029c9190613112565b60405180910390f35b3480156102b157600080fd5b506102ba610a02565b6040516102c7919061318c565b60405180910390f35b3480156102dc57600080fd5b506102e5610a26565b6040516102f291906131b6565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d91906131d1565b610a30565b60405161032f9190613112565b60405180910390f35b34801561034457600080fd5b5061034d610b28565b60405161035a9190613233565b60405180910390f35b34801561036f57600080fd5b50610378610b2e565b604051610385919061326a565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906130b7565b610b37565b6040516103c29190613112565b60405180910390f35b3480156103d757600080fd5b506103e0610be3565b6040516103ed9190613233565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613285565b610c07565b60405161042a9190613112565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190612f67565b610c5d565b005b34801561046857600080fd5b50610471610d47565b60405161047e91906131b6565b60405180910390f35b34801561049357600080fd5b5061049c610d4d565b6040516104a99190613112565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190613285565b610d60565b6040516104e691906131b6565b60405180910390f35b3480156104fb57600080fd5b50610504610da8565b005b34801561051257600080fd5b5061052d600480360381019061052891906132de565b610e30565b005b34801561053b57600080fd5b50610544610f07565b6040516105519190613233565b60405180910390f35b34801561056657600080fd5b5061056f610f2d565b005b34801561057d57600080fd5b50610586610fe1565b6040516105939190613233565b60405180910390f35b3480156105a857600080fd5b506105b161100b565b6040516105be9190613037565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190612f67565b61109d565b005b3480156105fc57600080fd5b50610617600480360381019061061291906132de565b61123d565b005b34801561062557600080fd5b50610640600480360381019061063b91906130b7565b611355565b60405161064d9190613112565b60405180910390f35b34801561066257600080fd5b5061067d600480360381019061067891906130b7565b611440565b60405161068a9190613112565b60405180910390f35b34801561069f57600080fd5b506106a861145e565b6040516106b59190613112565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e091906132de565b611471565b005b3480156106f357600080fd5b5061070e60048036038101906107099190613383565b611596565b005b34801561071c57600080fd5b506107256116b7565b60405161073291906131b6565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d91906133e3565b6116bd565b60405161076f9190613112565b60405180910390f35b34801561078457600080fd5b5061078d611812565b60405161079a91906131b6565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c59190613410565b611818565b6040516107d791906131b6565b60405180910390f35b3480156107ec57600080fd5b506107f561189f565b60405161080291906131b6565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d9190613285565b6118a5565b005b34801561084057600080fd5b5061084961199c565b60405161085691906131b6565b60405180910390f35b6108676119a2565b73ffffffffffffffffffffffffffffffffffffffff16610885610fe1565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d29061349c565b60405180910390fd5b81600f8190555080601081905550601054600f546108f991906134eb565b600e81905550600e546013819055506063600e54111561094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061356b565b60405180910390fd5b5050565b606060038054610961906135ba565b80601f016020809104026020016040519081016040528092919081815260200182805461098d906135ba565b80156109da5780601f106109af576101008083540402835291602001916109da565b820191906000526020600020905b8154815290600101906020018083116109bd57829003601f168201915b5050505050905090565b60006109f86109f16119a2565b84846119aa565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b6000610a3d848484611b73565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a886119a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff9061365d565b60405180910390fd5b610b1c85610b146119a2565b8584036119aa565b60019150509392505050565b61dead81565b60006012905090565b6000610bd9610b446119a2565b848460016000610b526119a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd491906134eb565b6119aa565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c656119a2565b73ffffffffffffffffffffffffffffffffffffffff16610c83610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd09061349c565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610cf791906134eb565b600b819055506014600b541115610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a906136c9565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610db06119a2565b73ffffffffffffffffffffffffffffffffffffffff16610dce610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b9061349c565b60405180910390fd5b610e2e60006125cf565b565b610e386119a2565b73ffffffffffffffffffffffffffffffffffffffff16610e56610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea39061349c565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f356119a2565b73ffffffffffffffffffffffffffffffffffffffff16610f53610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa09061349c565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461101a906135ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611046906135ba565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050905090565b6110a56119a2565b73ffffffffffffffffffffffffffffffffffffffff166110c3610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111109061349c565b60405180910390fd5b670de0b6b3a76400006103e8600561112f610a26565b61113991906136e9565b6111439190613772565b61114d9190613772565b82101561118f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118690613815565b60405180910390fd5b670de0b6b3a76400006103e860056111a5610a26565b6111af91906136e9565b6111b99190613772565b6111c39190613772565b811015611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc906138a7565b60405180910390fd5b670de0b6b3a76400008161121991906136e9565b600981905550670de0b6b3a76400008261123391906136e9565b6007819055505050565b6112456119a2565b73ffffffffffffffffffffffffffffffffffffffff16611263610fe1565b73ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b09061349c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90613939565b60405180910390fd5b6113518282612695565b5050565b600080600160006113646119a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611421576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611418906139cb565b60405180910390fd5b61143561142c6119a2565b858584036119aa565b600191505092915050565b600061145461144d6119a2565b8484611b73565b6001905092915050565b600a60009054906101000a900460ff1681565b6114796119a2565b73ffffffffffffffffffffffffffffffffffffffff16611497610fe1565b73ffffffffffffffffffffffffffffffffffffffff16146114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e49061349c565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161158a9190613112565b60405180910390a25050565b61159e6119a2565b73ffffffffffffffffffffffffffffffffffffffff166115bc610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116099061349c565b60405180910390fd5b60005b838390508110156116b1578160146000868685818110611638576116376139eb565b5b905060200201602081019061164d9190613285565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116a990613a1a565b915050611615565b50505050565b60075481565b60006116c76119a2565b73ffffffffffffffffffffffffffffffffffffffff166116e5610fe1565b73ffffffffffffffffffffffffffffffffffffffff161461173b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117329061349c565b60405180910390fd5b620186a06001611749610a26565b61175391906136e9565b61175d9190613772565b82101561179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690613ad4565b60405180910390fd5b6103e860056117ac610a26565b6117b691906136e9565b6117c09190613772565b821115611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f990613b66565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6118ad6119a2565b73ffffffffffffffffffffffffffffffffffffffff166118cb610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614611921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119189061349c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790613bf8565b60405180910390fd5b611999816125cf565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090613c8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f90613d1c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b6691906131b6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4890613e40565b60405180910390fd5b60008103611c6a57611c6583836000612736565b6125ca565b611c72610fe1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ce05750611cb0610fe1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d53575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6c5750600560149054906101000a900460ff16155b1561214f57600a60009054906101000a900460ff16611e6657601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e265750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c90613eac565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f095750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fb057600754811115611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90613f3e565b60405180910390fd5b600954611f5f83610d60565b82611f6a91906134eb565b1115611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa290613faa565b60405180910390fd5b61214e565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120535750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120a25760075481111561209d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120949061403c565b60405180910390fd5b61214d565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661214c576009546120ff83610d60565b8261210a91906134eb565b111561214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214290613faa565b60405180910390fd5b5b5b5b5b600061215a30610d60565b90506000600854821015905080801561217f5750600a60019054906101000a900460ff165b80156121985750600560149054906101000a900460ff16155b80156121ee5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122445750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561229a5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122de576001600560146101000a81548160ff0219169083151502179055506122c26129b5565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123945750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561239e57600090505b600081156125b157601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561240157506000600e54115b1561249b5761242e6064612420600e5488612bc290919063ffffffff16565b612bd890919063ffffffff16565b9050600e546010548261244191906136e9565b61244b9190613772565b6012600082825461245c91906134eb565b92505081905550600e54600f548261247491906136e9565b61247e9190613772565b6011600082825461248f91906134eb565b9250508190555061258d565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124f657506000600b54115b1561258c576125236064612515600b5488612bc290919063ffffffff16565b612bd890919063ffffffff16565b9050600b54600d548261253691906136e9565b6125409190613772565b6012600082825461255191906134eb565b92505081905550600b54600c548261256991906136e9565b6125739190613772565b6011600082825461258491906134eb565b925050819055505b5b60008111156125a2576125a1873083612736565b5b80856125ae919061405c565b94505b6125bc878787612736565b601354600e81905550505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c90613dae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280b90613e40565b60405180910390fd5b61281f838383612bee565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289c90614102565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461293891906134eb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161299c91906131b6565b60405180910390a36129af848484612bf3565b50505050565b60006129c030610d60565b905060006011546012546129d491906134eb565b90506000808314806129e65750600082145b156129f357505050612bc0565b6014600854612a0291906136e9565b831115612a1b576014600854612a1891906136e9565b92505b600060028360125486612a2e91906136e9565b612a389190613772565b612a429190613772565b90506000612a598286612bf890919063ffffffff16565b90506000479050612a6982612c0e565b6000612a7e8247612bf890919063ffffffff16565b90506000612aa987612a9b60115485612bc290919063ffffffff16565b612bd890919063ffffffff16565b905060008183612ab9919061405c565b905060006012819055506000601181905550600086118015612adb5750600081115b15612b2857612aea8682612e4b565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601254604051612b1f93929190614122565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612b6e9061418a565b60006040518083038185875af1925050503d8060008114612bab576040519150601f19603f3d011682016040523d82523d6000602084013e612bb0565b606091505b5050809750505050505050505050505b565b60008183612bd091906136e9565b905092915050565b60008183612be69190613772565b905092915050565b505050565b505050565b60008183612c06919061405c565b905092915050565b6000600267ffffffffffffffff811115612c2b57612c2a61419f565b5b604051908082528060200260200182016040528015612c595781602001602082028036833780820191505090505b5090503081600081518110612c7157612c706139eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3a91906141e3565b81600181518110612d4e57612d4d6139eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612db3307f0000000000000000000000000000000000000000000000000000000000000000846119aa565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e15959493929190614309565b600060405180830381600087803b158015612e2f57600080fd5b505af1158015612e43573d6000803e3d6000fd5b505050505050565b612e76307f0000000000000000000000000000000000000000000000000000000000000000846119aa565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612edd96959493929190614363565b60606040518083038185885af1158015612efb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f2091906143d9565b5050505050565b600080fd5b600080fd5b6000819050919050565b612f4481612f31565b8114612f4f57600080fd5b50565b600081359050612f6181612f3b565b92915050565b60008060408385031215612f7e57612f7d612f27565b5b6000612f8c85828601612f52565b9250506020612f9d85828601612f52565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe1578082015181840152602081019050612fc6565b60008484015250505050565b6000601f19601f8301169050919050565b600061300982612fa7565b6130138185612fb2565b9350613023818560208601612fc3565b61302c81612fed565b840191505092915050565b600060208201905081810360008301526130518184612ffe565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061308482613059565b9050919050565b61309481613079565b811461309f57600080fd5b50565b6000813590506130b18161308b565b92915050565b600080604083850312156130ce576130cd612f27565b5b60006130dc858286016130a2565b92505060206130ed85828601612f52565b9150509250929050565b60008115159050919050565b61310c816130f7565b82525050565b60006020820190506131276000830184613103565b92915050565b6000819050919050565b600061315261314d61314884613059565b61312d565b613059565b9050919050565b600061316482613137565b9050919050565b600061317682613159565b9050919050565b6131868161316b565b82525050565b60006020820190506131a1600083018461317d565b92915050565b6131b081612f31565b82525050565b60006020820190506131cb60008301846131a7565b92915050565b6000806000606084860312156131ea576131e9612f27565b5b60006131f8868287016130a2565b9350506020613209868287016130a2565b925050604061321a86828701612f52565b9150509250925092565b61322d81613079565b82525050565b60006020820190506132486000830184613224565b92915050565b600060ff82169050919050565b6132648161324e565b82525050565b600060208201905061327f600083018461325b565b92915050565b60006020828403121561329b5761329a612f27565b5b60006132a9848285016130a2565b91505092915050565b6132bb816130f7565b81146132c657600080fd5b50565b6000813590506132d8816132b2565b92915050565b600080604083850312156132f5576132f4612f27565b5b6000613303858286016130a2565b9250506020613314858286016132c9565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126133435761334261331e565b5b8235905067ffffffffffffffff8111156133605761335f613323565b5b60208301915083602082028301111561337c5761337b613328565b5b9250929050565b60008060006040848603121561339c5761339b612f27565b5b600084013567ffffffffffffffff8111156133ba576133b9612f2c565b5b6133c68682870161332d565b935093505060206133d9868287016132c9565b9150509250925092565b6000602082840312156133f9576133f8612f27565b5b600061340784828501612f52565b91505092915050565b6000806040838503121561342757613426612f27565b5b6000613435858286016130a2565b9250506020613446858286016130a2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613486602083612fb2565b915061349182613450565b602082019050919050565b600060208201905081810360008301526134b581613479565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134f682612f31565b915061350183612f31565b9250828201905080821115613519576135186134bc565b5b92915050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000613555601d83612fb2565b91506135608261351f565b602082019050919050565b6000602082019050818103600083015261358481613548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135d257607f821691505b6020821081036135e5576135e461358b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613647602883612fb2565b9150613652826135eb565b604082019050919050565b600060208201905081810360008301526136768161363a565b9050919050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b60006136b3601d83612fb2565b91506136be8261367d565b602082019050919050565b600060208201905081810360008301526136e2816136a6565b9050919050565b60006136f482612f31565b91506136ff83612f31565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613738576137376134bc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061377d82612f31565b915061378883612f31565b92508261379857613797613743565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006137ff602183612fb2565b915061380a826137a3565b604082019050919050565b6000602082019050818103600083015261382e816137f2565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613891602483612fb2565b915061389c82613835565b604082019050919050565b600060208201905081810360008301526138c081613884565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613923603983612fb2565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006139b5602583612fb2565b91506139c082613959565b604082019050919050565b600060208201905081810360008301526139e4816139a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a2582612f31565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a5757613a566134bc565b5b600182019050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613abe603583612fb2565b9150613ac982613a62565b604082019050919050565b60006020820190508181036000830152613aed81613ab1565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613b50603483612fb2565b9150613b5b82613af4565b604082019050919050565b60006020820190508181036000830152613b7f81613b43565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613be2602683612fb2565b9150613bed82613b86565b604082019050919050565b60006020820190508181036000830152613c1181613bd5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c74602483612fb2565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d06602283612fb2565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d98602583612fb2565b9150613da382613d3c565b604082019050919050565b60006020820190508181036000830152613dc781613d8b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e2a602383612fb2565b9150613e3582613dce565b604082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613e96601683612fb2565b9150613ea182613e60565b602082019050919050565b60006020820190508181036000830152613ec581613e89565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613f28603583612fb2565b9150613f3382613ecc565b604082019050919050565b60006020820190508181036000830152613f5781613f1b565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613f94601383612fb2565b9150613f9f82613f5e565b602082019050919050565b60006020820190508181036000830152613fc381613f87565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614026603683612fb2565b915061403182613fca565b604082019050919050565b6000602082019050818103600083015261405581614019565b9050919050565b600061406782612f31565b915061407283612f31565b925082820390508181111561408a576140896134bc565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006140ec602683612fb2565b91506140f782614090565b604082019050919050565b6000602082019050818103600083015261411b816140df565b9050919050565b600060608201905061413760008301866131a7565b61414460208301856131a7565b61415160408301846131a7565b949350505050565b600081905092915050565b50565b6000614174600083614159565b915061417f82614164565b600082019050919050565b600061419582614167565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506141dd8161308b565b92915050565b6000602082840312156141f9576141f8612f27565b5b6000614207848285016141ce565b91505092915050565b6000819050919050565b600061423561423061422b84614210565b61312d565b612f31565b9050919050565b6142458161421a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61428081613079565b82525050565b60006142928383614277565b60208301905092915050565b6000602082019050919050565b60006142b68261424b565b6142c08185614256565b93506142cb83614267565b8060005b838110156142fc5781516142e38882614286565b97506142ee8361429e565b9250506001810190506142cf565b5085935050505092915050565b600060a08201905061431e60008301886131a7565b61432b602083018761423c565b818103604083015261433d81866142ab565b905061434c6060830185613224565b61435960808301846131a7565b9695505050505050565b600060c0820190506143786000830189613224565b61438560208301886131a7565b614392604083018761423c565b61439f606083018661423c565b6143ac6080830185613224565b6143b960a08301846131a7565b979650505050505050565b6000815190506143d381612f3b565b92915050565b6000806000606084860312156143f2576143f1612f27565b5b6000614400868287016143c4565b9350506020614411868287016143c4565b9250506040614422868287016143c4565b915050925092509256fea26469706673582212202be4dc96745bb1d400a8b6c2c995b6d53f242b428d5d9b83ed99e19a39368d7064736f6c63430008100033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806375f0a87411610118578063c0246668116100a0578063d85ba0631161006f578063d85ba06314610778578063dd62ed3e146107a3578063e2f45605146107e0578063f2fde38b1461080b578063f8b45b05146108345761020f565b8063c0246668146106be578063c492f046146106e7578063c8c8ebe414610710578063d257b34f1461073b5761020f565b806396188399116100e757806396188399146105c75780639a7a23d6146105f0578063a457c2d714610619578063a9059cbb14610656578063bbc0c742146106935761020f565b806375f0a8741461052f5780638a8c523c1461055a5780638da5cb5b1461057157806395d89b411461059c5761020f565b8063395093511161019b5780636a486a8e1161016a5780636a486a8e1461045c5780636ddd17131461048757806370a08231146104b2578063715018a6146104ef5780637571336a146105065761020f565b8063395093511461038e57806349bd5a5e146103cb5780634fbee193146103f657806366ca9b83146104335761020f565b806318160ddd116101d757806318160ddd146102d057806323b872dd146102fb57806327c8f83514610338578063313ce567146103635761020f565b806302dbd8f81461021457806306fdde031461023d578063095ea7b3146102685780631694505e146102a55761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612f67565b61085f565b005b34801561024957600080fd5b50610252610952565b60405161025f9190613037565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a91906130b7565b6109e4565b60405161029c9190613112565b60405180910390f35b3480156102b157600080fd5b506102ba610a02565b6040516102c7919061318c565b60405180910390f35b3480156102dc57600080fd5b506102e5610a26565b6040516102f291906131b6565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d91906131d1565b610a30565b60405161032f9190613112565b60405180910390f35b34801561034457600080fd5b5061034d610b28565b60405161035a9190613233565b60405180910390f35b34801561036f57600080fd5b50610378610b2e565b604051610385919061326a565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b091906130b7565b610b37565b6040516103c29190613112565b60405180910390f35b3480156103d757600080fd5b506103e0610be3565b6040516103ed9190613233565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613285565b610c07565b60405161042a9190613112565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190612f67565b610c5d565b005b34801561046857600080fd5b50610471610d47565b60405161047e91906131b6565b60405180910390f35b34801561049357600080fd5b5061049c610d4d565b6040516104a99190613112565b60405180910390f35b3480156104be57600080fd5b506104d960048036038101906104d49190613285565b610d60565b6040516104e691906131b6565b60405180910390f35b3480156104fb57600080fd5b50610504610da8565b005b34801561051257600080fd5b5061052d600480360381019061052891906132de565b610e30565b005b34801561053b57600080fd5b50610544610f07565b6040516105519190613233565b60405180910390f35b34801561056657600080fd5b5061056f610f2d565b005b34801561057d57600080fd5b50610586610fe1565b6040516105939190613233565b60405180910390f35b3480156105a857600080fd5b506105b161100b565b6040516105be9190613037565b60405180910390f35b3480156105d357600080fd5b506105ee60048036038101906105e99190612f67565b61109d565b005b3480156105fc57600080fd5b50610617600480360381019061061291906132de565b61123d565b005b34801561062557600080fd5b50610640600480360381019061063b91906130b7565b611355565b60405161064d9190613112565b60405180910390f35b34801561066257600080fd5b5061067d600480360381019061067891906130b7565b611440565b60405161068a9190613112565b60405180910390f35b34801561069f57600080fd5b506106a861145e565b6040516106b59190613112565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e091906132de565b611471565b005b3480156106f357600080fd5b5061070e60048036038101906107099190613383565b611596565b005b34801561071c57600080fd5b506107256116b7565b60405161073291906131b6565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d91906133e3565b6116bd565b60405161076f9190613112565b60405180910390f35b34801561078457600080fd5b5061078d611812565b60405161079a91906131b6565b60405180910390f35b3480156107af57600080fd5b506107ca60048036038101906107c59190613410565b611818565b6040516107d791906131b6565b60405180910390f35b3480156107ec57600080fd5b506107f561189f565b60405161080291906131b6565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d9190613285565b6118a5565b005b34801561084057600080fd5b5061084961199c565b60405161085691906131b6565b60405180910390f35b6108676119a2565b73ffffffffffffffffffffffffffffffffffffffff16610885610fe1565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d29061349c565b60405180910390fd5b81600f8190555080601081905550601054600f546108f991906134eb565b600e81905550600e546013819055506063600e54111561094e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109459061356b565b60405180910390fd5b5050565b606060038054610961906135ba565b80601f016020809104026020016040519081016040528092919081815260200182805461098d906135ba565b80156109da5780601f106109af576101008083540402835291602001916109da565b820191906000526020600020905b8154815290600101906020018083116109bd57829003601f168201915b5050505050905090565b60006109f86109f16119a2565b84846119aa565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b6000610a3d848484611b73565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a886119a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff9061365d565b60405180910390fd5b610b1c85610b146119a2565b8584036119aa565b60019150509392505050565b61dead81565b60006012905090565b6000610bd9610b446119a2565b848460016000610b526119a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bd491906134eb565b6119aa565b6001905092915050565b7f000000000000000000000000c097de3194cdf7ec19defafa017e0da410cf33a581565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c656119a2565b73ffffffffffffffffffffffffffffffffffffffff16610c83610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd09061349c565b60405180910390fd5b81600c8190555080600d81905550600d54600c54610cf791906134eb565b600b819055506014600b541115610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a906136c9565b60405180910390fd5b5050565b600e5481565b600a60019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610db06119a2565b73ffffffffffffffffffffffffffffffffffffffff16610dce610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b9061349c565b60405180910390fd5b610e2e60006125cf565b565b610e386119a2565b73ffffffffffffffffffffffffffffffffffffffff16610e56610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea39061349c565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f356119a2565b73ffffffffffffffffffffffffffffffffffffffff16610f53610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614610fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa09061349c565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461101a906135ba565b80601f0160208091040260200160405190810160405280929190818152602001828054611046906135ba565b80156110935780601f1061106857610100808354040283529160200191611093565b820191906000526020600020905b81548152906001019060200180831161107657829003601f168201915b5050505050905090565b6110a56119a2565b73ffffffffffffffffffffffffffffffffffffffff166110c3610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614611119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111109061349c565b60405180910390fd5b670de0b6b3a76400006103e8600561112f610a26565b61113991906136e9565b6111439190613772565b61114d9190613772565b82101561118f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118690613815565b60405180910390fd5b670de0b6b3a76400006103e860056111a5610a26565b6111af91906136e9565b6111b99190613772565b6111c39190613772565b811015611205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fc906138a7565b60405180910390fd5b670de0b6b3a76400008161121991906136e9565b600981905550670de0b6b3a76400008261123391906136e9565b6007819055505050565b6112456119a2565b73ffffffffffffffffffffffffffffffffffffffff16611263610fe1565b73ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b09061349c565b60405180910390fd5b7f000000000000000000000000c097de3194cdf7ec19defafa017e0da410cf33a573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90613939565b60405180910390fd5b6113518282612695565b5050565b600080600160006113646119a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611421576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611418906139cb565b60405180910390fd5b61143561142c6119a2565b858584036119aa565b600191505092915050565b600061145461144d6119a2565b8484611b73565b6001905092915050565b600a60009054906101000a900460ff1681565b6114796119a2565b73ffffffffffffffffffffffffffffffffffffffff16611497610fe1565b73ffffffffffffffffffffffffffffffffffffffff16146114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e49061349c565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161158a9190613112565b60405180910390a25050565b61159e6119a2565b73ffffffffffffffffffffffffffffffffffffffff166115bc610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614611612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116099061349c565b60405180910390fd5b60005b838390508110156116b1578160146000868685818110611638576116376139eb565b5b905060200201602081019061164d9190613285565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116a990613a1a565b915050611615565b50505050565b60075481565b60006116c76119a2565b73ffffffffffffffffffffffffffffffffffffffff166116e5610fe1565b73ffffffffffffffffffffffffffffffffffffffff161461173b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117329061349c565b60405180910390fd5b620186a06001611749610a26565b61175391906136e9565b61175d9190613772565b82101561179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179690613ad4565b60405180910390fd5b6103e860056117ac610a26565b6117b691906136e9565b6117c09190613772565b821115611802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f990613b66565b60405180910390fd5b8160088190555060019050919050565b600b5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6118ad6119a2565b73ffffffffffffffffffffffffffffffffffffffff166118cb610fe1565b73ffffffffffffffffffffffffffffffffffffffff1614611921576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119189061349c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790613bf8565b60405180910390fd5b611999816125cf565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1090613c8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7f90613d1c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b6691906131b6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4890613e40565b60405180910390fd5b60008103611c6a57611c6583836000612736565b6125ca565b611c72610fe1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ce05750611cb0610fe1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d53575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d6c5750600560149054906101000a900460ff16155b1561214f57600a60009054906101000a900460ff16611e6657601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e265750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c90613eac565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f095750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fb057600754811115611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a90613f3e565b60405180910390fd5b600954611f5f83610d60565b82611f6a91906134eb565b1115611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa290613faa565b60405180910390fd5b61214e565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156120535750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120a25760075481111561209d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120949061403c565b60405180910390fd5b61214d565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661214c576009546120ff83610d60565b8261210a91906134eb565b111561214b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214290613faa565b60405180910390fd5b5b5b5b5b600061215a30610d60565b90506000600854821015905080801561217f5750600a60019054906101000a900460ff165b80156121985750600560149054906101000a900460ff16155b80156121ee5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122445750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561229a5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122de576001600560146101000a81548160ff0219169083151502179055506122c26129b5565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123945750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561239e57600090505b600081156125b157601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561240157506000600e54115b1561249b5761242e6064612420600e5488612bc290919063ffffffff16565b612bd890919063ffffffff16565b9050600e546010548261244191906136e9565b61244b9190613772565b6012600082825461245c91906134eb565b92505081905550600e54600f548261247491906136e9565b61247e9190613772565b6011600082825461248f91906134eb565b9250508190555061258d565b601660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124f657506000600b54115b1561258c576125236064612515600b5488612bc290919063ffffffff16565b612bd890919063ffffffff16565b9050600b54600d548261253691906136e9565b6125409190613772565b6012600082825461255191906134eb565b92505081905550600b54600c548261256991906136e9565b6125739190613772565b6011600082825461258491906134eb565b925050819055505b5b60008111156125a2576125a1873083612736565b5b80856125ae919061405c565b94505b6125bc878787612736565b601354600e81905550505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c90613dae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280b90613e40565b60405180910390fd5b61281f838383612bee565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289c90614102565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461293891906134eb565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161299c91906131b6565b60405180910390a36129af848484612bf3565b50505050565b60006129c030610d60565b905060006011546012546129d491906134eb565b90506000808314806129e65750600082145b156129f357505050612bc0565b6014600854612a0291906136e9565b831115612a1b576014600854612a1891906136e9565b92505b600060028360125486612a2e91906136e9565b612a389190613772565b612a429190613772565b90506000612a598286612bf890919063ffffffff16565b90506000479050612a6982612c0e565b6000612a7e8247612bf890919063ffffffff16565b90506000612aa987612a9b60115485612bc290919063ffffffff16565b612bd890919063ffffffff16565b905060008183612ab9919061405c565b905060006012819055506000601181905550600086118015612adb5750600081115b15612b2857612aea8682612e4b565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618582601254604051612b1f93929190614122565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612b6e9061418a565b60006040518083038185875af1925050503d8060008114612bab576040519150601f19603f3d011682016040523d82523d6000602084013e612bb0565b606091505b5050809750505050505050505050505b565b60008183612bd091906136e9565b905092915050565b60008183612be69190613772565b905092915050565b505050565b505050565b60008183612c06919061405c565b905092915050565b6000600267ffffffffffffffff811115612c2b57612c2a61419f565b5b604051908082528060200260200182016040528015612c595781602001602082028036833780820191505090505b5090503081600081518110612c7157612c706139eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3a91906141e3565b81600181518110612d4e57612d4d6139eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612db3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846119aa565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e15959493929190614309565b600060405180830381600087803b158015612e2f57600080fd5b505af1158015612e43573d6000803e3d6000fd5b505050505050565b612e76307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846119aa565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612edd96959493929190614363565b60606040518083038185885af1158015612efb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f2091906143d9565b5050505050565b600080fd5b600080fd5b6000819050919050565b612f4481612f31565b8114612f4f57600080fd5b50565b600081359050612f6181612f3b565b92915050565b60008060408385031215612f7e57612f7d612f27565b5b6000612f8c85828601612f52565b9250506020612f9d85828601612f52565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe1578082015181840152602081019050612fc6565b60008484015250505050565b6000601f19601f8301169050919050565b600061300982612fa7565b6130138185612fb2565b9350613023818560208601612fc3565b61302c81612fed565b840191505092915050565b600060208201905081810360008301526130518184612ffe565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061308482613059565b9050919050565b61309481613079565b811461309f57600080fd5b50565b6000813590506130b18161308b565b92915050565b600080604083850312156130ce576130cd612f27565b5b60006130dc858286016130a2565b92505060206130ed85828601612f52565b9150509250929050565b60008115159050919050565b61310c816130f7565b82525050565b60006020820190506131276000830184613103565b92915050565b6000819050919050565b600061315261314d61314884613059565b61312d565b613059565b9050919050565b600061316482613137565b9050919050565b600061317682613159565b9050919050565b6131868161316b565b82525050565b60006020820190506131a1600083018461317d565b92915050565b6131b081612f31565b82525050565b60006020820190506131cb60008301846131a7565b92915050565b6000806000606084860312156131ea576131e9612f27565b5b60006131f8868287016130a2565b9350506020613209868287016130a2565b925050604061321a86828701612f52565b9150509250925092565b61322d81613079565b82525050565b60006020820190506132486000830184613224565b92915050565b600060ff82169050919050565b6132648161324e565b82525050565b600060208201905061327f600083018461325b565b92915050565b60006020828403121561329b5761329a612f27565b5b60006132a9848285016130a2565b91505092915050565b6132bb816130f7565b81146132c657600080fd5b50565b6000813590506132d8816132b2565b92915050565b600080604083850312156132f5576132f4612f27565b5b6000613303858286016130a2565b9250506020613314858286016132c9565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126133435761334261331e565b5b8235905067ffffffffffffffff8111156133605761335f613323565b5b60208301915083602082028301111561337c5761337b613328565b5b9250929050565b60008060006040848603121561339c5761339b612f27565b5b600084013567ffffffffffffffff8111156133ba576133b9612f2c565b5b6133c68682870161332d565b935093505060206133d9868287016132c9565b9150509250925092565b6000602082840312156133f9576133f8612f27565b5b600061340784828501612f52565b91505092915050565b6000806040838503121561342757613426612f27565b5b6000613435858286016130a2565b9250506020613446858286016130a2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613486602083612fb2565b915061349182613450565b602082019050919050565b600060208201905081810360008301526134b581613479565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134f682612f31565b915061350183612f31565b9250828201905080821115613519576135186134bc565b5b92915050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000613555601d83612fb2565b91506135608261351f565b602082019050919050565b6000602082019050818103600083015261358481613548565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135d257607f821691505b6020821081036135e5576135e461358b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613647602883612fb2565b9150613652826135eb565b604082019050919050565b600060208201905081810360008301526136768161363a565b9050919050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b60006136b3601d83612fb2565b91506136be8261367d565b602082019050919050565b600060208201905081810360008301526136e2816136a6565b9050919050565b60006136f482612f31565b91506136ff83612f31565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613738576137376134bc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061377d82612f31565b915061378883612f31565b92508261379857613797613743565b5b828204905092915050565b7f43616e6e6f7420736574206d617854786e206c6f776572207468616e20302e3560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006137ff602183612fb2565b915061380a826137a3565b604082019050919050565b6000602082019050818103600083015261382e816137f2565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b6000613891602483612fb2565b915061389c82613835565b604082019050919050565b600060208201905081810360008301526138c081613884565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613923603983612fb2565b915061392e826138c7565b604082019050919050565b6000602082019050818103600083015261395281613916565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006139b5602583612fb2565b91506139c082613959565b604082019050919050565b600060208201905081810360008301526139e4816139a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613a2582612f31565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a5757613a566134bc565b5b600182019050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000613abe603583612fb2565b9150613ac982613a62565b604082019050919050565b60006020820190508181036000830152613aed81613ab1565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b6000613b50603483612fb2565b9150613b5b82613af4565b604082019050919050565b60006020820190508181036000830152613b7f81613b43565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613be2602683612fb2565b9150613bed82613b86565b604082019050919050565b60006020820190508181036000830152613c1181613bd5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c74602483612fb2565b9150613c7f82613c18565b604082019050919050565b60006020820190508181036000830152613ca381613c67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d06602283612fb2565b9150613d1182613caa565b604082019050919050565b60006020820190508181036000830152613d3581613cf9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613d98602583612fb2565b9150613da382613d3c565b604082019050919050565b60006020820190508181036000830152613dc781613d8b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613e2a602383612fb2565b9150613e3582613dce565b604082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613e96601683612fb2565b9150613ea182613e60565b602082019050919050565b60006020820190508181036000830152613ec581613e89565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613f28603583612fb2565b9150613f3382613ecc565b604082019050919050565b60006020820190508181036000830152613f5781613f1b565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613f94601383612fb2565b9150613f9f82613f5e565b602082019050919050565b60006020820190508181036000830152613fc381613f87565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614026603683612fb2565b915061403182613fca565b604082019050919050565b6000602082019050818103600083015261405581614019565b9050919050565b600061406782612f31565b915061407283612f31565b925082820390508181111561408a576140896134bc565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006140ec602683612fb2565b91506140f782614090565b604082019050919050565b6000602082019050818103600083015261411b816140df565b9050919050565b600060608201905061413760008301866131a7565b61414460208301856131a7565b61415160408301846131a7565b949350505050565b600081905092915050565b50565b6000614174600083614159565b915061417f82614164565b600082019050919050565b600061419582614167565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506141dd8161308b565b92915050565b6000602082840312156141f9576141f8612f27565b5b6000614207848285016141ce565b91505092915050565b6000819050919050565b600061423561423061422b84614210565b61312d565b612f31565b9050919050565b6142458161421a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61428081613079565b82525050565b60006142928383614277565b60208301905092915050565b6000602082019050919050565b60006142b68261424b565b6142c08185614256565b93506142cb83614267565b8060005b838110156142fc5781516142e38882614286565b97506142ee8361429e565b9250506001810190506142cf565b5085935050505092915050565b600060a08201905061431e60008301886131a7565b61432b602083018761423c565b818103604083015261433d81866142ab565b905061434c6060830185613224565b61435960808301846131a7565b9695505050505050565b600060c0820190506143786000830189613224565b61438560208301886131a7565b614392604083018761423c565b61439f606083018661423c565b6143ac6080830185613224565b6143b960a08301846131a7565b979650505050505050565b6000815190506143d381612f3b565b92915050565b6000806000606084860312156143f2576143f1612f27565b5b6000614400868287016143c4565b9350506020614411868287016143c4565b9250506040614422868287016143c4565b915050925092509256fea26469706673582212202be4dc96745bb1d400a8b6c2c995b6d53f242b428d5d9b83ed99e19a39368d7064736f6c63430008100033

Deployed Bytecode Sourcemap

14188:12477:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19175:380;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2724:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3638:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14264:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3815:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14367:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2944:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4315:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14322:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20504:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18832:335;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14805:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14653:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3161:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;849:112;;;;;;;;;;;;;:::i;:::-;;18657:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14459:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17520:112;;;;;;;;;;;;;:::i;:::-;;626:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2832:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18145:504;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19996:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4538:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3296:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14613:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19563:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19753:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14498:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17640:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14693:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3479:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14540:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;969:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14580:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19175:380;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19319:13:::1;19300:16;:32;;;;19362:13;19343:16;:32;;;;19421:16;;19402;;:35;;;;:::i;:::-;19386:13;:51;;;;19462:13;;19448:11;:27;;;;19511:2;19494:13;;:19;;19486:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;19175:380:::0;;:::o;2724:100::-;2778:13;2811:5;2804:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:100;:::o;3638:169::-;3721:4;3738:39;3747:12;:10;:12::i;:::-;3761:7;3770:6;3738:8;:39::i;:::-;3795:4;3788:11;;3638:169;;;;:::o;14264:51::-;;;:::o;3045:108::-;3106:7;3133:12;;3126:19;;3045:108;:::o;3815:492::-;3955:4;3972:36;3982:6;3990:9;4001:6;3972:9;:36::i;:::-;4021:24;4048:11;:19;4060:6;4048:19;;;;;;;;;;;;;;;:33;4068:12;:10;:12::i;:::-;4048:33;;;;;;;;;;;;;;;;4021:60;;4120:6;4100:16;:26;;4092:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4207:57;4216:6;4224:12;:10;:12::i;:::-;4257:6;4238:16;:25;4207:8;:57::i;:::-;4295:4;4288:11;;;3815:492;;;;;:::o;14367:53::-;14413:6;14367:53;:::o;2944:93::-;3002:5;3027:2;3020:9;;2944:93;:::o;4315:215::-;4403:4;4420:80;4429:12;:10;:12::i;:::-;4443:7;4489:10;4452:11;:25;4464:12;:10;:12::i;:::-;4452:25;;;;;;;;;;;;;;;:34;4478:7;4452:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4420:8;:80::i;:::-;4518:4;4511:11;;4315:215;;;;:::o;14322:38::-;;;:::o;20504:126::-;20570:4;20594:19;:28;20614:7;20594:28;;;;;;;;;;;;;;;;;;;;;;;;;20587:35;;20504:126;;;:::o;18832:335::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18974:13:::1;18956:15;:31;;;;19016:13;18998:15;:31;;;;19073:15;;19055;;:33;;;;:::i;:::-;19040:12;:48;;;;19123:2;19107:12;;:18;;19099:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;18832:335:::0;;:::o;14805:28::-;;;;:::o;14653:31::-;;;;;;;;;;;;;:::o;3161:127::-;3235:7;3262:9;:18;3272:7;3262:18;;;;;;;;;;;;;;;;3255:25;;3161:127;;;:::o;849:112::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;923:30:::1;950:1;923:18;:30::i;:::-;849:112::o:0;18657:167::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18812:4:::1;18770:31;:39;18802:6;18770:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18657:167:::0;;:::o;14459:30::-;;;;;;;;;;;;;:::o;17520:112::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17591:4:::1;17575:13;;:20;;;;;;;;;;;;;;;;;;17620:4;17606:11;;:18;;;;;;;;;;;;;;;;;;17520:112::o:0;626:87::-;672:7;699:6;;;;;;;;;;;692:13;;626:87;:::o;2832:104::-;2888:13;2921:7;2914:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2832:104;:::o;18145:504::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18322:4:::1;18314;18309:1;18293:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18292:26;;;;:::i;:::-;18291:35;;;;:::i;:::-;18278:9;:48;;18256:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;18470:4;18462;18457:1;18441:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18440:26;;;;:::i;:::-;18439:35;;;;:::i;:::-;18420:15;:54;;18398:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;18580:6;18561:15;:26;;;;:::i;:::-;18549:9;:38;;;;18634:6;18621:9;:20;;;;:::i;:::-;18598;:43;;;;18145:504:::0;;:::o;19996:304::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20140:13:::1;20132:21;;:4;:21;;::::0;20110:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20251:41;20280:4;20286:5;20251:28;:41::i;:::-;19996:304:::0;;:::o;4538:413::-;4631:4;4648:24;4675:11;:25;4687:12;:10;:12::i;:::-;4675:25;;;;;;;;;;;;;;;:34;4701:7;4675:34;;;;;;;;;;;;;;;;4648:61;;4748:15;4728:16;:35;;4720:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4841:67;4850:12;:10;:12::i;:::-;4864:7;4892:15;4873:16;:34;4841:8;:67::i;:::-;4939:4;4932:11;;;4538:413;;;;:::o;3296:175::-;3382:4;3399:42;3409:12;:10;:12::i;:::-;3423:9;3434:6;3399:9;:42::i;:::-;3459:4;3452:11;;3296:175;;;;:::o;14613:33::-;;;;;;;;;;;;;:::o;19563:182::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19679:8:::1;19648:19;:28;19668:7;19648:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19719:7;19703:34;;;19728:8;19703:34;;;;;;:::i;:::-;;;;;;;;19563:182:::0;;:::o;19753:235::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19870:9:::1;19866:115;19889:8;;:15;;19885:1;:19;19866:115;;;19961:8;19926:19;:32;19946:8;;19955:1;19946:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19926:32;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;19906:3;;;;;:::i;:::-;;;;19866:115;;;;19753:235:::0;;;:::o;14498:35::-;;;;:::o;17640:497::-;17748:4;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17827:6:::1;17822:1;17806:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17805:28;;;;:::i;:::-;17792:9;:41;;17770:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;17982:4;17977:1;17961:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17960:26;;;;:::i;:::-;17947:9;:39;;17925:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;18098:9;18077:18;:30;;;;18125:4;18118:11;;17640:497:::0;;;:::o;14693:27::-;;;;:::o;3479:151::-;3568:7;3595:11;:18;3607:5;3595:18;;;;;;;;;;;;;;;:27;3614:7;3595:27;;;;;;;;;;;;;;;;3588:34;;3479:151;;;;:::o;14540:33::-;;;;:::o;969:201::-;772:12;:10;:12::i;:::-;761:23;;:7;:5;:7::i;:::-;:23;;;753:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1:::1;1058:22;;:8;:22;;::::0;1050:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1134:28;1153:8;1134:18;:28::i;:::-;969:201:::0;:::o;14580:24::-;;;;:::o;172:98::-;225:7;252:10;245:17;;172:98;:::o;6107:380::-;6260:1;6243:19;;:5;:19;;;6235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6341:1;6322:21;;:7;:21;;;6314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6425:6;6395:11;:18;6407:5;6395:18;;;;;;;;;;;;;;;:27;6414:7;6395:27;;;;;;;;;;;;;;;:36;;;;6463:7;6447:32;;6456:5;6447:32;;;6472:6;6447:32;;;;;;:::i;:::-;;;;;;;;6107:380;;;:::o;20638:3667::-;20786:1;20770:18;;:4;:18;;;20762:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20863:1;20849:16;;:2;:16;;;20841:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20932:1;20922:6;:11;20918:93;;20950:28;20966:4;20972:2;20976:1;20950:15;:28::i;:::-;20993:7;;20918:93;21061:7;:5;:7::i;:::-;21053:15;;:4;:15;;;;:49;;;;;21095:7;:5;:7::i;:::-;21089:13;;:2;:13;;;;21053:49;:86;;;;;21137:1;21123:16;;:2;:16;;;;21053:86;:128;;;;;21174:6;21160:21;;:2;:21;;;;21053:128;:158;;;;;21203:8;;;;;;;;;;;21202:9;21053:158;21031:1684;;;21251:13;;;;;;;;;;;21246:223;;21323:19;:25;21343:4;21323:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21352:19;:23;21372:2;21352:23;;;;;;;;;;;;;;;;;;;;;;;;;21323:52;21289:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;21246:223;21543:25;:31;21569:4;21543:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;21600:31;:35;21632:2;21600:35;;;;;;;;;;;;;;;;;;;;;;;;;21599:36;21543:92;21517:1183;;;21722:20;;21712:6;:30;;21678:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;21930:9;;21913:13;21923:2;21913:9;:13::i;:::-;21904:6;:22;;;;:::i;:::-;:35;;21870:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;21517:1183;;;22108:25;:29;22134:2;22108:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;22163:31;:37;22195:4;22163:37;;;;;;;;;;;;;;;;;;;;;;;;;22162:38;22108:92;22082:618;;;22287:20;;22277:6;:30;;22243:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;22082:618;;;22480:31;:35;22512:2;22480:35;;;;;;;;;;;;;;;;;;;;;;;;;22475:225;;22600:9;;22583:13;22593:2;22583:9;:13::i;:::-;22574:6;:22;;;;:::i;:::-;:35;;22540:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;22475:225;22082:618;21517:1183;21031:1684;22727:28;22758:24;22776:4;22758:9;:24::i;:::-;22727:55;;22795:12;22834:18;;22810:20;:42;;22795:57;;22883:7;:35;;;;;22907:11;;;;;;;;;;;22883:35;:61;;;;;22936:8;;;;;;;;;;;22935:9;22883:61;:110;;;;;22962:25;:31;22988:4;22962:31;;;;;;;;;;;;;;;;;;;;;;;;;22961:32;22883:110;:153;;;;;23011:19;:25;23031:4;23011:25;;;;;;;;;;;;;;;;;;;;;;;;;23010:26;22883:153;:194;;;;;23054:19;:23;23074:2;23054:23;;;;;;;;;;;;;;;;;;;;;;;;;23053:24;22883:194;22865:326;;;23115:4;23104:8;;:15;;;;;;;;;;;;;;;;;;23136:10;:8;:10::i;:::-;23174:5;23163:8;;:16;;;;;;;;;;;;;;;;;;22865:326;23203:12;23219:8;;;;;;;;;;;23218:9;23203:24;;23244:19;:25;23264:4;23244:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23273:19;:23;23293:2;23273:23;;;;;;;;;;;;;;;;;;;;;;;;;23244:52;23240:100;;;23323:5;23313:15;;23240:100;23352:12;23385:7;23381:831;;;23437:25;:29;23463:2;23437:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23486:1;23470:13;;:17;23437:50;23433:630;;;23515:34;23545:3;23515:25;23526:13;;23515:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23508:41;;23618:13;;23598:16;;23591:4;:23;;;;:::i;:::-;23590:41;;;;:::i;:::-;23568:18;;:63;;;;;;;:::i;:::-;;;;;;;;23700:13;;23680:16;;23673:4;:23;;;;:::i;:::-;23672:41;;;;:::i;:::-;23650:18;;:63;;;;;;;:::i;:::-;;;;;;;;23433:630;;;23775:25;:31;23801:4;23775:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;23825:1;23810:12;;:16;23775:51;23771:292;;;23854:33;23883:3;23854:24;23865:12;;23854:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;23847:40;;23955:12;;23936:15;;23929:4;:22;;;;:::i;:::-;23928:39;;;;:::i;:::-;23906:18;;:61;;;;;;;:::i;:::-;;;;;;;;24035:12;;24016:15;;24009:4;:22;;;;:::i;:::-;24008:39;;;;:::i;:::-;23986:18;;:61;;;;;;;:::i;:::-;;;;;;;;23771:292;23433:630;24090:1;24083:4;:8;24079:91;;;24112:42;24128:4;24142;24149;24112:15;:42::i;:::-;24079:91;24196:4;24186:14;;;;;:::i;:::-;;;23381:831;24224:33;24240:4;24246:2;24250:6;24224:15;:33::i;:::-;24284:11;;24268:13;:27;;;;20751:3554;;;;20638:3667;;;;:::o;1178:191::-;1252:16;1271:6;;;;;;;;;;;1252:25;;1297:8;1288:6;;:17;;;;;;;;;;;;;;;;;;1352:8;1321:40;;1342:8;1321:40;;;;;;;;;;;;1241:128;1178:191;:::o;20308:188::-;20425:5;20391:25;:31;20417:4;20391:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20482:5;20448:40;;20476:4;20448:40;;;;;;;;;;;;20308:188;;:::o;4959:733::-;5117:1;5099:20;;:6;:20;;;5091:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5201:1;5180:23;;:9;:23;;;5172:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5256:47;5277:6;5285:9;5296:6;5256:20;:47::i;:::-;5316:21;5340:9;:17;5350:6;5340:17;;;;;;;;;;;;;;;;5316:41;;5393:6;5376:13;:23;;5368:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5514:6;5498:13;:22;5478:9;:17;5488:6;5478:17;;;;;;;;;;;;;;;:42;;;;5566:6;5542:9;:20;5552:9;5542:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5607:9;5590:35;;5599:6;5590:35;;;5618:6;5590:35;;;;;;:::i;:::-;;;;;;;;5638:46;5658:6;5666:9;5677:6;5638:19;:46::i;:::-;5080:612;4959:733;;;:::o;25200:1462::-;25239:23;25265:24;25283:4;25265:9;:24::i;:::-;25239:50;;25300:25;25362:18;;25328;;:52;;;;:::i;:::-;25300:80;;25391:12;25439:1;25420:15;:20;:46;;;;25465:1;25444:17;:22;25420:46;25416:85;;;25483:7;;;;;25416:85;25556:2;25535:18;;:23;;;;:::i;:::-;25517:15;:41;25513:115;;;25614:2;25593:18;;:23;;;;:::i;:::-;25575:41;;25513:115;25640:23;25753:1;25720:17;25685:18;;25667:15;:36;;;;:::i;:::-;25666:71;;;;:::i;:::-;:88;;;;:::i;:::-;25640:114;;25765:26;25794:36;25814:15;25794;:19;;:36;;;;:::i;:::-;25765:65;;25843:25;25871:21;25843:49;;25905:36;25922:18;25905:16;:36::i;:::-;25954:18;25975:44;26001:17;25975:21;:25;;:44;;;;:::i;:::-;25954:65;;26032:23;26058:81;26111:17;26058:34;26073:18;;26058:10;:14;;:34;;;;:::i;:::-;:38;;:81;;;;:::i;:::-;26032:107;;26152:23;26191:15;26178:10;:28;;;;:::i;:::-;26152:54;;26240:1;26219:18;:22;;;;26273:1;26252:18;:22;;;;26309:1;26291:15;:19;:42;;;;;26332:1;26314:15;:19;26291:42;26287:278;;;26350:46;26363:15;26380;26350:12;:46::i;:::-;26416:137;26449:18;26486:15;26520:18;;26416:137;;;;;;;;:::i;:::-;;;;;;;;26287:278;26599:15;;;;;;;;;;;26591:29;;26628:21;26591:63;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26577:77;;;;;25228:1434;;;;;;;;;25200:1462;:::o;8113:98::-;8171:7;8202:1;8198;:5;;;;:::i;:::-;8191:12;;8113:98;;;;:::o;8219:::-;8277:7;8308:1;8304;:5;;;;:::i;:::-;8297:12;;8219:98;;;;:::o;6495:125::-;;;;:::o;6628:124::-;;;;:::o;8007:98::-;8065:7;8096:1;8092;:5;;;;:::i;:::-;8085:12;;8007:98;;;;:::o;24313:503::-;24381:21;24419:1;24405:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24381:40;;24450:4;24432;24437:1;24432:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24476:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24466:4;24471:1;24466:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24511:62;24528:4;24543:15;24561:11;24511:8;:62::i;:::-;24612:15;:66;;;24693:11;24719:1;24735:4;24762;24782:15;24612:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24368:448;24313:503;:::o;24824:368::-;24907:62;24924:4;24939:15;24957:11;24907:8;:62::i;:::-;24982:15;:31;;;25021:9;25054:4;25074:11;25100:1;25116;14413:6;25158:15;24982:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24824:368;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:619::-;5333:6;5341;5349;5398:2;5386:9;5377:7;5373:23;5369:32;5366:119;;;5404:79;;:::i;:::-;5366:119;5524:1;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5495:117;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5779:2;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5750:118;5256:619;;;;;:::o;5881:118::-;5968:24;5986:5;5968:24;:::i;:::-;5963:3;5956:37;5881:118;;:::o;6005:222::-;6098:4;6136:2;6125:9;6121:18;6113:26;;6149:71;6217:1;6206:9;6202:17;6193:6;6149:71;:::i;:::-;6005:222;;;;:::o;6233:86::-;6268:7;6308:4;6301:5;6297:16;6286:27;;6233:86;;;:::o;6325:112::-;6408:22;6424:5;6408:22;:::i;:::-;6403:3;6396:35;6325:112;;:::o;6443:214::-;6532:4;6570:2;6559:9;6555:18;6547:26;;6583:67;6647:1;6636:9;6632:17;6623:6;6583:67;:::i;:::-;6443:214;;;;:::o;6663:329::-;6722:6;6771:2;6759:9;6750:7;6746:23;6742:32;6739:119;;;6777:79;;:::i;:::-;6739:119;6897:1;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6868:117;6663:329;;;;:::o;6998:116::-;7068:21;7083:5;7068:21;:::i;:::-;7061:5;7058:32;7048:60;;7104:1;7101;7094:12;7048:60;6998:116;:::o;7120:133::-;7163:5;7201:6;7188:20;7179:29;;7217:30;7241:5;7217:30;:::i;:::-;7120:133;;;;:::o;7259:468::-;7324:6;7332;7381:2;7369:9;7360:7;7356:23;7352:32;7349:119;;;7387:79;;:::i;:::-;7349:119;7507:1;7532:53;7577:7;7568:6;7557:9;7553:22;7532:53;:::i;:::-;7522:63;;7478:117;7634:2;7660:50;7702:7;7693:6;7682:9;7678:22;7660:50;:::i;:::-;7650:60;;7605:115;7259:468;;;;;:::o;7733:117::-;7842:1;7839;7832:12;7856:117;7965:1;7962;7955:12;7979:117;8088:1;8085;8078:12;8119:568;8192:8;8202:6;8252:3;8245:4;8237:6;8233:17;8229:27;8219:122;;8260:79;;:::i;:::-;8219:122;8373:6;8360:20;8350:30;;8403:18;8395:6;8392:30;8389:117;;;8425:79;;:::i;:::-;8389:117;8539:4;8531:6;8527:17;8515:29;;8593:3;8585:4;8577:6;8573:17;8563:8;8559:32;8556:41;8553:128;;;8600:79;;:::i;:::-;8553:128;8119:568;;;;;:::o;8693:698::-;8785:6;8793;8801;8850:2;8838:9;8829:7;8825:23;8821:32;8818:119;;;8856:79;;:::i;:::-;8818:119;9004:1;8993:9;8989:17;8976:31;9034:18;9026:6;9023:30;9020:117;;;9056:79;;:::i;:::-;9020:117;9169:80;9241:7;9232:6;9221:9;9217:22;9169:80;:::i;:::-;9151:98;;;;8947:312;9298:2;9324:50;9366:7;9357:6;9346:9;9342:22;9324:50;:::i;:::-;9314:60;;9269:115;8693:698;;;;;:::o;9397:329::-;9456:6;9505:2;9493:9;9484:7;9480:23;9476:32;9473:119;;;9511:79;;:::i;:::-;9473:119;9631:1;9656:53;9701:7;9692:6;9681:9;9677:22;9656:53;:::i;:::-;9646:63;;9602:117;9397:329;;;;:::o;9732:474::-;9800:6;9808;9857:2;9845:9;9836:7;9832:23;9828:32;9825:119;;;9863:79;;:::i;:::-;9825:119;9983:1;10008:53;10053:7;10044:6;10033:9;10029:22;10008:53;:::i;:::-;9998:63;;9954:117;10110:2;10136:53;10181:7;10172:6;10161:9;10157:22;10136:53;:::i;:::-;10126:63;;10081:118;9732:474;;;;;:::o;10212:182::-;10352:34;10348:1;10340:6;10336:14;10329:58;10212:182;:::o;10400:366::-;10542:3;10563:67;10627:2;10622:3;10563:67;:::i;:::-;10556:74;;10639:93;10728:3;10639:93;:::i;:::-;10757:2;10752:3;10748:12;10741:19;;10400:366;;;:::o;10772:419::-;10938:4;10976:2;10965:9;10961:18;10953:26;;11025:9;11019:4;11015:20;11011:1;11000:9;10996:17;10989:47;11053:131;11179:4;11053:131;:::i;:::-;11045:139;;10772:419;;;:::o;11197:180::-;11245:77;11242:1;11235:88;11342:4;11339:1;11332:15;11366:4;11363:1;11356:15;11383:191;11423:3;11442:20;11460:1;11442:20;:::i;:::-;11437:25;;11476:20;11494:1;11476:20;:::i;:::-;11471:25;;11519:1;11516;11512:9;11505:16;;11540:3;11537:1;11534:10;11531:36;;;11547:18;;:::i;:::-;11531:36;11383:191;;;;:::o;11580:179::-;11720:31;11716:1;11708:6;11704:14;11697:55;11580:179;:::o;11765:366::-;11907:3;11928:67;11992:2;11987:3;11928:67;:::i;:::-;11921:74;;12004:93;12093:3;12004:93;:::i;:::-;12122:2;12117:3;12113:12;12106:19;;11765:366;;;:::o;12137:419::-;12303:4;12341:2;12330:9;12326:18;12318:26;;12390:9;12384:4;12380:20;12376:1;12365:9;12361:17;12354:47;12418:131;12544:4;12418:131;:::i;:::-;12410:139;;12137:419;;;:::o;12562:180::-;12610:77;12607:1;12600:88;12707:4;12704:1;12697:15;12731:4;12728:1;12721:15;12748:320;12792:6;12829:1;12823:4;12819:12;12809:22;;12876:1;12870:4;12866:12;12897:18;12887:81;;12953:4;12945:6;12941:17;12931:27;;12887:81;13015:2;13007:6;13004:14;12984:18;12981:38;12978:84;;13034:18;;:::i;:::-;12978:84;12799:269;12748:320;;;:::o;13074:227::-;13214:34;13210:1;13202:6;13198:14;13191:58;13283:10;13278:2;13270:6;13266:15;13259:35;13074:227;:::o;13307:366::-;13449:3;13470:67;13534:2;13529:3;13470:67;:::i;:::-;13463:74;;13546:93;13635:3;13546:93;:::i;:::-;13664:2;13659:3;13655:12;13648:19;;13307:366;;;:::o;13679:419::-;13845:4;13883:2;13872:9;13868:18;13860:26;;13932:9;13926:4;13922:20;13918:1;13907:9;13903:17;13896:47;13960:131;14086:4;13960:131;:::i;:::-;13952:139;;13679:419;;;:::o;14104:179::-;14244:31;14240:1;14232:6;14228:14;14221:55;14104:179;:::o;14289:366::-;14431:3;14452:67;14516:2;14511:3;14452:67;:::i;:::-;14445:74;;14528:93;14617:3;14528:93;:::i;:::-;14646:2;14641:3;14637:12;14630:19;;14289:366;;;:::o;14661:419::-;14827:4;14865:2;14854:9;14850:18;14842:26;;14914:9;14908:4;14904:20;14900:1;14889:9;14885:17;14878:47;14942:131;15068:4;14942:131;:::i;:::-;14934:139;;14661:419;;;:::o;15086:348::-;15126:7;15149:20;15167:1;15149:20;:::i;:::-;15144:25;;15183:20;15201:1;15183:20;:::i;:::-;15178:25;;15371:1;15303:66;15299:74;15296:1;15293:81;15288:1;15281:9;15274:17;15270:105;15267:131;;;15378:18;;:::i;:::-;15267:131;15426:1;15423;15419:9;15408:20;;15086:348;;;;:::o;15440:180::-;15488:77;15485:1;15478:88;15585:4;15582:1;15575:15;15609:4;15606:1;15599:15;15626:185;15666:1;15683:20;15701:1;15683:20;:::i;:::-;15678:25;;15717:20;15735:1;15717:20;:::i;:::-;15712:25;;15756:1;15746:35;;15761:18;;:::i;:::-;15746:35;15803:1;15800;15796:9;15791:14;;15626:185;;;;:::o;15817:220::-;15957:34;15953:1;15945:6;15941:14;15934:58;16026:3;16021:2;16013:6;16009:15;16002:28;15817:220;:::o;16043:366::-;16185:3;16206:67;16270:2;16265:3;16206:67;:::i;:::-;16199:74;;16282:93;16371:3;16282:93;:::i;:::-;16400:2;16395:3;16391:12;16384:19;;16043:366;;;:::o;16415:419::-;16581:4;16619:2;16608:9;16604:18;16596:26;;16668:9;16662:4;16658:20;16654:1;16643:9;16639:17;16632:47;16696:131;16822:4;16696:131;:::i;:::-;16688:139;;16415:419;;;:::o;16840:223::-;16980:34;16976:1;16968:6;16964:14;16957:58;17049:6;17044:2;17036:6;17032:15;17025:31;16840:223;:::o;17069:366::-;17211:3;17232:67;17296:2;17291:3;17232:67;:::i;:::-;17225:74;;17308:93;17397:3;17308:93;:::i;:::-;17426:2;17421:3;17417:12;17410:19;;17069:366;;;:::o;17441:419::-;17607:4;17645:2;17634:9;17630:18;17622:26;;17694:9;17688:4;17684:20;17680:1;17669:9;17665:17;17658:47;17722:131;17848:4;17722:131;:::i;:::-;17714:139;;17441:419;;;:::o;17866:244::-;18006:34;18002:1;17994:6;17990:14;17983:58;18075:27;18070:2;18062:6;18058:15;18051:52;17866:244;:::o;18116:366::-;18258:3;18279:67;18343:2;18338:3;18279:67;:::i;:::-;18272:74;;18355:93;18444:3;18355:93;:::i;:::-;18473:2;18468:3;18464:12;18457:19;;18116:366;;;:::o;18488:419::-;18654:4;18692:2;18681:9;18677:18;18669:26;;18741:9;18735:4;18731:20;18727:1;18716:9;18712:17;18705:47;18769:131;18895:4;18769:131;:::i;:::-;18761:139;;18488:419;;;:::o;18913:224::-;19053:34;19049:1;19041:6;19037:14;19030:58;19122:7;19117:2;19109:6;19105:15;19098:32;18913:224;:::o;19143:366::-;19285:3;19306:67;19370:2;19365:3;19306:67;:::i;:::-;19299:74;;19382:93;19471:3;19382:93;:::i;:::-;19500:2;19495:3;19491:12;19484:19;;19143:366;;;:::o;19515:419::-;19681:4;19719:2;19708:9;19704:18;19696:26;;19768:9;19762:4;19758:20;19754:1;19743:9;19739:17;19732:47;19796:131;19922:4;19796:131;:::i;:::-;19788:139;;19515:419;;;:::o;19940:180::-;19988:77;19985:1;19978:88;20085:4;20082:1;20075:15;20109:4;20106:1;20099:15;20126:233;20165:3;20188:24;20206:5;20188:24;:::i;:::-;20179:33;;20234:66;20227:5;20224:77;20221:103;;20304:18;;:::i;:::-;20221:103;20351:1;20344:5;20340:13;20333:20;;20126:233;;;:::o;20365:240::-;20505:34;20501:1;20493:6;20489:14;20482:58;20574:23;20569:2;20561:6;20557:15;20550:48;20365:240;:::o;20611:366::-;20753:3;20774:67;20838:2;20833:3;20774:67;:::i;:::-;20767:74;;20850:93;20939:3;20850:93;:::i;:::-;20968:2;20963:3;20959:12;20952:19;;20611:366;;;:::o;20983:419::-;21149:4;21187:2;21176:9;21172:18;21164:26;;21236:9;21230:4;21226:20;21222:1;21211:9;21207:17;21200:47;21264:131;21390:4;21264:131;:::i;:::-;21256:139;;20983:419;;;:::o;21408:239::-;21548:34;21544:1;21536:6;21532:14;21525:58;21617:22;21612:2;21604:6;21600:15;21593:47;21408:239;:::o;21653:366::-;21795:3;21816:67;21880:2;21875:3;21816:67;:::i;:::-;21809:74;;21892:93;21981:3;21892:93;:::i;:::-;22010:2;22005:3;22001:12;21994:19;;21653:366;;;:::o;22025:419::-;22191:4;22229:2;22218:9;22214:18;22206:26;;22278:9;22272:4;22268:20;22264:1;22253:9;22249:17;22242:47;22306:131;22432:4;22306:131;:::i;:::-;22298:139;;22025:419;;;:::o;22450:225::-;22590:34;22586:1;22578:6;22574:14;22567:58;22659:8;22654:2;22646:6;22642:15;22635:33;22450:225;:::o;22681:366::-;22823:3;22844:67;22908:2;22903:3;22844:67;:::i;:::-;22837:74;;22920:93;23009:3;22920:93;:::i;:::-;23038:2;23033:3;23029:12;23022:19;;22681:366;;;:::o;23053:419::-;23219:4;23257:2;23246:9;23242:18;23234:26;;23306:9;23300:4;23296:20;23292:1;23281:9;23277:17;23270:47;23334:131;23460:4;23334:131;:::i;:::-;23326:139;;23053:419;;;:::o;23478:223::-;23618:34;23614:1;23606:6;23602:14;23595:58;23687:6;23682:2;23674:6;23670:15;23663:31;23478:223;:::o;23707:366::-;23849:3;23870:67;23934:2;23929:3;23870:67;:::i;:::-;23863:74;;23946:93;24035:3;23946:93;:::i;:::-;24064:2;24059:3;24055:12;24048:19;;23707:366;;;:::o;24079:419::-;24245:4;24283:2;24272:9;24268:18;24260:26;;24332:9;24326:4;24322:20;24318:1;24307:9;24303:17;24296:47;24360:131;24486:4;24360:131;:::i;:::-;24352:139;;24079:419;;;:::o;24504:221::-;24644:34;24640:1;24632:6;24628:14;24621:58;24713:4;24708:2;24700:6;24696:15;24689:29;24504:221;:::o;24731:366::-;24873:3;24894:67;24958:2;24953:3;24894:67;:::i;:::-;24887:74;;24970:93;25059:3;24970:93;:::i;:::-;25088:2;25083:3;25079:12;25072:19;;24731:366;;;:::o;25103:419::-;25269:4;25307:2;25296:9;25292:18;25284:26;;25356:9;25350:4;25346:20;25342:1;25331:9;25327:17;25320:47;25384:131;25510:4;25384:131;:::i;:::-;25376:139;;25103:419;;;:::o;25528:224::-;25668:34;25664:1;25656:6;25652:14;25645:58;25737:7;25732:2;25724:6;25720:15;25713:32;25528:224;:::o;25758:366::-;25900:3;25921:67;25985:2;25980:3;25921:67;:::i;:::-;25914:74;;25997:93;26086:3;25997:93;:::i;:::-;26115:2;26110:3;26106:12;26099:19;;25758:366;;;:::o;26130:419::-;26296:4;26334:2;26323:9;26319:18;26311:26;;26383:9;26377:4;26373:20;26369:1;26358:9;26354:17;26347:47;26411:131;26537:4;26411:131;:::i;:::-;26403:139;;26130:419;;;:::o;26555:222::-;26695:34;26691:1;26683:6;26679:14;26672:58;26764:5;26759:2;26751:6;26747:15;26740:30;26555:222;:::o;26783:366::-;26925:3;26946:67;27010:2;27005:3;26946:67;:::i;:::-;26939:74;;27022:93;27111:3;27022:93;:::i;:::-;27140:2;27135:3;27131:12;27124:19;;26783:366;;;:::o;27155:419::-;27321:4;27359:2;27348:9;27344:18;27336:26;;27408:9;27402:4;27398:20;27394:1;27383:9;27379:17;27372:47;27436:131;27562:4;27436:131;:::i;:::-;27428:139;;27155:419;;;:::o;27580:172::-;27720:24;27716:1;27708:6;27704:14;27697:48;27580:172;:::o;27758:366::-;27900:3;27921:67;27985:2;27980:3;27921:67;:::i;:::-;27914:74;;27997:93;28086:3;27997:93;:::i;:::-;28115:2;28110:3;28106:12;28099:19;;27758:366;;;:::o;28130:419::-;28296:4;28334:2;28323:9;28319:18;28311:26;;28383:9;28377:4;28373:20;28369:1;28358:9;28354:17;28347:47;28411:131;28537:4;28411:131;:::i;:::-;28403:139;;28130:419;;;:::o;28555:240::-;28695:34;28691:1;28683:6;28679:14;28672:58;28764:23;28759:2;28751:6;28747:15;28740:48;28555:240;:::o;28801:366::-;28943:3;28964:67;29028:2;29023:3;28964:67;:::i;:::-;28957:74;;29040:93;29129:3;29040:93;:::i;:::-;29158:2;29153:3;29149:12;29142:19;;28801:366;;;:::o;29173:419::-;29339:4;29377:2;29366:9;29362:18;29354:26;;29426:9;29420:4;29416:20;29412:1;29401:9;29397:17;29390:47;29454:131;29580:4;29454:131;:::i;:::-;29446:139;;29173:419;;;:::o;29598:169::-;29738:21;29734:1;29726:6;29722:14;29715:45;29598:169;:::o;29773:366::-;29915:3;29936:67;30000:2;29995:3;29936:67;:::i;:::-;29929:74;;30012:93;30101:3;30012:93;:::i;:::-;30130:2;30125:3;30121:12;30114:19;;29773:366;;;:::o;30145:419::-;30311:4;30349:2;30338:9;30334:18;30326:26;;30398:9;30392:4;30388:20;30384:1;30373:9;30369:17;30362:47;30426:131;30552:4;30426:131;:::i;:::-;30418:139;;30145:419;;;:::o;30570:241::-;30710:34;30706:1;30698:6;30694:14;30687:58;30779:24;30774:2;30766:6;30762:15;30755:49;30570:241;:::o;30817:366::-;30959:3;30980:67;31044:2;31039:3;30980:67;:::i;:::-;30973:74;;31056:93;31145:3;31056:93;:::i;:::-;31174:2;31169:3;31165:12;31158:19;;30817:366;;;:::o;31189:419::-;31355:4;31393:2;31382:9;31378:18;31370:26;;31442:9;31436:4;31432:20;31428:1;31417:9;31413:17;31406:47;31470:131;31596:4;31470:131;:::i;:::-;31462:139;;31189:419;;;:::o;31614:194::-;31654:4;31674:20;31692:1;31674:20;:::i;:::-;31669:25;;31708:20;31726:1;31708:20;:::i;:::-;31703:25;;31752:1;31749;31745:9;31737:17;;31776:1;31770:4;31767:11;31764:37;;;31781:18;;:::i;:::-;31764:37;31614:194;;;;:::o;31814:225::-;31954:34;31950:1;31942:6;31938:14;31931:58;32023:8;32018:2;32010:6;32006:15;31999:33;31814:225;:::o;32045:366::-;32187:3;32208:67;32272:2;32267:3;32208:67;:::i;:::-;32201:74;;32284:93;32373:3;32284:93;:::i;:::-;32402:2;32397:3;32393:12;32386:19;;32045:366;;;:::o;32417:419::-;32583:4;32621:2;32610:9;32606:18;32598:26;;32670:9;32664:4;32660:20;32656:1;32645:9;32641:17;32634:47;32698:131;32824:4;32698:131;:::i;:::-;32690:139;;32417:419;;;:::o;32842:442::-;32991:4;33029:2;33018:9;33014:18;33006:26;;33042:71;33110:1;33099:9;33095:17;33086:6;33042:71;:::i;:::-;33123:72;33191:2;33180:9;33176:18;33167:6;33123:72;:::i;:::-;33205;33273:2;33262:9;33258:18;33249:6;33205:72;:::i;:::-;32842:442;;;;;;:::o;33290:147::-;33391:11;33428:3;33413:18;;33290:147;;;;:::o;33443:114::-;;:::o;33563:398::-;33722:3;33743:83;33824:1;33819:3;33743:83;:::i;:::-;33736:90;;33835:93;33924:3;33835:93;:::i;:::-;33953:1;33948:3;33944:11;33937:18;;33563:398;;;:::o;33967:379::-;34151:3;34173:147;34316:3;34173:147;:::i;:::-;34166:154;;34337:3;34330:10;;33967:379;;;:::o;34352:180::-;34400:77;34397:1;34390:88;34497:4;34494:1;34487:15;34521:4;34518:1;34511:15;34538:143;34595:5;34626:6;34620:13;34611:22;;34642:33;34669:5;34642:33;:::i;:::-;34538:143;;;;:::o;34687:351::-;34757:6;34806:2;34794:9;34785:7;34781:23;34777:32;34774:119;;;34812:79;;:::i;:::-;34774:119;34932:1;34957:64;35013:7;35004:6;34993:9;34989:22;34957:64;:::i;:::-;34947:74;;34903:128;34687:351;;;;:::o;35044:85::-;35089:7;35118:5;35107:16;;35044:85;;;:::o;35135:158::-;35193:9;35226:61;35244:42;35253:32;35279:5;35253:32;:::i;:::-;35244:42;:::i;:::-;35226:61;:::i;:::-;35213:74;;35135:158;;;:::o;35299:147::-;35394:45;35433:5;35394:45;:::i;:::-;35389:3;35382:58;35299:147;;:::o;35452:114::-;35519:6;35553:5;35547:12;35537:22;;35452:114;;;:::o;35572:184::-;35671:11;35705:6;35700:3;35693:19;35745:4;35740:3;35736:14;35721:29;;35572:184;;;;:::o;35762:132::-;35829:4;35852:3;35844:11;;35882:4;35877:3;35873:14;35865:22;;35762:132;;;:::o;35900:108::-;35977:24;35995:5;35977:24;:::i;:::-;35972:3;35965:37;35900:108;;:::o;36014:179::-;36083:10;36104:46;36146:3;36138:6;36104:46;:::i;:::-;36182:4;36177:3;36173:14;36159:28;;36014:179;;;;:::o;36199:113::-;36269:4;36301;36296:3;36292:14;36284:22;;36199:113;;;:::o;36348:732::-;36467:3;36496:54;36544:5;36496:54;:::i;:::-;36566:86;36645:6;36640:3;36566:86;:::i;:::-;36559:93;;36676:56;36726:5;36676:56;:::i;:::-;36755:7;36786:1;36771:284;36796:6;36793:1;36790:13;36771:284;;;36872:6;36866:13;36899:63;36958:3;36943:13;36899:63;:::i;:::-;36892:70;;36985:60;37038:6;36985:60;:::i;:::-;36975:70;;36831:224;36818:1;36815;36811:9;36806:14;;36771:284;;;36775:14;37071:3;37064:10;;36472:608;;;36348:732;;;;:::o;37086:831::-;37349:4;37387:3;37376:9;37372:19;37364:27;;37401:71;37469:1;37458:9;37454:17;37445:6;37401:71;:::i;:::-;37482:80;37558:2;37547:9;37543:18;37534:6;37482:80;:::i;:::-;37609:9;37603:4;37599:20;37594:2;37583:9;37579:18;37572:48;37637:108;37740:4;37731:6;37637:108;:::i;:::-;37629:116;;37755:72;37823:2;37812:9;37808:18;37799:6;37755:72;:::i;:::-;37837:73;37905:3;37894:9;37890:19;37881:6;37837:73;:::i;:::-;37086:831;;;;;;;;:::o;37923:807::-;38172:4;38210:3;38199:9;38195:19;38187:27;;38224:71;38292:1;38281:9;38277:17;38268:6;38224:71;:::i;:::-;38305:72;38373:2;38362:9;38358:18;38349:6;38305:72;:::i;:::-;38387:80;38463:2;38452:9;38448:18;38439:6;38387:80;:::i;:::-;38477;38553:2;38542:9;38538:18;38529:6;38477:80;:::i;:::-;38567:73;38635:3;38624:9;38620:19;38611:6;38567:73;:::i;:::-;38650;38718:3;38707:9;38703:19;38694:6;38650:73;:::i;:::-;37923:807;;;;;;;;;:::o;38736:143::-;38793:5;38824:6;38818:13;38809:22;;38840:33;38867:5;38840:33;:::i;:::-;38736:143;;;;:::o;38885:663::-;38973:6;38981;38989;39038:2;39026:9;39017:7;39013:23;39009:32;39006:119;;;39044:79;;:::i;:::-;39006:119;39164:1;39189:64;39245:7;39236:6;39225:9;39221:22;39189:64;:::i;:::-;39179:74;;39135:128;39302:2;39328:64;39384:7;39375:6;39364:9;39360:22;39328:64;:::i;:::-;39318:74;;39273:129;39441:2;39467:64;39523:7;39514:6;39503:9;39499:22;39467:64;:::i;:::-;39457:74;;39412:129;38885:663;;;;;:::o

Swarm Source

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