ETH Price: $3,417.85 (-1.33%)
Gas: 9 Gwei

Token

$WOOFY ($WOOFY)
 

Overview

Max Total Supply

1,000,000 $WOOFY

Holders

162

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: $WOOFY
Balance
406,960.325490392 $WOOFY

Value
$0.00
0xb6f17fbbc3b9271ab2941e1b6f64507df0adf478
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:
WOOFYToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-08
*/

/**
  ___        _____   ___  _______   __
  | \ \      / / _ \ / _ \|  ___\ \ / /
 / __) \ /\ / / | | | | | | |_   \ V / 
 \__ \\ V  V /| |_| | |_| |  _|   | |  
 (   / \_/\_/  \___/ \___/|_|     |_|  
  |_|                                  

*/

// SPDX-License-Identifier:MIT
pragma solidity ^0.8.10;

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = payable(address(0));
    }

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

contract WOOFYToken is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;

    string private _name = "$WOOFY";
    string private _symbol = "$WOOFY";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 1_000_000 * 1e9;

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    IDexRouter public dexRouter;
    address public dexPair;
    address public marketingWallet;

    uint256 public minTokenToSwap = _totalSupply.div(1e5); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply.mul(5).div(1000); // this is the max wallet holding limit
    uint256 public maxTxnLimit = _totalSupply.mul(5).div(1000); // this is the max transaction limit
    uint256 public botFee = 990;
    uint256 public percentDivider = 1000;
    uint256 public snipingTime = 60 seconds;
    uint256 public launchedAt;

    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus; // enable by default
    bool public trading; // once enable can't be disable afterwards

    uint256 public liquidityFeeOnBuying = 20; // 2% will be added to the liquidity
    uint256 public marketingFeeOnBuying = 30; // 3% will be added to the marketing address

    uint256 public liquidityFeeOnSelling = 20; // 2% will be added to the liquidity
    uint256 public marketingFeeOnSelling = 30; // 3% will be added to the marketing address

    uint256 liquidityFeeCounter = 0;
    uint256 marketingFeeCounter = 0;

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

    constructor() {
        _balances[owner()] = _totalSupply;
        marketingWallet = address(0xAdd);

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    receive() external payable {}

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "$WOOFY: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "$WOOFY: decreased allowance or below zero"
            )
        );
        return true;
    }

    function includeOrExcludeFromFee(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxHolding[account] = value;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0, "$WOOFY: can't be 0");
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply.mul(5).div(percentDivider),
            "$WOOFY: should be greater than 0.5%"
        );
        maxHoldLimit = _amount;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        require(
            _amount >= _totalSupply / percentDivider,
            "$WOOFY: should be greater than 0.1%"
        );
        maxTxnLimit = _amount;
    }

    function setBuyFeePercent(
        uint256 _lpFee,
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnBuying = _lpFee;
        liquidityFeeOnBuying = _marketingFee;
        require(
            _lpFee.add(_marketingFee) <= percentDivider.div(10),
            "$WOOFY: can't be more than 10%"
        );
    }

    function setSellFeePercent(
        uint256 _lpFee,
        uint256 _marketingFee
    ) external onlyOwner {
        marketingFeeOnSelling = _lpFee;
        liquidityFeeOnSelling = _marketingFee;
        require(
            _lpFee.add(_marketingFee) <= percentDivider.div(10),
            "$WOOFY: can't be more than 10%"
        );
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function updateAddresses(address _marketingWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "$WOOFY: already enabled");
        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnBuying.add(liquidityFeeOnBuying))
            .div(percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnSelling.add(liquidityFeeOnSelling))
            .div(percentDivider);
        return fee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "$WOOFY: approve from the zero address");
        require(spender != address(0), "$WOOFY: approve to the zero address");

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "$WOOFY: transfer from the zero address");
        require(to != address(0), "$WOOFY: transfer to the zero address");
        require(amount > 0, "$WOOFY: Amount must be greater than zero");

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "$WOOFY: max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "$WOOFY: trading is disable"
                );
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "$WOOFY: max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            // antibot
            if (
                block.timestamp < launchedAt + snipingTime &&
                sender != address(dexRouter)
            ) {
                allFee = amount.mul(botFee).div(percentDivider);
                marketingFeeCounter += allFee;
                tTransferAmount = amount.sub(allFee);
            } else {
                allFee = totalBuyFeePerTx(amount);
                tTransferAmount = amount.sub(allFee);
                setFeeCountersOnBuying(amount);
            }

            _balances[sender] = _balances[sender].sub(
                amount,
                "$WOOFY: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(
                amount,
                "$WOOFY: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(tTransferAmount);
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
            setFeeCountersOnSelling(amount);
        } else {
            _balances[sender] = _balances[sender].sub(
                amount,
                "$WOOFY: insufficient balance"
            );
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function setFeeCountersOnBuying(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnBuying).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnBuying).div(
            percentDivider
        );
    }

    function setFeeCountersOnSelling(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnSelling).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnSelling).div(
            percentDivider
        );
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == dexPair) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), contractTokenBalance);

            uint256 halfLiquidity = liquidityFeeCounter.div(2);
            uint256 otherHalfLiquidity = liquidityFeeCounter.sub(halfLiquidity);

            uint256 tokenAmountToBeSwapped = contractTokenBalance.sub(
                otherHalfLiquidity
            );

            uint256 balanceBefore = address(this).balance;

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), tokenAmountToBeSwapped);

            uint256 deltaBalance = address(this).balance.sub(balanceBefore);

            uint256 ethToBeAddedToLiquidity = deltaBalance
                .mul(halfLiquidity)
                .div(tokenAmountToBeSwapped);

            // add liquidity to Dex
            if (ethToBeAddedToLiquidity > 0) {
                Utils.addLiquidity(
                    address(dexRouter),
                    DEAD,
                    otherHalfLiquidity,
                    ethToBeAddedToLiquidity
                );

                emit SwapAndLiquify(
                    halfLiquidity,
                    ethToBeAddedToLiquidity,
                    otherHalfLiquidity
                );
            }

            uint256 ethForLp = address(this).balance.sub(
                ethToBeAddedToLiquidity
            );

            // sending Eth to Lp wallet
            if (ethForLp > 0) payable(marketingWallet).transfer(ethForLp);

            // Reset all fee counters
            liquidityFeeCounter = 0;
            marketingFeeCounter = 0;
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 300
        );
    }

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","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"},{"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":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","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":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lpFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","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":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600681526020017f24574f4f46590000000000000000000000000000000000000000000000000000815250600690805190602001906200005192919062000a23565b506040518060400160405280600681526020017f24574f4f46590000000000000000000000000000000000000000000000000000815250600790805190602001906200009f92919062000a23565b506009600860006101000a81548160ff021916908360ff16021790555066038d7ea4c68000600955620000e6620186a0600954620008b460201b620021851790919060201c565b600d55620001216103e86200010d60056009546200090660201b620021cf1790919060201c565b620008b460201b620021851790919060201c565b600e556200015c6103e86200014860056009546200090660201b620021cf1790919060201c565b620008b460201b620021851790919060201c565b600f556103de6010556103e8601155603c6012556014601555601e6016556014601755601e60185560006019556000601a553480156200019b57600080fd5b50620001ac6200098a60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600954600160006200027d6200099260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610add600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038b919062000b3d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000419919062000b3d565b6040518363ffffffff1660e01b81526004016200043892919062000b80565b6020604051808303816000875af115801562000458573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047e919062000b3d565b905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005186200099260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005d76200099260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000620006966200099260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008436200099260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620008a4919062000bc8565b60405180910390a3505062000ea1565b6000620008fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620009bb60201b60201c565b905092915050565b6000808314156200091b576000905062000984565b600082846200092b919062000c14565b90508284826200093c919062000ca4565b146200097f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009769062000d63565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000a05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009fc919062000e18565b60405180910390fd5b506000838562000a16919062000ca4565b9050809150509392505050565b82805462000a319062000e6b565b90600052602060002090601f01602090048101928262000a55576000855562000aa1565b82601f1062000a7057805160ff191683800117855562000aa1565b8280016001018555821562000aa1579182015b8281111562000aa057825182559160200191906001019062000a83565b5b50905062000ab0919062000ab4565b5090565b5b8082111562000acf57600081600090555060010162000ab5565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b058262000ad8565b9050919050565b62000b178162000af8565b811462000b2357600080fd5b50565b60008151905062000b378162000b0c565b92915050565b60006020828403121562000b565762000b5562000ad3565b5b600062000b668482850162000b26565b91505092915050565b62000b7a8162000af8565b82525050565b600060408201905062000b97600083018562000b6f565b62000ba6602083018462000b6f565b9392505050565b6000819050919050565b62000bc28162000bad565b82525050565b600060208201905062000bdf600083018462000bb7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c218262000bad565b915062000c2e8362000bad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c6a5762000c6962000be5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cb18262000bad565b915062000cbe8362000bad565b92508262000cd15762000cd062000c75565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d4b60218362000cdc565b915062000d588262000ced565b604082019050919050565b6000602082019050818103600083015262000d7e8162000d3c565b9050919050565b600081519050919050565b60005b8381101562000db057808201518184015260208101905062000d93565b8381111562000dc0576000848401525b50505050565b6000601f19601f8301169050919050565b600062000de48262000d85565b62000df0818562000cdc565b935062000e0281856020860162000d90565b62000e0d8162000dc6565b840191505092915050565b6000602082019050818103600083015262000e34818462000dd7565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e8457607f821691505b6020821081141562000e9b5762000e9a62000e3c565b5b50919050565b614bb48062000eb16000396000f3fe6080604052600436106102b25760003560e01c80638a8c523c11610175578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610ad5578063f4b3dbc314610afe578063f9dfdaeb14610b3b578063fe6f1b0514610b64576102b9565b8063ed42142914610a44578063f097ea1a14610a81578063f242ab4114610aaa576102b9565b8063bf56b37114610932578063bf8623911461095d578063dd62ed3e14610988578063e6c84dc6146109c5578063ea5b9e85146109f0578063ec44acf214610a19576102b9565b8063a457c2d71161012e578063a457c2d714610814578063a643c1a014610851578063a7c29b401461087a578063a9059cbb146108a3578063b0bc2a2d146108e0578063be291dc614610909576102b9565b80638a8c523c146107165780638da5cb5b1461072d57806395d89b411461075857806399b102b5146107835780639a36dfa1146107c05780639b6a2750146107eb576102b9565b8063679a3c59116102195780637c6a9a9c116101d25780637c6a9a9c146106045780637d99c66d1461062f578063844af78e1461065a57806384ea21bc146106855780638756aabd146106c2578063879dd3c5146106eb576102b9565b8063679a3c5914610506578063681aa3621461052f57806370a082311461055a578063715018a61461059757806375f0a874146105ae57806379777b4e146105d9576102b9565b806323b872dd1161026b57806323b872dd146103d05780632d1293901461040d578063313ce567146104365780633326d7f214610461578063395093511461048c5780635342acb4146104c9576102b9565b806306fdde03146102be5780630758d924146102e9578063095ea7b3146103145780630a2d140c1461035157806318160ddd1461037a5780631884f1e6146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b8f565b6040516102e091906139e7565b60405180910390f35b3480156102f557600080fd5b506102fe610c21565b60405161030b9190613a88565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613b1c565b610c47565b6040516103489190613b77565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613bbe565b610c65565b005b34801561038657600080fd5b5061038f610d17565b60405161039c9190613bfa565b60405180910390f35b3480156103b157600080fd5b506103ba610d21565b6040516103c79190613bfa565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190613c15565b610d27565b6040516104049190613b77565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613c68565b610e00565b005b34801561044257600080fd5b5061044b610ef0565b6040516104589190613cc4565b60405180910390f35b34801561046d57600080fd5b50610476610f07565b6040516104839190613bfa565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190613b1c565b610f0d565b6040516104c09190613b77565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190613cdf565b610fc0565b6040516104fd9190613b77565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190613cdf565b610fe0565b005b34801561053b57600080fd5b506105446110bf565b6040516105519190613bfa565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190613cdf565b6110c5565b60405161058e9190613bfa565b60405180910390f35b3480156105a357600080fd5b506105ac61110e565b005b3480156105ba57600080fd5b506105c3611261565b6040516105d09190613d1b565b60405180910390f35b3480156105e557600080fd5b506105ee611287565b6040516105fb9190613b77565b60405180910390f35b34801561061057600080fd5b5061061961129a565b6040516106269190613bfa565b60405180910390f35b34801561063b57600080fd5b506106446112a0565b6040516106519190613bfa565b60405180910390f35b34801561066657600080fd5b5061066f6112a6565b60405161067c9190613bfa565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613cdf565b6112ac565b6040516106b99190613b77565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613d36565b6112cc565b005b3480156106f757600080fd5b506107006113d7565b60405161070d9190613b77565b60405180910390f35b34801561072257600080fd5b5061072b6113ea565b005b34801561073957600080fd5b50610742611529565b60405161074f9190613d1b565b60405180910390f35b34801561076457600080fd5b5061076d611552565b60405161077a91906139e7565b60405180910390f35b34801561078f57600080fd5b506107aa60048036038101906107a59190613cdf565b6115e4565b6040516107b79190613b77565b60405180910390f35b3480156107cc57600080fd5b506107d5611604565b6040516107e29190613bfa565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d9190613d36565b61160a565b005b34801561082057600080fd5b5061083b60048036038101906108369190613b1c565b6116fb565b6040516108489190613b77565b60405180910390f35b34801561085d57600080fd5b5061087860048036038101906108739190613cdf565b6117c8565b005b34801561088657600080fd5b506108a1600480360381019061089c9190613c68565b6118a1565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613b1c565b611991565b6040516108d79190613b77565b60405180910390f35b3480156108ec57600080fd5b5061090760048036038101906109029190613bbe565b6119af565b005b34801561091557600080fd5b50610930600480360381019061092b9190613d63565b611a61565b005b34801561093e57600080fd5b50610947611b72565b6040516109549190613bfa565b60405180910390f35b34801561096957600080fd5b50610972611b78565b60405161097f9190613bfa565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190613da3565b611b7e565b6040516109bc9190613bfa565b60405180910390f35b3480156109d157600080fd5b506109da611c05565b6040516109e79190613bfa565b60405180910390f35b3480156109fc57600080fd5b50610a176004803603810190610a129190613c68565b611c0b565b005b348015610a2557600080fd5b50610a2e611cfb565b604051610a3b9190613b77565b60405180910390f35b348015610a5057600080fd5b50610a6b6004803603810190610a669190613d36565b611d0e565b604051610a789190613bfa565b60405180910390f35b348015610a8d57600080fd5b50610aa86004803603810190610aa39190613d36565b611d59565b005b348015610ab657600080fd5b50610abf611e3b565b604051610acc9190613d1b565b60405180910390f35b348015610ae157600080fd5b50610afc6004803603810190610af79190613cdf565b611e61565b005b348015610b0a57600080fd5b50610b256004803603810190610b209190613d36565b612023565b604051610b329190613bfa565b60405180910390f35b348015610b4757600080fd5b50610b626004803603810190610b5d9190613d63565b61206e565b005b348015610b7057600080fd5b50610b7961217f565b604051610b869190613bfa565b60405180910390f35b606060068054610b9e90613e12565b80601f0160208091040260200160405190810160405280929190818152602001828054610bca90613e12565b8015610c175780601f10610bec57610100808354040283529160200191610c17565b820191906000526020600020905b815481529060010190602001808311610bfa57829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c5b610c5461224a565b8484612252565b6001905092915050565b610c6d61224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190613e90565b60405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6000600954905090565b600d5481565b6000610d3484848461241d565b610df584610d4061224a565b610df085604051806060016040528060298152602001614b5660299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610da661224a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b612252565b600190509392505050565b610e0861224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c90613e90565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b60155481565b6000610fb6610f1a61224a565b84610fb18560026000610f2b61224a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b612252565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b610fe861224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90613e90565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110bb573d6000803e3d6000fd5b5050565b600f5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61111661224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90613e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900460ff1681565b60165481565b60125481565b60185481565b60056020528060005260406000206000915054906101000a900460ff1681565b6112d461224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890613e90565b60405180910390fd5b61138b60115461137d60056009546121cf90919063ffffffff16565b61218590919063ffffffff16565b8110156113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490613f22565b60405180910390fd5b80600e8190555050565b601460019054906101000a900460ff1681565b6113f261224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613e90565b60405180910390fd5b601460029054906101000a900460ff16156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690613f8e565b60405180910390fd5b6001601460026101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506001601460006101000a81548160ff02191690831515021790555042601381905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461156190613e12565b80601f016020809104026020016040519081016040528092919081815260200182805461158d90613e12565b80156115da5780601f106115af576101008083540402835291602001916115da565b820191906000526020600020905b8154815290600101906020018083116115bd57829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600e5481565b61161261224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169690613e90565b60405180910390fd5b6011546009546116af919061400c565b8110156116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e8906140af565b60405180910390fd5b80600f8190555050565b60006117be61170861224a565b846117b985604051806060016040528060298152602001614b2d602991396002600061173261224a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b612252565b6001905092915050565b6117d061224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613e90565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118a961224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90613e90565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006119a561199e61224a565b848461241d565b6001905092915050565b6119b761224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90613e90565b60405180910390fd5b80601460016101000a81548160ff02191690831515021790555050565b611a6961224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed90613e90565b60405180910390fd5b8160188190555080601781905550611b1a600a60115461218590919063ffffffff16565b611b2d828461292990919063ffffffff16565b1115611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b659061411b565b60405180910390fd5b5050565b60135481565b60105481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60175481565b611c1361224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790613e90565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460029054906101000a900460ff1681565b600080611d4e601154611d40611d3160155460165461292990919063ffffffff16565b866121cf90919063ffffffff16565b61218590919063ffffffff16565b905080915050919050565b611d6161224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613e90565b60405180910390fd5b60008111611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890614187565b60405180910390fd5b80600d8190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e6961224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eed90613e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d90614219565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061206360115461205561204660175460185461292990919063ffffffff16565b866121cf90919063ffffffff16565b61218590919063ffffffff16565b905080915050919050565b61207661224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fa90613e90565b60405180910390fd5b8160168190555080601581905550612127600a60115461218590919063ffffffff16565b61213a828461292990919063ffffffff16565b111561217b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121729061411b565b60405180910390fd5b5050565b60115481565b60006121c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612987565b905092915050565b6000808314156121e25760009050612244565b600082846121f09190614239565b90508284826121ff919061400c565b1461223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690614305565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b990614397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232990614429565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124109190613bfa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561248d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612484906144bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f49061454d565b60405180910390fd5b60008111612540576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612537906145df565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125e45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561272f57600f5481111561262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126259061464b565b60405180910390fd5b601460029054906101000a900460ff1661272e578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156126ee57508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612724906146b7565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127e057600e5461279e82612790856110c5565b61292990919063ffffffff16565b11156127df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d690614723565b60405180910390fd5b5b6127ea83836129ea565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128915750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128a95750601460019054906101000a900460ff16155b156128b357600090505b6128bf84848484612d0f565b50505050565b600083831115829061290d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290491906139e7565b60405180910390fd5b506000838561291c9190614743565b9050809150509392505050565b60008082846129389190614777565b90508381101561297d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297490614819565b60405180910390fd5b8091505092915050565b600080831182906129ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c591906139e7565b60405180910390fd5b50600083856129dd919061400c565b9050809150509392505050565b60006129f5306110c5565b90506000600d548210159050808015612a5c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612a745750601460009054906101000a900460ff165b8015612b0557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b035750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612d0957612b3730600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612252565b6000612b4f600260195461218590919063ffffffff16565b90506000612b688260195461347290919063ffffffff16565b90506000612b7f828661347290919063ffffffff16565b90506000479050612bb2600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836134bc565b6000612bc7824761347290919063ffffffff16565b90506000612bf084612be288856121cf90919063ffffffff16565b61218590919063ffffffff16565b90506000811115612c6757612c2b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead87846136a2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612c5e93929190614839565b60405180910390a15b6000612c7c824761347290919063ffffffff16565b90506000811115612cf157600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612cef573d6000803e3d6000fd5b505b60006019819055506000601a81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612d695750805b1561304157600080601254601354612d819190614777565b42108015612ddd5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15612e4057612e0b601154612dfd601054876121cf90919063ffffffff16565b61218590919063ffffffff16565b915081601a6000828254612e1f9190614777565b92505081905550612e39828561347290919063ffffffff16565b9050612e6a565b612e4984611d0e565b9150612e5e828561347290919063ffffffff16565b9050612e6984613746565b5b612ef3846040518060400160405280601c81526020017f24574f4f46593a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8881600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130289190613bfa565b60405180910390a361303a86836137cb565b505061346c565b8273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561309b5750805b156132a45760006130ab83612023565b905060006130c2828561347290919063ffffffff16565b905061314d846040518060400160405280601c81526020017f24574f4f46593a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131e281600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132829190613bfa565b60405180910390a361329486836137cb565b61329d846138c9565b505061346b565b61332d826040518060400160405280601c81526020017f24574f4f46593a20696e73756666696369656e742062616c616e636500000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133c282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134629190613bfa565b60405180910390a35b5b50505050565b60006134b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128c5565b905092915050565b60008290506000600267ffffffffffffffff8111156134de576134dd614870565b5b60405190808252806020026020018201604052801561350c5781602001602082028036833780820191505090505b50905030816000815181106135245761352361489f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135cd91906148e3565b816001815181106135e1576135e061489f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261364a9190614777565b6040518663ffffffff1660e01b815260040161366a959493929190614a09565b600060405180830381600087803b15801561368457600080fd5b505af1158015613698573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426136d89190614777565b6040518863ffffffff1660e01b81526004016136f996959493929190614a63565b60606040518083038185885af1158015613717573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061373c9190614ad9565b5050505050505050565b61376f601154613761601554846121cf90919063ffffffff16565b61218590919063ffffffff16565b601960008282546137809190614777565b925050819055506137b06011546137a2601654846121cf90919063ffffffff16565b61218590919063ffffffff16565b601a60008282546137c19190614777565b9250508190555050565b61381d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138bd9190613bfa565b60405180910390a35050565b6138f26011546138e4601754846121cf90919063ffffffff16565b61218590919063ffffffff16565b601960008282546139039190614777565b92505081905550613933601154613925601854846121cf90919063ffffffff16565b61218590919063ffffffff16565b601a60008282546139449190614777565b9250508190555050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561398857808201518184015260208101905061396d565b83811115613997576000848401525b50505050565b6000601f19601f8301169050919050565b60006139b98261394e565b6139c38185613959565b93506139d381856020860161396a565b6139dc8161399d565b840191505092915050565b60006020820190508181036000830152613a0181846139ae565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613a4e613a49613a4484613a09565b613a29565b613a09565b9050919050565b6000613a6082613a33565b9050919050565b6000613a7282613a55565b9050919050565b613a8281613a67565b82525050565b6000602082019050613a9d6000830184613a79565b92915050565b600080fd5b6000613ab382613a09565b9050919050565b613ac381613aa8565b8114613ace57600080fd5b50565b600081359050613ae081613aba565b92915050565b6000819050919050565b613af981613ae6565b8114613b0457600080fd5b50565b600081359050613b1681613af0565b92915050565b60008060408385031215613b3357613b32613aa3565b5b6000613b4185828601613ad1565b9250506020613b5285828601613b07565b9150509250929050565b60008115159050919050565b613b7181613b5c565b82525050565b6000602082019050613b8c6000830184613b68565b92915050565b613b9b81613b5c565b8114613ba657600080fd5b50565b600081359050613bb881613b92565b92915050565b600060208284031215613bd457613bd3613aa3565b5b6000613be284828501613ba9565b91505092915050565b613bf481613ae6565b82525050565b6000602082019050613c0f6000830184613beb565b92915050565b600080600060608486031215613c2e57613c2d613aa3565b5b6000613c3c86828701613ad1565b9350506020613c4d86828701613ad1565b9250506040613c5e86828701613b07565b9150509250925092565b60008060408385031215613c7f57613c7e613aa3565b5b6000613c8d85828601613ad1565b9250506020613c9e85828601613ba9565b9150509250929050565b600060ff82169050919050565b613cbe81613ca8565b82525050565b6000602082019050613cd96000830184613cb5565b92915050565b600060208284031215613cf557613cf4613aa3565b5b6000613d0384828501613ad1565b91505092915050565b613d1581613aa8565b82525050565b6000602082019050613d306000830184613d0c565b92915050565b600060208284031215613d4c57613d4b613aa3565b5b6000613d5a84828501613b07565b91505092915050565b60008060408385031215613d7a57613d79613aa3565b5b6000613d8885828601613b07565b9250506020613d9985828601613b07565b9150509250929050565b60008060408385031215613dba57613db9613aa3565b5b6000613dc885828601613ad1565b9250506020613dd985828601613ad1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e2a57607f821691505b60208210811415613e3e57613e3d613de3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e7a602083613959565b9150613e8582613e44565b602082019050919050565b60006020820190508181036000830152613ea981613e6d565b9050919050565b7f24574f4f46593a2073686f756c642062652067726561746572207468616e203060008201527f2e35250000000000000000000000000000000000000000000000000000000000602082015250565b6000613f0c602383613959565b9150613f1782613eb0565b604082019050919050565b60006020820190508181036000830152613f3b81613eff565b9050919050565b7f24574f4f46593a20616c726561647920656e61626c6564000000000000000000600082015250565b6000613f78601783613959565b9150613f8382613f42565b602082019050919050565b60006020820190508181036000830152613fa781613f6b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061401782613ae6565b915061402283613ae6565b92508261403257614031613fae565b5b828204905092915050565b7f24574f4f46593a2073686f756c642062652067726561746572207468616e203060008201527f2e31250000000000000000000000000000000000000000000000000000000000602082015250565b6000614099602383613959565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f24574f4f46593a2063616e2774206265206d6f7265207468616e203130250000600082015250565b6000614105601e83613959565b9150614110826140cf565b602082019050919050565b60006020820190508181036000830152614134816140f8565b9050919050565b7f24574f4f46593a2063616e277420626520300000000000000000000000000000600082015250565b6000614171601283613959565b915061417c8261413b565b602082019050919050565b600060208201905081810360008301526141a081614164565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614203602683613959565b915061420e826141a7565b604082019050919050565b60006020820190508181036000830152614232816141f6565b9050919050565b600061424482613ae6565b915061424f83613ae6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561428857614287613fdd565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ef602183613959565b91506142fa82614293565b604082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f24574f4f46593a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614381602583613959565b915061438c82614325565b604082019050919050565b600060208201905081810360008301526143b081614374565b9050919050565b7f24574f4f46593a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614413602383613959565b915061441e826143b7565b604082019050919050565b6000602082019050818103600083015261444281614406565b9050919050565b7f24574f4f46593a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144a5602683613959565b91506144b082614449565b604082019050919050565b600060208201905081810360008301526144d481614498565b9050919050565b7f24574f4f46593a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614537602483613959565b9150614542826144db565b604082019050919050565b600060208201905081810360008301526145668161452a565b9050919050565b7f24574f4f46593a20416d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b60006145c9602883613959565b91506145d48261456d565b604082019050919050565b600060208201905081810360008301526145f8816145bc565b9050919050565b7f24574f4f46593a206d61782074786e206c696d69742065786365656473000000600082015250565b6000614635601d83613959565b9150614640826145ff565b602082019050919050565b6000602082019050818103600083015261466481614628565b9050919050565b7f24574f4f46593a2074726164696e672069732064697361626c65000000000000600082015250565b60006146a1601a83613959565b91506146ac8261466b565b602082019050919050565b600060208201905081810360008301526146d081614694565b9050919050565b7f24574f4f46593a206d617820686f6c64206c696d697420657863656564730000600082015250565b600061470d601e83613959565b9150614718826146d7565b602082019050919050565b6000602082019050818103600083015261473c81614700565b9050919050565b600061474e82613ae6565b915061475983613ae6565b92508282101561476c5761476b613fdd565b5b828203905092915050565b600061478282613ae6565b915061478d83613ae6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147c2576147c1613fdd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614803601b83613959565b915061480e826147cd565b602082019050919050565b60006020820190508181036000830152614832816147f6565b9050919050565b600060608201905061484e6000830186613beb565b61485b6020830185613beb565b6148686040830184613beb565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506148dd81613aba565b92915050565b6000602082840312156148f9576148f8613aa3565b5b6000614907848285016148ce565b91505092915050565b6000819050919050565b600061493561493061492b84614910565b613a29565b613ae6565b9050919050565b6149458161491a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61498081613aa8565b82525050565b60006149928383614977565b60208301905092915050565b6000602082019050919050565b60006149b68261494b565b6149c08185614956565b93506149cb83614967565b8060005b838110156149fc5781516149e38882614986565b97506149ee8361499e565b9250506001810190506149cf565b5085935050505092915050565b600060a082019050614a1e6000830188613beb565b614a2b602083018761493c565b8181036040830152614a3d81866149ab565b9050614a4c6060830185613d0c565b614a596080830184613beb565b9695505050505050565b600060c082019050614a786000830189613d0c565b614a856020830188613beb565b614a92604083018761493c565b614a9f606083018661493c565b614aac6080830185613d0c565b614ab960a0830184613beb565b979650505050505050565b600081519050614ad381613af0565b92915050565b600080600060608486031215614af257614af1613aa3565b5b6000614b0086828701614ac4565b9350506020614b1186828701614ac4565b9250506040614b2286828701614ac4565b915050925092509256fe24574f4f46593a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f24574f4f46593a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aacc4b79311e93f5f886521362fa358bf2aa4a76547eeec034e60417a364a56664736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638a8c523c11610175578063bf56b371116100dc578063ed42142911610095578063f2fde38b1161006f578063f2fde38b14610ad5578063f4b3dbc314610afe578063f9dfdaeb14610b3b578063fe6f1b0514610b64576102b9565b8063ed42142914610a44578063f097ea1a14610a81578063f242ab4114610aaa576102b9565b8063bf56b37114610932578063bf8623911461095d578063dd62ed3e14610988578063e6c84dc6146109c5578063ea5b9e85146109f0578063ec44acf214610a19576102b9565b8063a457c2d71161012e578063a457c2d714610814578063a643c1a014610851578063a7c29b401461087a578063a9059cbb146108a3578063b0bc2a2d146108e0578063be291dc614610909576102b9565b80638a8c523c146107165780638da5cb5b1461072d57806395d89b411461075857806399b102b5146107835780639a36dfa1146107c05780639b6a2750146107eb576102b9565b8063679a3c59116102195780637c6a9a9c116101d25780637c6a9a9c146106045780637d99c66d1461062f578063844af78e1461065a57806384ea21bc146106855780638756aabd146106c2578063879dd3c5146106eb576102b9565b8063679a3c5914610506578063681aa3621461052f57806370a082311461055a578063715018a61461059757806375f0a874146105ae57806379777b4e146105d9576102b9565b806323b872dd1161026b57806323b872dd146103d05780632d1293901461040d578063313ce567146104365780633326d7f214610461578063395093511461048c5780635342acb4146104c9576102b9565b806306fdde03146102be5780630758d924146102e9578063095ea7b3146103145780630a2d140c1461035157806318160ddd1461037a5780631884f1e6146103a5576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610b8f565b6040516102e091906139e7565b60405180910390f35b3480156102f557600080fd5b506102fe610c21565b60405161030b9190613a88565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613b1c565b610c47565b6040516103489190613b77565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613bbe565b610c65565b005b34801561038657600080fd5b5061038f610d17565b60405161039c9190613bfa565b60405180910390f35b3480156103b157600080fd5b506103ba610d21565b6040516103c79190613bfa565b60405180910390f35b3480156103dc57600080fd5b506103f760048036038101906103f29190613c15565b610d27565b6040516104049190613b77565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613c68565b610e00565b005b34801561044257600080fd5b5061044b610ef0565b6040516104589190613cc4565b60405180910390f35b34801561046d57600080fd5b50610476610f07565b6040516104839190613bfa565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190613b1c565b610f0d565b6040516104c09190613b77565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190613cdf565b610fc0565b6040516104fd9190613b77565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190613cdf565b610fe0565b005b34801561053b57600080fd5b506105446110bf565b6040516105519190613bfa565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190613cdf565b6110c5565b60405161058e9190613bfa565b60405180910390f35b3480156105a357600080fd5b506105ac61110e565b005b3480156105ba57600080fd5b506105c3611261565b6040516105d09190613d1b565b60405180910390f35b3480156105e557600080fd5b506105ee611287565b6040516105fb9190613b77565b60405180910390f35b34801561061057600080fd5b5061061961129a565b6040516106269190613bfa565b60405180910390f35b34801561063b57600080fd5b506106446112a0565b6040516106519190613bfa565b60405180910390f35b34801561066657600080fd5b5061066f6112a6565b60405161067c9190613bfa565b60405180910390f35b34801561069157600080fd5b506106ac60048036038101906106a79190613cdf565b6112ac565b6040516106b99190613b77565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190613d36565b6112cc565b005b3480156106f757600080fd5b506107006113d7565b60405161070d9190613b77565b60405180910390f35b34801561072257600080fd5b5061072b6113ea565b005b34801561073957600080fd5b50610742611529565b60405161074f9190613d1b565b60405180910390f35b34801561076457600080fd5b5061076d611552565b60405161077a91906139e7565b60405180910390f35b34801561078f57600080fd5b506107aa60048036038101906107a59190613cdf565b6115e4565b6040516107b79190613b77565b60405180910390f35b3480156107cc57600080fd5b506107d5611604565b6040516107e29190613bfa565b60405180910390f35b3480156107f757600080fd5b50610812600480360381019061080d9190613d36565b61160a565b005b34801561082057600080fd5b5061083b60048036038101906108369190613b1c565b6116fb565b6040516108489190613b77565b60405180910390f35b34801561085d57600080fd5b5061087860048036038101906108739190613cdf565b6117c8565b005b34801561088657600080fd5b506108a1600480360381019061089c9190613c68565b6118a1565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613b1c565b611991565b6040516108d79190613b77565b60405180910390f35b3480156108ec57600080fd5b5061090760048036038101906109029190613bbe565b6119af565b005b34801561091557600080fd5b50610930600480360381019061092b9190613d63565b611a61565b005b34801561093e57600080fd5b50610947611b72565b6040516109549190613bfa565b60405180910390f35b34801561096957600080fd5b50610972611b78565b60405161097f9190613bfa565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190613da3565b611b7e565b6040516109bc9190613bfa565b60405180910390f35b3480156109d157600080fd5b506109da611c05565b6040516109e79190613bfa565b60405180910390f35b3480156109fc57600080fd5b50610a176004803603810190610a129190613c68565b611c0b565b005b348015610a2557600080fd5b50610a2e611cfb565b604051610a3b9190613b77565b60405180910390f35b348015610a5057600080fd5b50610a6b6004803603810190610a669190613d36565b611d0e565b604051610a789190613bfa565b60405180910390f35b348015610a8d57600080fd5b50610aa86004803603810190610aa39190613d36565b611d59565b005b348015610ab657600080fd5b50610abf611e3b565b604051610acc9190613d1b565b60405180910390f35b348015610ae157600080fd5b50610afc6004803603810190610af79190613cdf565b611e61565b005b348015610b0a57600080fd5b50610b256004803603810190610b209190613d36565b612023565b604051610b329190613bfa565b60405180910390f35b348015610b4757600080fd5b50610b626004803603810190610b5d9190613d63565b61206e565b005b348015610b7057600080fd5b50610b7961217f565b604051610b869190613bfa565b60405180910390f35b606060068054610b9e90613e12565b80601f0160208091040260200160405190810160405280929190818152602001828054610bca90613e12565b8015610c175780601f10610bec57610100808354040283529160200191610c17565b820191906000526020600020905b815481529060010190602001808311610bfa57829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c5b610c5461224a565b8484612252565b6001905092915050565b610c6d61224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190613e90565b60405180910390fd5b80601460006101000a81548160ff02191690831515021790555050565b6000600954905090565b600d5481565b6000610d3484848461241d565b610df584610d4061224a565b610df085604051806060016040528060298152602001614b5660299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610da661224a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b612252565b600190509392505050565b610e0861224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c90613e90565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b60155481565b6000610fb6610f1a61224a565b84610fb18560026000610f2b61224a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b612252565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b610fe861224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90613e90565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110bb573d6000803e3d6000fd5b5050565b600f5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61111661224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90613e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460009054906101000a900460ff1681565b60165481565b60125481565b60185481565b60056020528060005260406000206000915054906101000a900460ff1681565b6112d461224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890613e90565b60405180910390fd5b61138b60115461137d60056009546121cf90919063ffffffff16565b61218590919063ffffffff16565b8110156113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490613f22565b60405180910390fd5b80600e8190555050565b601460019054906101000a900460ff1681565b6113f261224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613e90565b60405180910390fd5b601460029054906101000a900460ff16156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690613f8e565b60405180910390fd5b6001601460026101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506001601460006101000a81548160ff02191690831515021790555042601381905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461156190613e12565b80601f016020809104026020016040519081016040528092919081815260200182805461158d90613e12565b80156115da5780601f106115af576101008083540402835291602001916115da565b820191906000526020600020905b8154815290600101906020018083116115bd57829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600e5481565b61161261224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461169f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169690613e90565b60405180910390fd5b6011546009546116af919061400c565b8110156116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e8906140af565b60405180910390fd5b80600f8190555050565b60006117be61170861224a565b846117b985604051806060016040528060298152602001614b2d602991396002600061173261224a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b612252565b6001905092915050565b6117d061224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613e90565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118a961224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90613e90565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006119a561199e61224a565b848461241d565b6001905092915050565b6119b761224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90613e90565b60405180910390fd5b80601460016101000a81548160ff02191690831515021790555050565b611a6961224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed90613e90565b60405180910390fd5b8160188190555080601781905550611b1a600a60115461218590919063ffffffff16565b611b2d828461292990919063ffffffff16565b1115611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b659061411b565b60405180910390fd5b5050565b60135481565b60105481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60175481565b611c1361224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9790613e90565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460029054906101000a900460ff1681565b600080611d4e601154611d40611d3160155460165461292990919063ffffffff16565b866121cf90919063ffffffff16565b61218590919063ffffffff16565b905080915050919050565b611d6161224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613e90565b60405180910390fd5b60008111611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890614187565b60405180910390fd5b80600d8190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e6961224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eed90613e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d90614219565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008061206360115461205561204660175460185461292990919063ffffffff16565b866121cf90919063ffffffff16565b61218590919063ffffffff16565b905080915050919050565b61207661224a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fa90613e90565b60405180910390fd5b8160168190555080601581905550612127600a60115461218590919063ffffffff16565b61213a828461292990919063ffffffff16565b111561217b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121729061411b565b60405180910390fd5b5050565b60115481565b60006121c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612987565b905092915050565b6000808314156121e25760009050612244565b600082846121f09190614239565b90508284826121ff919061400c565b1461223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690614305565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b990614397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232990614429565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124109190613bfa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561248d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612484906144bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f49061454d565b60405180910390fd5b60008111612540576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612537906145df565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125e45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561272f57600f5481111561262e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126259061464b565b60405180910390fd5b601460029054906101000a900460ff1661272e578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156126ee57508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b61272d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612724906146b7565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166127e057600e5461279e82612790856110c5565b61292990919063ffffffff16565b11156127df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d690614723565b60405180910390fd5b5b6127ea83836129ea565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128915750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128a95750601460019054906101000a900460ff16155b156128b357600090505b6128bf84848484612d0f565b50505050565b600083831115829061290d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290491906139e7565b60405180910390fd5b506000838561291c9190614743565b9050809150509392505050565b60008082846129389190614777565b90508381101561297d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297490614819565b60405180910390fd5b8091505092915050565b600080831182906129ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c591906139e7565b60405180910390fd5b50600083856129dd919061400c565b9050809150509392505050565b60006129f5306110c5565b90506000600d548210159050808015612a5c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612a745750601460009054906101000a900460ff165b8015612b0557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612b035750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b15612d0957612b3730600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612252565b6000612b4f600260195461218590919063ffffffff16565b90506000612b688260195461347290919063ffffffff16565b90506000612b7f828661347290919063ffffffff16565b90506000479050612bb2600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836134bc565b6000612bc7824761347290919063ffffffff16565b90506000612bf084612be288856121cf90919063ffffffff16565b61218590919063ffffffff16565b90506000811115612c6757612c2b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead87846136a2565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868287604051612c5e93929190614839565b60405180910390a15b6000612c7c824761347290919063ffffffff16565b90506000811115612cf157600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612cef573d6000803e3d6000fd5b505b60006019819055506000601a81905550505050505050505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612d695750805b1561304157600080601254601354612d819190614777565b42108015612ddd5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15612e4057612e0b601154612dfd601054876121cf90919063ffffffff16565b61218590919063ffffffff16565b915081601a6000828254612e1f9190614777565b92505081905550612e39828561347290919063ffffffff16565b9050612e6a565b612e4984611d0e565b9150612e5e828561347290919063ffffffff16565b9050612e6984613746565b5b612ef3846040518060400160405280601c81526020017f24574f4f46593a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f8881600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130289190613bfa565b60405180910390a361303a86836137cb565b505061346c565b8273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561309b5750805b156132a45760006130ab83612023565b905060006130c2828561347290919063ffffffff16565b905061314d846040518060400160405280601c81526020017f24574f4f46593a20696e73756666696369656e742062616c616e636500000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131e281600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132829190613bfa565b60405180910390a361329486836137cb565b61329d846138c9565b505061346b565b61332d826040518060400160405280601c81526020017f24574f4f46593a20696e73756666696369656e742062616c616e636500000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128c59092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133c282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516134629190613bfa565b60405180910390a35b5b50505050565b60006134b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128c5565b905092915050565b60008290506000600267ffffffffffffffff8111156134de576134dd614870565b5b60405190808252806020026020018201604052801561350c5781602001602082028036833780820191505090505b50905030816000815181106135245761352361489f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135cd91906148e3565b816001815181106135e1576135e061489f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261364a9190614777565b6040518663ffffffff1660e01b815260040161366a959493929190614a09565b600060405180830381600087803b15801561368457600080fd5b505af1158015613698573d6000803e3d6000fd5b5050505050505050565b60008490508073ffffffffffffffffffffffffffffffffffffffff1663f305d7198330866000808a61012c426136d89190614777565b6040518863ffffffff1660e01b81526004016136f996959493929190614a63565b60606040518083038185885af1158015613717573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061373c9190614ad9565b5050505050505050565b61376f601154613761601554846121cf90919063ffffffff16565b61218590919063ffffffff16565b601960008282546137809190614777565b925050819055506137b06011546137a2601654846121cf90919063ffffffff16565b61218590919063ffffffff16565b601a60008282546137c19190614777565b9250508190555050565b61381d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516138bd9190613bfa565b60405180910390a35050565b6138f26011546138e4601754846121cf90919063ffffffff16565b61218590919063ffffffff16565b601960008282546139039190614777565b92505081905550613933601154613925601854846121cf90919063ffffffff16565b61218590919063ffffffff16565b601a60008282546139449190614777565b9250508190555050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561398857808201518184015260208101905061396d565b83811115613997576000848401525b50505050565b6000601f19601f8301169050919050565b60006139b98261394e565b6139c38185613959565b93506139d381856020860161396a565b6139dc8161399d565b840191505092915050565b60006020820190508181036000830152613a0181846139ae565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613a4e613a49613a4484613a09565b613a29565b613a09565b9050919050565b6000613a6082613a33565b9050919050565b6000613a7282613a55565b9050919050565b613a8281613a67565b82525050565b6000602082019050613a9d6000830184613a79565b92915050565b600080fd5b6000613ab382613a09565b9050919050565b613ac381613aa8565b8114613ace57600080fd5b50565b600081359050613ae081613aba565b92915050565b6000819050919050565b613af981613ae6565b8114613b0457600080fd5b50565b600081359050613b1681613af0565b92915050565b60008060408385031215613b3357613b32613aa3565b5b6000613b4185828601613ad1565b9250506020613b5285828601613b07565b9150509250929050565b60008115159050919050565b613b7181613b5c565b82525050565b6000602082019050613b8c6000830184613b68565b92915050565b613b9b81613b5c565b8114613ba657600080fd5b50565b600081359050613bb881613b92565b92915050565b600060208284031215613bd457613bd3613aa3565b5b6000613be284828501613ba9565b91505092915050565b613bf481613ae6565b82525050565b6000602082019050613c0f6000830184613beb565b92915050565b600080600060608486031215613c2e57613c2d613aa3565b5b6000613c3c86828701613ad1565b9350506020613c4d86828701613ad1565b9250506040613c5e86828701613b07565b9150509250925092565b60008060408385031215613c7f57613c7e613aa3565b5b6000613c8d85828601613ad1565b9250506020613c9e85828601613ba9565b9150509250929050565b600060ff82169050919050565b613cbe81613ca8565b82525050565b6000602082019050613cd96000830184613cb5565b92915050565b600060208284031215613cf557613cf4613aa3565b5b6000613d0384828501613ad1565b91505092915050565b613d1581613aa8565b82525050565b6000602082019050613d306000830184613d0c565b92915050565b600060208284031215613d4c57613d4b613aa3565b5b6000613d5a84828501613b07565b91505092915050565b60008060408385031215613d7a57613d79613aa3565b5b6000613d8885828601613b07565b9250506020613d9985828601613b07565b9150509250929050565b60008060408385031215613dba57613db9613aa3565b5b6000613dc885828601613ad1565b9250506020613dd985828601613ad1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e2a57607f821691505b60208210811415613e3e57613e3d613de3565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613e7a602083613959565b9150613e8582613e44565b602082019050919050565b60006020820190508181036000830152613ea981613e6d565b9050919050565b7f24574f4f46593a2073686f756c642062652067726561746572207468616e203060008201527f2e35250000000000000000000000000000000000000000000000000000000000602082015250565b6000613f0c602383613959565b9150613f1782613eb0565b604082019050919050565b60006020820190508181036000830152613f3b81613eff565b9050919050565b7f24574f4f46593a20616c726561647920656e61626c6564000000000000000000600082015250565b6000613f78601783613959565b9150613f8382613f42565b602082019050919050565b60006020820190508181036000830152613fa781613f6b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061401782613ae6565b915061402283613ae6565b92508261403257614031613fae565b5b828204905092915050565b7f24574f4f46593a2073686f756c642062652067726561746572207468616e203060008201527f2e31250000000000000000000000000000000000000000000000000000000000602082015250565b6000614099602383613959565b91506140a48261403d565b604082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f24574f4f46593a2063616e2774206265206d6f7265207468616e203130250000600082015250565b6000614105601e83613959565b9150614110826140cf565b602082019050919050565b60006020820190508181036000830152614134816140f8565b9050919050565b7f24574f4f46593a2063616e277420626520300000000000000000000000000000600082015250565b6000614171601283613959565b915061417c8261413b565b602082019050919050565b600060208201905081810360008301526141a081614164565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614203602683613959565b915061420e826141a7565b604082019050919050565b60006020820190508181036000830152614232816141f6565b9050919050565b600061424482613ae6565b915061424f83613ae6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561428857614287613fdd565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142ef602183613959565b91506142fa82614293565b604082019050919050565b6000602082019050818103600083015261431e816142e2565b9050919050565b7f24574f4f46593a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614381602583613959565b915061438c82614325565b604082019050919050565b600060208201905081810360008301526143b081614374565b9050919050565b7f24574f4f46593a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614413602383613959565b915061441e826143b7565b604082019050919050565b6000602082019050818103600083015261444281614406565b9050919050565b7f24574f4f46593a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144a5602683613959565b91506144b082614449565b604082019050919050565b600060208201905081810360008301526144d481614498565b9050919050565b7f24574f4f46593a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614537602483613959565b9150614542826144db565b604082019050919050565b600060208201905081810360008301526145668161452a565b9050919050565b7f24574f4f46593a20416d6f756e74206d7573742062652067726561746572207460008201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b60006145c9602883613959565b91506145d48261456d565b604082019050919050565b600060208201905081810360008301526145f8816145bc565b9050919050565b7f24574f4f46593a206d61782074786e206c696d69742065786365656473000000600082015250565b6000614635601d83613959565b9150614640826145ff565b602082019050919050565b6000602082019050818103600083015261466481614628565b9050919050565b7f24574f4f46593a2074726164696e672069732064697361626c65000000000000600082015250565b60006146a1601a83613959565b91506146ac8261466b565b602082019050919050565b600060208201905081810360008301526146d081614694565b9050919050565b7f24574f4f46593a206d617820686f6c64206c696d697420657863656564730000600082015250565b600061470d601e83613959565b9150614718826146d7565b602082019050919050565b6000602082019050818103600083015261473c81614700565b9050919050565b600061474e82613ae6565b915061475983613ae6565b92508282101561476c5761476b613fdd565b5b828203905092915050565b600061478282613ae6565b915061478d83613ae6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147c2576147c1613fdd565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614803601b83613959565b915061480e826147cd565b602082019050919050565b60006020820190508181036000830152614832816147f6565b9050919050565b600060608201905061484e6000830186613beb565b61485b6020830185613beb565b6148686040830184613beb565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506148dd81613aba565b92915050565b6000602082840312156148f9576148f8613aa3565b5b6000614907848285016148ce565b91505092915050565b6000819050919050565b600061493561493061492b84614910565b613a29565b613ae6565b9050919050565b6149458161491a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61498081613aa8565b82525050565b60006149928383614977565b60208301905092915050565b6000602082019050919050565b60006149b68261494b565b6149c08185614956565b93506149cb83614967565b8060005b838110156149fc5781516149e38882614986565b97506149ee8361499e565b9250506001810190506149cf565b5085935050505092915050565b600060a082019050614a1e6000830188613beb565b614a2b602083018761493c565b8181036040830152614a3d81866149ab565b9050614a4c6060830185613d0c565b614a596080830184613beb565b9695505050505050565b600060c082019050614a786000830189613d0c565b614a856020830188613beb565b614a92604083018761493c565b614a9f606083018661493c565b614aac6080830185613d0c565b614ab960a0830184613beb565b979650505050505050565b600081519050614ad381613af0565b92915050565b600080600060608486031215614af257614af1613aa3565b5b6000614b0086828701614ac4565b9350506020614b1186828701614ac4565b9250506040614b2286828701614ac4565b915050925092509256fe24574f4f46593a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726f24574f4f46593a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aacc4b79311e93f5f886521362fa358bf2aa4a76547eeec034e60417a364a56664736f6c634300080a0033

Deployed Bytecode Sourcemap

3434:15764:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6744:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4102:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7655:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10924:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7021:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4204:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7856:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9367:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6930:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4894:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8311:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3652:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11536:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4418:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7129:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2981:157;;;;;;;;;;;;;:::i;:::-;;4165:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4677:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4978:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4597:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5157:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3767:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9713:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4773:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11285:243;;;;;;;;;;;;;:::i;:::-;;2767:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6835:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3708:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8619:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11154:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9196:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7256:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11047:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10567:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4643:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4520:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7463:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5072:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9031:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4823:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11673:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9546:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4136:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3146:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11913:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10213:346;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4554:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6744:83;6781:13;6814:5;6807:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6744:83;:::o;4102:27::-;;;;;;;;;;;;;:::o;7655:193::-;7757:4;7779:39;7788:12;:10;:12::i;:::-;7802:7;7811:6;7779:8;:39::i;:::-;7836:4;7829:11;;7655:193;;;;:::o;10924:115::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11025:6:::1;10996:26;;:35;;;;;;;;;;;;;;;;;;10924:115:::0;:::o;7021:100::-;7074:7;7101:12;;7094:19;;7021:100;:::o;4204:53::-;;;;:::o;7856:447::-;7988:4;8005:36;8015:6;8023:9;8034:6;8005:9;:36::i;:::-;8052:221;8075:6;8096:12;:10;:12::i;:::-;8123:139;8179:6;8123:139;;;;;;;;;;;;;;;;;:11;:19;8135:6;8123:19;;;;;;;;;;;;;;;:33;8143:12;:10;:12::i;:::-;8123:33;;;;;;;;;;;;;;;;:37;;:139;;;;;:::i;:::-;8052:8;:221::i;:::-;8291:4;8284:11;;7856:447;;;;;:::o;9367:171::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9525:5:::1;9489:24;:33;9514:7;9489:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;9367:171:::0;;:::o;6930:83::-;6971:5;6996:9;;;;;;;;;;;6989:16;;6930:83;:::o;4894:40::-;;;;:::o;8311:300::-;8426:4;8448:133;8471:12;:10;:12::i;:::-;8498:7;8520:50;8559:10;8520:11;:25;8532:12;:10;:12::i;:::-;8520:25;;;;;;;;;;;;;;;:34;8546:7;8520:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8448:8;:133::i;:::-;8599:4;8592:11;;8311:300;;;;:::o;3652:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;11536:129::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11615:9:::1;11607:27;;:50;11635:21;11607:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11536:129:::0;:::o;4418:58::-;;;;:::o;7129:119::-;7195:7;7222:9;:18;7232:7;7222:18;;;;;;;;;;;;;;;;7215:25;;7129:119;;;:::o;2981:157::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3088:1:::1;3051:40;;3072:6;::::0;::::1;;;;;;;;3051:40;;;;;;;;;;;;3127:1;3102:6:::0;::::1;:28;;;;;;;;;;;;;;;;;;2981:157::o:0;4165:30::-;;;;;;;;;;;;;:::o;4677:38::-;;;;;;;;;;;;;:::o;4978:40::-;;;;:::o;4597:39::-;;;;:::o;5157:41::-;;;;:::o;3767:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;9713:248::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9818:39:::1;9842:14;;9818:19;9835:1;9818:12;;:16;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;9807:7;:50;;9785:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9946:7;9931:12;:22;;;;9713:248:::0;:::o;4773:22::-;;;;;;;;;;;;;:::o;11285:243::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11349:7:::1;;;;;;;;;;;11348:8;11340:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11405:4;11395:7;;:14;;;;;;;;;;;;;;;;;;11433:4;11420:10;;:17;;;;;;;;;;;;;;;;;;11477:4;11448:26;;:33;;;;;;;;;;;;;;;;;;11505:15;11492:10;:28;;;;11285:243::o:0;2767:79::-;2805:7;2832:6;;;;;;;;;;;2825:13;;2767:79;:::o;6835:87::-;6874:13;6907:7;6900:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6835:87;:::o;3708:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;4312:59::-;;;;:::o;9969:236::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10088:14:::1;;10073:12;;:29;;;;:::i;:::-;10062:7;:40;;10040:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;10190:7;10176:11;:21;;;;9969:236:::0;:::o;8619:404::-;8739:4;8761:232;8784:12;:10;:12::i;:::-;8811:7;8833:149;8890:15;8833:149;;;;;;;;;;;;;;;;;:11;:25;8845:12;:10;:12::i;:::-;8833:25;;;;;;;;;;;;;;;:34;8859:7;8833:34;;;;;;;;;;;;;;;;:38;;:149;;;;;:::i;:::-;8761:8;:232::i;:::-;9011:4;9004:11;;8619:404;;;;:::o;11154:123::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11253:16:::1;11235:15;;:34;;;;;;;;;;;;;;;;;;11154:123:::0;:::o;9196:163::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9346:5:::1;9314:20;:29;9335:7;9314:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9196:163:::0;;:::o;7256:199::-;7361:4;7383:42;7393:12;:10;:12::i;:::-;7407:9;7418:6;7383:9;:42::i;:::-;7443:4;7436:11;;7256:199;;;;:::o;11047:99::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11132:6:::1;11119:10;;:19;;;;;;;;;;;;;;;;;;11047:99:::0;:::o;10567:349::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10712:6:::1;10688:21;:30;;;;10753:13;10729:21;:37;;;;10828:22;10847:2;10828:14;;:18;;:22;;;;:::i;:::-;10799:25;10810:13;10799:6;:10;;:25;;;;:::i;:::-;:51;;10777:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;10567:349:::0;;:::o;4643:25::-;;;;:::o;4520:27::-;;;;:::o;7463:184::-;7580:7;7612:11;:18;7624:5;7612:18;;;;;;;;;;;;;;;:27;7631:7;7612:27;;;;;;;;;;;;;;;;7605:34;;7463:184;;;;:::o;5072:41::-;;;;:::o;9031:157::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9175:5:::1;9146:17;:26;9164:7;9146:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;9031:157:::0;;:::o;4823:19::-;;;;;;;;;;;;;:::o;11673:232::-;11736:7;11756:11;11770:106;11861:14;;11770:72;11795:46;11820:20;;11795;;:24;;:46;;;;:::i;:::-;11770:6;:24;;:72;;;;:::i;:::-;:90;;:106;;;;:::i;:::-;11756:120;;11894:3;11887:10;;;11673:232;;;:::o;9546:159::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9638:1:::1;9628:7;:11;9620:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9690:7;9673:14;:24;;;;9546:159:::0;:::o;4136:22::-;;;;;;;;;;;;;:::o;3146:281::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3269:1:::1;3249:22;;:8;:22;;;;3227:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;3382:8;3353:38;;3374:6;::::0;::::1;;;;;;;;3353:38;;;;;;;;;;;;3411:8;3402:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3146:281:::0;:::o;11913:235::-;11977:7;11997:11;12011:108;12104:14;;12011:74;12036:48;12062:21;;12036;;:25;;:48;;;;:::i;:::-;12011:6;:24;;:74;;;;:::i;:::-;:92;;:108;;;;:::i;:::-;11997:122;;12137:3;12130:10;;;11913:235;;;:::o;10213:346::-;2904:12;:10;:12::i;:::-;2894:22;;:6;;;;;;;;;;:22;;;2886:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10356:6:::1;10333:20;:29;;;;10396:13;10373:20;:36;;;;10471:22;10490:2;10471:14;;:18;;:22;;;;:::i;:::-;10442:25;10453:13;10442:6;:10;;:25;;;;:::i;:::-;:51;;10420:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;10213:346:::0;;:::o;4554:36::-;;;;:::o;21494:132::-;21552:7;21579:39;21583:1;21586;21579:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;21572:46;;21494:132;;;;:::o;21015:471::-;21073:7;21323:1;21318;:6;21314:47;;;21348:1;21341:8;;;;21314:47;21373:9;21389:1;21385;:5;;;;:::i;:::-;21373:17;;21418:1;21413;21409;:5;;;;:::i;:::-;:10;21401:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;21477:1;21470:8;;;21015:471;;;;;:::o;2103:115::-;2156:15;2199:10;2184:26;;2103:115;:::o;12156:373::-;12300:1;12283:19;;:5;:19;;;;12275:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12382:1;12363:21;;:7;:21;;;;12355:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12467:6;12437:11;:18;12449:5;12437:18;;;;;;;;;;;;;;;:27;12456:7;12437:27;;;;;;;;;;;;;;;:36;;;;12505:7;12489:32;;12498:5;12489:32;;;12514:6;12489:32;;;;;;:::i;:::-;;;;;;;;12156:373;;;:::o;12537:1444::-;12675:1;12659:18;;:4;:18;;;;12651:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12753:1;12739:16;;:2;:16;;;;12731:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12824:1;12815:6;:10;12807:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12888:20;:26;12909:4;12888:26;;;;;;;;;;;;;;;;;;;;;;;;;12887:27;:56;;;;;12919:20;:24;12940:2;12919:24;;;;;;;;;;;;;;;;;;;;;;;;;12918:25;12887:56;12883:393;;;12978:11;;12968:6;:21;;12960:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13089:7;;;;;;;;;;;13084:181;;13158:4;13147:15;;:7;;;;;;;;;;;:15;;;;:32;;;;;13177:2;13166:13;;:7;;;;;;;;;;;:13;;;;13147:32;13117:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;13084:181;12883:393;13293:24;:28;13318:2;13293:28;;;;;;;;;;;;;;;;;;;;;;;;;13288:195;;13393:12;;13364:25;13382:6;13364:13;13374:2;13364:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:41;;13338:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;13288:195;13524:30;13545:4;13551:2;13524:20;:30::i;:::-;13628:12;13643:4;13628:19;;13747:17;:23;13765:4;13747:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;13774:17;:21;13792:2;13774:21;;;;;;;;;;;;;;;;;;;;;;;;;13747:48;:63;;;;13800:10;;;;;;;;;;;13799:11;13747:63;13743:111;;;13837:5;13827:15;;13743:111;13932:41;13947:4;13953:2;13957:6;13965:7;13932:14;:41::i;:::-;12640:1341;12537:1444;;;:::o;20781:226::-;20901:7;20934:1;20929;:6;;20937:12;20921:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;20961:9;20977:1;20973;:5;;;;:::i;:::-;20961:17;;20998:1;20991:8;;;20781:226;;;;;:::o;20448:181::-;20506:7;20526:9;20542:1;20538;:5;;;;:::i;:::-;20526:17;;20567:1;20562;:6;;20554:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;20620:1;20613:8;;;20448:181;;;;:::o;21634:312::-;21754:7;21786:1;21782;:5;21789:12;21774:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;21813:9;21829:1;21825;:5;;;;:::i;:::-;21813:17;;21937:1;21930:8;;;21634:312;;;;;:::o;16840:2355::-;17193:28;17224:24;17242:4;17224:9;:24::i;:::-;17193:55;;17261:15;17303:14;;17279:20;:38;;17261:56;;17348:10;:42;;;;;17383:7;;;;;;;;;;;17375:15;;:4;:15;;;;17348:42;:85;;;;;17407:26;;;;;;;;;;;17348:85;:143;;;;;17468:4;17452:21;;:4;:21;;;:38;;;;;17483:7;;;;;;;;;;;17477:13;;:2;:13;;;17452:38;17450:41;17348:143;17330:1858;;;17566:65;17583:4;17598:9;;;;;;;;;;;17610:20;17566:8;:65::i;:::-;17648:21;17672:26;17696:1;17672:19;;:23;;:26;;;;:::i;:::-;17648:50;;17713:26;17742:38;17766:13;17742:19;;:23;;:38;;;;:::i;:::-;17713:67;;17797:30;17830:76;17873:18;17830:20;:24;;:76;;;;:::i;:::-;17797:109;;17923:21;17947;17923:45;;18035:66;18066:9;;;;;;;;;;;18078:22;18035;:66::i;:::-;18118:20;18141:40;18167:13;18141:21;:25;;:40;;;;:::i;:::-;18118:63;;18198:31;18232:95;18304:22;18232:49;18267:13;18232:12;:34;;:49;;;;:::i;:::-;:71;;:95;;;;:::i;:::-;18198:129;;18411:1;18385:23;:27;18381:442;;;18433:192;18482:9;;;;;;;;;;;4039:6;18542:18;18583:23;18433:18;:192::i;:::-;18651:156;18688:13;18724:23;18770:18;18651:156;;;;;;;;:::i;:::-;;;;;;;;18381:442;18839:16;18858:82;18902:23;18858:21;:25;;:82;;;;:::i;:::-;18839:101;;19013:1;19002:8;:12;18998:61;;;19024:15;;;;;;;;;;;19016:33;;:43;19050:8;19016:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18998:61;19137:1;19115:19;:23;;;;19175:1;19153:19;:23;;;;17518:1670;;;;;;;17330:1858;16904:2291;;16840:2355;;:::o;14062:1974::-;14228:6;14217:17;;:7;;;;;;;;;;;:17;;;:28;;;;;14238:7;14217:28;14213:1816;;;14262:14;14291:23;14406:11;;14393:10;;:24;;;;:::i;:::-;14375:15;:42;:91;;;;;14456:9;;;;;;;;;;;14438:28;;:6;:28;;;;14375:91;14353:492;;;14510:38;14533:14;;14510:18;14521:6;;14510;:10;;:18;;;;:::i;:::-;:22;;:38;;;;:::i;:::-;14501:47;;14590:6;14567:19;;:29;;;;;;;:::i;:::-;;;;;;;;14633:18;14644:6;14633;:10;;:18;;;;:::i;:::-;14615:36;;14353:492;;;14701:24;14718:6;14701:16;:24::i;:::-;14692:33;;14762:18;14773:6;14762;:10;;:18;;;;:::i;:::-;14744:36;;14799:30;14822:6;14799:22;:30::i;:::-;14353:492;14881:110;14921:6;14881:110;;;;;;;;;;;;;;;;;:9;:17;14891:6;14881:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;14861:9;:17;14871:6;14861:17;;;;;;;;;;;;;;;:130;;;;15029:41;15054:15;15029:9;:20;15039:9;15029:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15006:9;:20;15016:9;15006:20;;;;;;;;;;;;;;;:64;;;;15107:9;15090:44;;15099:6;15090:44;;;15118:15;15090:44;;;;;;:::i;:::-;;;;;;;;15151:28;15164:6;15172;15151:12;:28::i;:::-;14247:944;;14213:1816;;;15212:9;15201:20;;:7;;;;;;;;;;;:20;;;:31;;;;;15225:7;15201:31;15197:832;;;15249:14;15266:25;15284:6;15266:17;:25::i;:::-;15249:42;;15306:23;15332:18;15343:6;15332;:10;;:18;;;;:::i;:::-;15306:44;;15385:110;15425:6;15385:110;;;;;;;;;;;;;;;;;:9;:17;15395:6;15385:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;15365:9;:17;15375:6;15365:17;;;;;;;;;;;;;;;:130;;;;15533:41;15558:15;15533:9;:20;15543:9;15533:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;15510:9;:20;15520:9;15510:20;;;;;;;;;;;;;;;:64;;;;15611:9;15594:44;;15603:6;15594:44;;;15622:15;15594:44;;;;;;:::i;:::-;;;;;;;;15655:28;15668:6;15676;15655:12;:28::i;:::-;15698:31;15722:6;15698:23;:31::i;:::-;15234:507;;15197:832;;;15782:110;15822:6;15782:110;;;;;;;;;;;;;;;;;:9;:17;15792:6;15782:17;;;;;;;;;;;;;;;;:21;;:110;;;;;:::i;:::-;15762:9;:17;15772:6;15762:17;;;;;;;;;;;;;;;:130;;;;15930:32;15955:6;15930:9;:20;15940:9;15930:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15907:9;:20;15917:9;15907:20;;;;;;;;;;;;;;;:55;;;;15999:9;15982:35;;15991:6;15982:35;;;16010:6;15982:35;;;;;;:::i;:::-;;;;;;;;15197:832;14213:1816;14062:1974;;;;:::o;20637:136::-;20695:7;20722:43;20726:1;20729;20722:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;20715:50;;20637:136;;;;:::o;19294:603::-;19398:20;19432:13;19398:48;;19515:21;19553:1;19539:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19515:40;;19584:4;19566;19571:1;19566:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;19610:9;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19600:4;19605:1;19600:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;19665:9;:60;;;19740:11;19766:1;19810:4;19837;19875:3;19857:15;:21;;;;:::i;:::-;19665:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19387:510;;19294:603;;:::o;19905:512::-;20068:20;20102:13;20068:48;;20159:9;:25;;;20192:9;20225:4;20245:11;20271:1;20314;20357:5;20395:3;20377:15;:21;;;;:::i;:::-;20159:250;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20057:360;19905:512;;;;:::o;16253:284::-;16343:76;16394:14;;16343:32;16354:20;;16343:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16320:19;;:99;;;;;;;:::i;:::-;;;;;;;;16453:76;16504:14;;16453:32;16464:20;;16453:6;:10;;:32;;;;:::i;:::-;:36;;:76;;;;:::i;:::-;16430:19;;:99;;;;;;;:::i;:::-;;;;;;;;16253:284;:::o;16044:201::-;16144:36;16173:6;16144:9;:24;16162:4;16144:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;16117:9;:24;16135:4;16117:24;;;;;;;;;;;;;;;:63;;;;16223:4;16198:39;;16207:6;16198:39;;;16230:6;16198:39;;;;;;:::i;:::-;;;;;;;;16044:201;;:::o;16545:287::-;16636:77;16688:14;;16636:33;16647:21;;16636:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16613:19;;:100;;;;;;;:::i;:::-;;;;;;;;16747:77;16799:14;;16747:33;16758:21;;16747:6;:10;;:33;;;;:::i;:::-;:37;;:77;;;;:::i;:::-;16724:19;;:100;;;;;;;:::i;:::-;;;;;;;;16545:287;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:126::-;1434:7;1474:42;1467:5;1463:54;1452:65;;1397:126;;;:::o;1529:60::-;1557:3;1578:5;1571:12;;1529:60;;;:::o;1595:142::-;1645:9;1678:53;1696:34;1705:24;1723:5;1705:24;:::i;:::-;1696:34;:::i;:::-;1678:53;:::i;:::-;1665:66;;1595:142;;;:::o;1743:126::-;1793:9;1826:37;1857:5;1826:37;:::i;:::-;1813:50;;1743:126;;;:::o;1875:144::-;1943:9;1976:37;2007:5;1976:37;:::i;:::-;1963:50;;1875:144;;;:::o;2025:167::-;2130:55;2179:5;2130:55;:::i;:::-;2125:3;2118:68;2025:167;;:::o;2198:258::-;2309:4;2347:2;2336:9;2332:18;2324:26;;2360:89;2446:1;2435:9;2431:17;2422:6;2360:89;:::i;:::-;2198:258;;;;:::o;2543:117::-;2652:1;2649;2642:12;2789:96;2826:7;2855:24;2873:5;2855:24;:::i;:::-;2844:35;;2789:96;;;:::o;2891:122::-;2964:24;2982:5;2964:24;:::i;:::-;2957:5;2954:35;2944:63;;3003:1;3000;2993:12;2944:63;2891:122;:::o;3019:139::-;3065:5;3103:6;3090:20;3081:29;;3119:33;3146:5;3119:33;:::i;:::-;3019:139;;;;:::o;3164:77::-;3201:7;3230:5;3219:16;;3164:77;;;:::o;3247:122::-;3320:24;3338:5;3320:24;:::i;:::-;3313:5;3310:35;3300:63;;3359:1;3356;3349:12;3300:63;3247:122;:::o;3375:139::-;3421:5;3459:6;3446:20;3437:29;;3475:33;3502:5;3475:33;:::i;:::-;3375:139;;;;:::o;3520:474::-;3588:6;3596;3645:2;3633:9;3624:7;3620:23;3616:32;3613:119;;;3651:79;;:::i;:::-;3613:119;3771:1;3796:53;3841:7;3832:6;3821:9;3817:22;3796:53;:::i;:::-;3786:63;;3742:117;3898:2;3924:53;3969:7;3960:6;3949:9;3945:22;3924:53;:::i;:::-;3914:63;;3869:118;3520:474;;;;;:::o;4000:90::-;4034:7;4077:5;4070:13;4063:21;4052:32;;4000:90;;;:::o;4096:109::-;4177:21;4192:5;4177:21;:::i;:::-;4172:3;4165:34;4096:109;;:::o;4211:210::-;4298:4;4336:2;4325:9;4321:18;4313:26;;4349:65;4411:1;4400:9;4396:17;4387:6;4349:65;:::i;:::-;4211:210;;;;:::o;4427:116::-;4497:21;4512:5;4497:21;:::i;:::-;4490:5;4487:32;4477:60;;4533:1;4530;4523:12;4477:60;4427:116;:::o;4549:133::-;4592:5;4630:6;4617:20;4608:29;;4646:30;4670:5;4646:30;:::i;:::-;4549:133;;;;:::o;4688:323::-;4744:6;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:50;4986:7;4977:6;4966:9;4962:22;4944:50;:::i;:::-;4934:60;;4890:114;4688:323;;;;:::o;5017:118::-;5104:24;5122:5;5104:24;:::i;:::-;5099:3;5092:37;5017:118;;:::o;5141:222::-;5234:4;5272:2;5261:9;5257:18;5249:26;;5285:71;5353:1;5342:9;5338:17;5329:6;5285:71;:::i;:::-;5141:222;;;;:::o;5369:619::-;5446:6;5454;5462;5511:2;5499:9;5490:7;5486:23;5482:32;5479:119;;;5517:79;;:::i;:::-;5479:119;5637:1;5662:53;5707:7;5698:6;5687:9;5683:22;5662:53;:::i;:::-;5652:63;;5608:117;5764:2;5790:53;5835:7;5826:6;5815:9;5811:22;5790:53;:::i;:::-;5780:63;;5735:118;5892:2;5918:53;5963:7;5954:6;5943:9;5939:22;5918:53;:::i;:::-;5908:63;;5863:118;5369:619;;;;;:::o;5994:468::-;6059:6;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:119;;;6122:79;;:::i;:::-;6084:119;6242:1;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6213:117;6369:2;6395:50;6437:7;6428:6;6417:9;6413:22;6395:50;:::i;:::-;6385:60;;6340:115;5994:468;;;;;:::o;6468:86::-;6503:7;6543:4;6536:5;6532:16;6521:27;;6468:86;;;:::o;6560:112::-;6643:22;6659:5;6643:22;:::i;:::-;6638:3;6631:35;6560:112;;:::o;6678:214::-;6767:4;6805:2;6794:9;6790:18;6782:26;;6818:67;6882:1;6871:9;6867:17;6858:6;6818:67;:::i;:::-;6678:214;;;;:::o;6898:329::-;6957:6;7006:2;6994:9;6985:7;6981:23;6977:32;6974:119;;;7012:79;;:::i;:::-;6974:119;7132:1;7157:53;7202:7;7193:6;7182:9;7178:22;7157:53;:::i;:::-;7147:63;;7103:117;6898:329;;;;:::o;7233:118::-;7320:24;7338:5;7320:24;:::i;:::-;7315:3;7308:37;7233:118;;:::o;7357:222::-;7450:4;7488:2;7477:9;7473:18;7465:26;;7501:71;7569:1;7558:9;7554:17;7545:6;7501:71;:::i;:::-;7357:222;;;;:::o;7585:329::-;7644:6;7693:2;7681:9;7672:7;7668:23;7664:32;7661:119;;;7699:79;;:::i;:::-;7661:119;7819:1;7844:53;7889:7;7880:6;7869:9;7865:22;7844:53;:::i;:::-;7834:63;;7790:117;7585:329;;;;:::o;7920:474::-;7988:6;7996;8045:2;8033:9;8024:7;8020:23;8016:32;8013:119;;;8051:79;;:::i;:::-;8013:119;8171:1;8196:53;8241:7;8232:6;8221:9;8217:22;8196:53;:::i;:::-;8186:63;;8142:117;8298:2;8324:53;8369:7;8360:6;8349:9;8345:22;8324:53;:::i;:::-;8314:63;;8269:118;7920:474;;;;;:::o;8400:::-;8468:6;8476;8525:2;8513:9;8504:7;8500:23;8496:32;8493:119;;;8531:79;;:::i;:::-;8493:119;8651:1;8676:53;8721:7;8712:6;8701:9;8697:22;8676:53;:::i;:::-;8666:63;;8622:117;8778:2;8804:53;8849:7;8840:6;8829:9;8825:22;8804:53;:::i;:::-;8794:63;;8749:118;8400:474;;;;;:::o;8880:180::-;8928:77;8925:1;8918:88;9025:4;9022:1;9015:15;9049:4;9046:1;9039:15;9066:320;9110:6;9147:1;9141:4;9137:12;9127:22;;9194:1;9188:4;9184:12;9215:18;9205:81;;9271:4;9263:6;9259:17;9249:27;;9205:81;9333:2;9325:6;9322:14;9302:18;9299:38;9296:84;;;9352:18;;:::i;:::-;9296:84;9117:269;9066:320;;;:::o;9392:182::-;9532:34;9528:1;9520:6;9516:14;9509:58;9392:182;:::o;9580:366::-;9722:3;9743:67;9807:2;9802:3;9743:67;:::i;:::-;9736:74;;9819:93;9908:3;9819:93;:::i;:::-;9937:2;9932:3;9928:12;9921:19;;9580:366;;;:::o;9952:419::-;10118:4;10156:2;10145:9;10141:18;10133:26;;10205:9;10199:4;10195:20;10191:1;10180:9;10176:17;10169:47;10233:131;10359:4;10233:131;:::i;:::-;10225:139;;9952:419;;;:::o;10377:222::-;10517:34;10513:1;10505:6;10501:14;10494:58;10586:5;10581:2;10573:6;10569:15;10562:30;10377:222;:::o;10605:366::-;10747:3;10768:67;10832:2;10827:3;10768:67;:::i;:::-;10761:74;;10844:93;10933:3;10844:93;:::i;:::-;10962:2;10957:3;10953:12;10946:19;;10605:366;;;:::o;10977:419::-;11143:4;11181:2;11170:9;11166:18;11158:26;;11230:9;11224:4;11220:20;11216:1;11205:9;11201:17;11194:47;11258:131;11384:4;11258:131;:::i;:::-;11250:139;;10977:419;;;:::o;11402:173::-;11542:25;11538:1;11530:6;11526:14;11519:49;11402:173;:::o;11581:366::-;11723:3;11744:67;11808:2;11803:3;11744:67;:::i;:::-;11737:74;;11820:93;11909:3;11820:93;:::i;:::-;11938:2;11933:3;11929:12;11922:19;;11581:366;;;:::o;11953:419::-;12119:4;12157:2;12146:9;12142:18;12134:26;;12206:9;12200:4;12196:20;12192:1;12181:9;12177:17;12170:47;12234:131;12360:4;12234:131;:::i;:::-;12226:139;;11953:419;;;:::o;12378:180::-;12426:77;12423:1;12416:88;12523:4;12520:1;12513:15;12547:4;12544:1;12537:15;12564:180;12612:77;12609:1;12602:88;12709:4;12706:1;12699:15;12733:4;12730:1;12723:15;12750:185;12790:1;12807:20;12825:1;12807:20;:::i;:::-;12802:25;;12841:20;12859:1;12841:20;:::i;:::-;12836:25;;12880:1;12870:35;;12885:18;;:::i;:::-;12870:35;12927:1;12924;12920:9;12915:14;;12750:185;;;;:::o;12941:222::-;13081:34;13077:1;13069:6;13065:14;13058:58;13150:5;13145:2;13137:6;13133:15;13126:30;12941:222;:::o;13169:366::-;13311:3;13332:67;13396:2;13391:3;13332:67;:::i;:::-;13325:74;;13408:93;13497:3;13408:93;:::i;:::-;13526:2;13521:3;13517:12;13510:19;;13169:366;;;:::o;13541:419::-;13707:4;13745:2;13734:9;13730:18;13722:26;;13794:9;13788:4;13784:20;13780:1;13769:9;13765:17;13758:47;13822:131;13948:4;13822:131;:::i;:::-;13814:139;;13541:419;;;:::o;13966:180::-;14106:32;14102:1;14094:6;14090:14;14083:56;13966:180;:::o;14152:366::-;14294:3;14315:67;14379:2;14374:3;14315:67;:::i;:::-;14308:74;;14391:93;14480:3;14391:93;:::i;:::-;14509:2;14504:3;14500:12;14493:19;;14152:366;;;:::o;14524:419::-;14690:4;14728:2;14717:9;14713:18;14705:26;;14777:9;14771:4;14767:20;14763:1;14752:9;14748:17;14741:47;14805:131;14931:4;14805:131;:::i;:::-;14797:139;;14524:419;;;:::o;14949:168::-;15089:20;15085:1;15077:6;15073:14;15066:44;14949:168;:::o;15123:366::-;15265:3;15286:67;15350:2;15345:3;15286:67;:::i;:::-;15279:74;;15362:93;15451:3;15362:93;:::i;:::-;15480:2;15475:3;15471:12;15464:19;;15123:366;;;:::o;15495:419::-;15661:4;15699:2;15688:9;15684:18;15676:26;;15748:9;15742:4;15738:20;15734:1;15723:9;15719:17;15712:47;15776:131;15902:4;15776:131;:::i;:::-;15768:139;;15495:419;;;:::o;15920:225::-;16060:34;16056:1;16048:6;16044:14;16037:58;16129:8;16124:2;16116:6;16112:15;16105:33;15920:225;:::o;16151:366::-;16293:3;16314:67;16378:2;16373:3;16314:67;:::i;:::-;16307:74;;16390:93;16479:3;16390:93;:::i;:::-;16508:2;16503:3;16499:12;16492:19;;16151:366;;;:::o;16523:419::-;16689:4;16727:2;16716:9;16712:18;16704:26;;16776:9;16770:4;16766:20;16762:1;16751:9;16747:17;16740:47;16804:131;16930:4;16804:131;:::i;:::-;16796:139;;16523:419;;;:::o;16948:348::-;16988:7;17011:20;17029:1;17011:20;:::i;:::-;17006:25;;17045:20;17063:1;17045:20;:::i;:::-;17040:25;;17233:1;17165:66;17161:74;17158:1;17155:81;17150:1;17143:9;17136:17;17132:105;17129:131;;;17240:18;;:::i;:::-;17129:131;17288:1;17285;17281:9;17270:20;;16948:348;;;;:::o;17302:220::-;17442:34;17438:1;17430:6;17426:14;17419:58;17511:3;17506:2;17498:6;17494:15;17487:28;17302:220;:::o;17528:366::-;17670:3;17691:67;17755:2;17750:3;17691:67;:::i;:::-;17684:74;;17767:93;17856:3;17767:93;:::i;:::-;17885:2;17880:3;17876:12;17869:19;;17528:366;;;:::o;17900:419::-;18066:4;18104:2;18093:9;18089:18;18081:26;;18153:9;18147:4;18143:20;18139:1;18128:9;18124:17;18117:47;18181:131;18307:4;18181:131;:::i;:::-;18173:139;;17900:419;;;:::o;18325:224::-;18465:34;18461:1;18453:6;18449:14;18442:58;18534:7;18529:2;18521:6;18517:15;18510:32;18325:224;:::o;18555:366::-;18697:3;18718:67;18782:2;18777:3;18718:67;:::i;:::-;18711:74;;18794:93;18883:3;18794:93;:::i;:::-;18912:2;18907:3;18903:12;18896:19;;18555:366;;;:::o;18927:419::-;19093:4;19131:2;19120:9;19116:18;19108:26;;19180:9;19174:4;19170:20;19166:1;19155:9;19151:17;19144:47;19208:131;19334:4;19208:131;:::i;:::-;19200:139;;18927:419;;;:::o;19352:222::-;19492:34;19488:1;19480:6;19476:14;19469:58;19561:5;19556:2;19548:6;19544:15;19537:30;19352:222;:::o;19580:366::-;19722:3;19743:67;19807:2;19802:3;19743:67;:::i;:::-;19736:74;;19819:93;19908:3;19819:93;:::i;:::-;19937:2;19932:3;19928:12;19921:19;;19580:366;;;:::o;19952:419::-;20118:4;20156:2;20145:9;20141:18;20133:26;;20205:9;20199:4;20195:20;20191:1;20180:9;20176:17;20169:47;20233:131;20359:4;20233:131;:::i;:::-;20225:139;;19952:419;;;:::o;20377:225::-;20517:34;20513:1;20505:6;20501:14;20494:58;20586:8;20581:2;20573:6;20569:15;20562:33;20377:225;:::o;20608:366::-;20750:3;20771:67;20835:2;20830:3;20771:67;:::i;:::-;20764:74;;20847:93;20936:3;20847:93;:::i;:::-;20965:2;20960:3;20956:12;20949:19;;20608:366;;;:::o;20980:419::-;21146:4;21184:2;21173:9;21169:18;21161:26;;21233:9;21227:4;21223:20;21219:1;21208:9;21204:17;21197:47;21261:131;21387:4;21261:131;:::i;:::-;21253:139;;20980:419;;;:::o;21405:223::-;21545:34;21541:1;21533:6;21529:14;21522:58;21614:6;21609:2;21601:6;21597:15;21590:31;21405:223;:::o;21634:366::-;21776:3;21797:67;21861:2;21856:3;21797:67;:::i;:::-;21790:74;;21873:93;21962:3;21873:93;:::i;:::-;21991:2;21986:3;21982:12;21975:19;;21634:366;;;:::o;22006:419::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o;22431:227::-;22571:34;22567:1;22559:6;22555:14;22548:58;22640:10;22635:2;22627:6;22623:15;22616:35;22431:227;:::o;22664:366::-;22806:3;22827:67;22891:2;22886:3;22827:67;:::i;:::-;22820:74;;22903:93;22992:3;22903:93;:::i;:::-;23021:2;23016:3;23012:12;23005:19;;22664:366;;;:::o;23036:419::-;23202:4;23240:2;23229:9;23225:18;23217:26;;23289:9;23283:4;23279:20;23275:1;23264:9;23260:17;23253:47;23317:131;23443:4;23317:131;:::i;:::-;23309:139;;23036:419;;;:::o;23461:179::-;23601:31;23597:1;23589:6;23585:14;23578:55;23461:179;:::o;23646:366::-;23788:3;23809:67;23873:2;23868:3;23809:67;:::i;:::-;23802:74;;23885:93;23974:3;23885:93;:::i;:::-;24003:2;23998:3;23994:12;23987:19;;23646:366;;;:::o;24018:419::-;24184:4;24222:2;24211:9;24207:18;24199:26;;24271:9;24265:4;24261:20;24257:1;24246:9;24242:17;24235:47;24299:131;24425:4;24299:131;:::i;:::-;24291:139;;24018:419;;;:::o;24443:176::-;24583:28;24579:1;24571:6;24567:14;24560:52;24443:176;:::o;24625:366::-;24767:3;24788:67;24852:2;24847:3;24788:67;:::i;:::-;24781:74;;24864:93;24953:3;24864:93;:::i;:::-;24982:2;24977:3;24973:12;24966:19;;24625:366;;;:::o;24997:419::-;25163:4;25201:2;25190:9;25186:18;25178:26;;25250:9;25244:4;25240:20;25236:1;25225:9;25221:17;25214:47;25278:131;25404:4;25278:131;:::i;:::-;25270:139;;24997:419;;;:::o;25422:180::-;25562:32;25558:1;25550:6;25546:14;25539:56;25422:180;:::o;25608:366::-;25750:3;25771:67;25835:2;25830:3;25771:67;:::i;:::-;25764:74;;25847:93;25936:3;25847:93;:::i;:::-;25965:2;25960:3;25956:12;25949:19;;25608:366;;;:::o;25980:419::-;26146:4;26184:2;26173:9;26169:18;26161:26;;26233:9;26227:4;26223:20;26219:1;26208:9;26204:17;26197:47;26261:131;26387:4;26261:131;:::i;:::-;26253:139;;25980:419;;;:::o;26405:191::-;26445:4;26465:20;26483:1;26465:20;:::i;:::-;26460:25;;26499:20;26517:1;26499:20;:::i;:::-;26494:25;;26538:1;26535;26532:8;26529:34;;;26543:18;;:::i;:::-;26529:34;26588:1;26585;26581:9;26573:17;;26405:191;;;;:::o;26602:305::-;26642:3;26661:20;26679:1;26661:20;:::i;:::-;26656:25;;26695:20;26713:1;26695:20;:::i;:::-;26690:25;;26849:1;26781:66;26777:74;26774:1;26771:81;26768:107;;;26855:18;;:::i;:::-;26768:107;26899:1;26896;26892:9;26885:16;;26602:305;;;;:::o;26913:177::-;27053:29;27049:1;27041:6;27037:14;27030:53;26913:177;:::o;27096:366::-;27238:3;27259:67;27323:2;27318:3;27259:67;:::i;:::-;27252:74;;27335:93;27424:3;27335:93;:::i;:::-;27453:2;27448:3;27444:12;27437:19;;27096:366;;;:::o;27468:419::-;27634:4;27672:2;27661:9;27657:18;27649:26;;27721:9;27715:4;27711:20;27707:1;27696:9;27692:17;27685:47;27749:131;27875:4;27749:131;:::i;:::-;27741:139;;27468:419;;;:::o;27893:442::-;28042:4;28080:2;28069:9;28065:18;28057:26;;28093:71;28161:1;28150:9;28146:17;28137:6;28093:71;:::i;:::-;28174:72;28242:2;28231:9;28227:18;28218:6;28174:72;:::i;:::-;28256;28324:2;28313:9;28309:18;28300:6;28256:72;:::i;:::-;27893:442;;;;;;:::o;28341:180::-;28389:77;28386:1;28379:88;28486:4;28483:1;28476:15;28510:4;28507:1;28500:15;28527:180;28575:77;28572:1;28565:88;28672:4;28669:1;28662:15;28696:4;28693:1;28686:15;28713:143;28770:5;28801:6;28795:13;28786:22;;28817:33;28844:5;28817:33;:::i;:::-;28713:143;;;;:::o;28862:351::-;28932:6;28981:2;28969:9;28960:7;28956:23;28952:32;28949:119;;;28987:79;;:::i;:::-;28949:119;29107:1;29132:64;29188:7;29179:6;29168:9;29164:22;29132:64;:::i;:::-;29122:74;;29078:128;28862:351;;;;:::o;29219:85::-;29264:7;29293:5;29282:16;;29219:85;;;:::o;29310:158::-;29368:9;29401:61;29419:42;29428:32;29454:5;29428:32;:::i;:::-;29419:42;:::i;:::-;29401:61;:::i;:::-;29388:74;;29310:158;;;:::o;29474:147::-;29569:45;29608:5;29569:45;:::i;:::-;29564:3;29557:58;29474:147;;:::o;29627:114::-;29694:6;29728:5;29722:12;29712:22;;29627:114;;;:::o;29747:184::-;29846:11;29880:6;29875:3;29868:19;29920:4;29915:3;29911:14;29896:29;;29747:184;;;;:::o;29937:132::-;30004:4;30027:3;30019:11;;30057:4;30052:3;30048:14;30040:22;;29937:132;;;:::o;30075:108::-;30152:24;30170:5;30152:24;:::i;:::-;30147:3;30140:37;30075:108;;:::o;30189:179::-;30258:10;30279:46;30321:3;30313:6;30279:46;:::i;:::-;30357:4;30352:3;30348:14;30334:28;;30189:179;;;;:::o;30374:113::-;30444:4;30476;30471:3;30467:14;30459:22;;30374:113;;;:::o;30523:732::-;30642:3;30671:54;30719:5;30671:54;:::i;:::-;30741:86;30820:6;30815:3;30741:86;:::i;:::-;30734:93;;30851:56;30901:5;30851:56;:::i;:::-;30930:7;30961:1;30946:284;30971:6;30968:1;30965:13;30946:284;;;31047:6;31041:13;31074:63;31133:3;31118:13;31074:63;:::i;:::-;31067:70;;31160:60;31213:6;31160:60;:::i;:::-;31150:70;;31006:224;30993:1;30990;30986:9;30981:14;;30946:284;;;30950:14;31246:3;31239:10;;30647:608;;;30523:732;;;;:::o;31261:831::-;31524:4;31562:3;31551:9;31547:19;31539:27;;31576:71;31644:1;31633:9;31629:17;31620:6;31576:71;:::i;:::-;31657:80;31733:2;31722:9;31718:18;31709:6;31657:80;:::i;:::-;31784:9;31778:4;31774:20;31769:2;31758:9;31754:18;31747:48;31812:108;31915:4;31906:6;31812:108;:::i;:::-;31804:116;;31930:72;31998:2;31987:9;31983:18;31974:6;31930:72;:::i;:::-;32012:73;32080:3;32069:9;32065:19;32056:6;32012:73;:::i;:::-;31261:831;;;;;;;;:::o;32098:807::-;32347:4;32385:3;32374:9;32370:19;32362:27;;32399:71;32467:1;32456:9;32452:17;32443:6;32399:71;:::i;:::-;32480:72;32548:2;32537:9;32533:18;32524:6;32480:72;:::i;:::-;32562:80;32638:2;32627:9;32623:18;32614:6;32562:80;:::i;:::-;32652;32728:2;32717:9;32713:18;32704:6;32652:80;:::i;:::-;32742:73;32810:3;32799:9;32795:19;32786:6;32742:73;:::i;:::-;32825;32893:3;32882:9;32878:19;32869:6;32825:73;:::i;:::-;32098:807;;;;;;;;;:::o;32911:143::-;32968:5;32999:6;32993:13;32984:22;;33015:33;33042:5;33015:33;:::i;:::-;32911:143;;;;:::o;33060:663::-;33148:6;33156;33164;33213:2;33201:9;33192:7;33188:23;33184:32;33181:119;;;33219:79;;:::i;:::-;33181:119;33339:1;33364:64;33420:7;33411:6;33400:9;33396:22;33364:64;:::i;:::-;33354:74;;33310:128;33477:2;33503:64;33559:7;33550:6;33539:9;33535:22;33503:64;:::i;:::-;33493:74;;33448:129;33616:2;33642:64;33698:7;33689:6;33678:9;33674:22;33642:64;:::i;:::-;33632:74;;33587:129;33060:663;;;;;:::o

Swarm Source

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