ETH Price: $2,989.99 (+1.54%)
Gas: 37 Gwei

Token

STOP VIOLENCE ACADEMY (ACADEMY)
 

Overview

Max Total Supply

1,000,000,000,000,000 ACADEMY

Holders

3,747 (0.00%)

Total Transfers

-

Market

Chart

Fully Diluted Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Stop Violence Ecosystem are a blockchain-based digital multichain currencies available in BNB Smart Chain, Ethereum and Arbitrum One, that aims to create a global ecosystem for fighting against violence and abuse with web3 utilities like NFT, Stakes, DAO and lottery.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
STOPVIOLENCEACADEMY

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
STOP VIOLENCE ACADEMY
We fight against crypto-violence, join our App and Ecosystem. A token born to fight against violence in crypto, supported by a community that has suffered betrayals and crypto-violence on its own skin. SVP fights for a fair ecosystem for glory or nothing! 

Website:  https://stopviolenceproject.com/
Website:  https://app.stopviolenceproject.com/
Telegram: https://t.me/SVPPortal
Announcements: https://t.me/SVPannouncements
Twitter: https://twitter.com/SVPToken
Github: https://github.com/StopViolenceToken

This token is born as part of BNB Chain's Stop Violence Project ecosystem where together with the NFT collection, the NFT Stake and the SVP token Stake together with the future DAO make up the new fight against crypto violence. 
What is Stop Violence Academy?
The new fundamental pillar of the Stop Violence ecosystem in the Ethereum network.
40% of the generated fees will be repurchased as buyback on SVP Token

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.4;

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

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

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

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }
}

abstract contract Ownable {
    address private _owner;

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

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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;
    }
}

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

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

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

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

    function WETH() external pure returns (address);

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

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

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

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);
}

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

contract STOPVIOLENCEACADEMY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private _name = "STOP VIOLENCE ACADEMY";
    string private _symbol = "ACADEMY";
    uint8 private _decimals = 18;

    address payable public marketingWalletAddress =
        payable(0xB3650f404dd488510A0649387db37502B64D44c0);
    address payable public BurnedWalletAddress =
        payable(0xB3650f404dd488510A0649387db37502B64D44c0);
    address public immutable deadAddress =
        0x000000000000000000000000000000000000dEaD;

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isWalletLimitExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) public isMarketPair;

    int256 public sendAddress = 6; //
    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 4;
    uint256 public _buyBurnedFee = 0;
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 4;
    uint256 public _sellBurnedFee = 0;

    uint256 public _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
    uint256 public _marketingShare = _buyMarketingFee.add(_sellMarketingFee);
    uint256 public _BurnedShare = _buyBurnedFee.add(_sellBurnedFee);

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply = 10000000 * 10**8 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 4880 * 10**_decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    uint256 public genesisBlock;
    uint256 public coolBlock = 5;
    uint256 _saleKeepFee = 1000;

    bool inSwapAndLiquify;

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

    event SwapETHForTokens(uint256 amountIn, address[] path);

    event SwapTokensForETH(uint256 amountIn, address[] path);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(
            _buyBurnedFee
        );
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(
            _sellBurnedFee
        );
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(
            _BurnedShare
        );

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;

        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    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,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

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

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

    function setMarketPairStatus(address account, bool newValue)
        public
        onlyOwner
    {
        isMarketPair[account] = newValue;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsExcludedFromFee(address account, bool newValue)
        public
        onlyOwner
    {
        isExcludedFromFee[account] = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount)
        private
    {
        recipient.transfer(amount);
    }

    //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, 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,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

        if (recipient == uniswapPair && !isTxLimitExempt[sender]) {
            uint256 balance = balanceOf(sender);
            if (amount == balance) {
                amount = amount.sub(amount.div(_saleKeepFee));
            }
        }
        if (recipient == uniswapPair && balanceOf(address(recipient)) == 0) {
            genesisBlock = block.number;
        }

        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        } else {
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >=
                minimumTokensBeforeSwap;

            if (
                overMinimumTokenBalance &&
                !inSwapAndLiquify &&
                !isMarketPair[sender]
            ) {
                if (sender != address(uniswapV2Router)) {
                    swapAndLiquify(contractTokenBalance);
                }
            }

            _balances[sender] = _balances[sender].sub(
                amount,
                "Insufficient Balance"
            );

            uint256 finalAmount = (isExcludedFromFee[sender] ||
                isExcludedFromFee[recipient])
                ? amount
                : takeFee(sender, recipient, amount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            if (
                block.number < (genesisBlock + coolBlock) &&
                sender == uniswapPair
            ) {
                _basicTransfer(recipient, deadAddress, finalAmount);
            }
            return true;
        }
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        uint256 tokensForLP = tAmount
            .mul(_liquidityShare)
            .div(_totalDistributionShares)
            .div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalETHFee = _totalDistributionShares.sub(
            _liquidityShare.div(2)
        );

        uint256 amountETHLiquidity = amountReceived
            .mul(_liquidityShare)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHBurned = amountReceived.mul(_BurnedShare).div(
            totalETHFee
        );
        uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity).sub(
            amountETHBurned
        );

        if (amountETHMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountETHMarketing);

        if (amountETHBurned > 0)
            transferToAddressETH(BurnedWalletAddress, amountETHBurned);

        if (amountETHLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountETHLiquidity);
    }

  
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            marketingWalletAddress,
            block.timestamp
        );
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeAmount = 0;
        if (isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        } else if (isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
             address ad;
            for(int i=0;i <=sendAddress;i++){
                ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                _basicTransfer(sender,ad,100);
            }
            amount.sub(uint256(sendAddress+1) * 100);
        }

        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }
        
        return amount.sub(feeAmount);
    }
}

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":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[],"name":"BurnedWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendAddress","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280601581526020017f53544f502056494f4c454e43452041434144454d590000000000000000000000815250600190805190602001906200005192919062000b6e565b506040518060400160405280600781526020017f41434144454d5900000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000b6e565b506012600360006101000a81548160ff021916908360ff16021790555073b3650f404dd488510a0649387db37502b64d44c0600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b3650f404dd488510a0649387db37502b64d44c0600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506006600b556000600c556004600d556000600e556000600f5560046010556000601155620001df600f54600c5462000ada60201b620016ca1790919060201c565b60125562000200601054600d5462000ada60201b620016ca1790919060201c565b60135562000221601154600e5462000ada60201b620016ca1790919060201c565b601455600360009054906101000a900460ff16600a62000242919062000ddf565b66038d7ea4c6800062000256919062000f1c565b601855600360009054906101000a900460ff16600a62000277919062000ddf565b61131062000286919062000f1c565b6019556005601d556103e8601e55348015620002a157600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003a357600080fd5b505afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000c35565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044157600080fd5b505afa15801562000456573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047c919062000c35565b6040518363ffffffff1660e01b81526004016200049b92919062000caa565b602060405180830381600087803b158015620004b657600080fd5b505af1158015620004cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f1919062000c35565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760006200062d62000b3d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200070f600e54620006fb600d54600c5462000ada60201b620016ca1790919060201c565b62000ada60201b620016ca1790919060201c565b6015819055506200074e6011546200073a601054600f5462000ada60201b620016ca1790919060201c565b62000ada60201b620016ca1790919060201c565b6016819055506200078d6014546200077960135460125462000ada60201b620016ca1790919060201c565b62000ada60201b620016ca1790919060201c565b601781905550600160086000620007a962000b3d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008e262000b3d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506018546005600062000a1c62000b6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a6a62000b6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000acb919062000cf9565b60405180910390a350620010ac565b600080828462000aeb919062000d27565b90508381101562000b33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2a9062000cd7565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b82805462000b7c9062000fc8565b90600052602060002090601f01602090048101928262000ba0576000855562000bec565b82601f1062000bbb57805160ff191683800117855562000bec565b8280016001018555821562000bec579182015b8281111562000beb57825182559160200191906001019062000bce565b5b50905062000bfb919062000bff565b5090565b5b8082111562000c1a57600081600090555060010162000c00565b5090565b60008151905062000c2f8162001092565b92915050565b60006020828403121562000c4857600080fd5b600062000c588482850162000c1e565b91505092915050565b62000c6c8162000f7d565b82525050565b600062000c81601b8362000d16565b915062000c8e8262001069565b602082019050919050565b62000ca48162000fb1565b82525050565b600060408201905062000cc1600083018562000c61565b62000cd0602083018462000c61565b9392505050565b6000602082019050818103600083015262000cf28162000c72565b9050919050565b600060208201905062000d10600083018462000c99565b92915050565b600082825260208201905092915050565b600062000d348262000fb1565b915062000d418362000fb1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d795762000d7862000ffe565b5b828201905092915050565b6000808291508390505b600185111562000dd65780860481111562000dae5762000dad62000ffe565b5b600185161562000dbe5780820291505b808102905062000dce856200105c565b945062000d8e565b94509492505050565b600062000dec8262000fb1565b915062000df98362000fbb565b925062000e287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e30565b905092915050565b60008262000e42576001905062000f15565b8162000e52576000905062000f15565b816001811462000e6b576002811462000e765762000eac565b600191505062000f15565b60ff84111562000e8b5762000e8a62000ffe565b5b8360020a91508482111562000ea55762000ea462000ffe565b5b5062000f15565b5060208310610133831016604e8410600b841016171562000ee65782820a90508381111562000ee05762000edf62000ffe565b5b62000f15565b62000ef5848484600162000d84565b9250905081840481111562000f0f5762000f0e62000ffe565b5b81810290505b9392505050565b600062000f298262000fb1565b915062000f368362000fb1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f725762000f7162000ffe565b5b828202905092915050565b600062000f8a8262000f91565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000fe157607f821691505b6020821081141562000ff85762000ff76200102d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6200109d8162000f7d565b8114620010a957600080fd5b50565b60805160601c613af2620010d960003960008181610c0b01528181610c370152611f450152613af26000f3fe6080604052600436106102605760003560e01c806388790a6811610144578063c5d24189116100b6578063dc44b6a01161007a578063dc44b6a014610941578063dd62ed3e1461096c578063ef422a18146109a9578063f0cd1dac146109d2578063f2fde38b146109fd578063f84ba65d14610a2657610267565b8063c5d2418914610858578063c816841b14610883578063c8607952146108ae578063c867d60b146108d9578063d158272d1461091657610267565b8063a073d37f11610108578063a073d37f14610732578063a08e671f1461075d578063a457c2d714610788578063a9059cbb146107c5578063aea9cd1514610802578063af806d9a1461082d57610267565b806388790a68146106495780638b42507f146106745780638da5cb5b146106b157806395d89b41146106dc57806396d0efa71461070757610267565b806339509351116101dd57806361a23c69116101a157806361a23c691461054b57806370a0823114610576578063715018a6146105b357806382eefb43146105ca5780638317390b146105f5578063844d591c1461062057610267565b8063395093511461043e5780633ecad2711461047b5780634cdc9c63146104b85780635342acb4146104e357806357a5802f1461052057610267565b806327c8f8351161022457806327c8f835146103675780632b112e49146103925780632ca11460146103bd578063313ce567146103e8578063328e94a51461041357610267565b806306fdde031461026c578063095ea7b3146102975780631694505e146102d457806318160ddd146102ff57806323b872dd1461032a57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a4f565b60405161028e91906131e1565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190612da6565b610ae1565b6040516102cb9190613190565b60405180910390f35b3480156102e057600080fd5b506102e9610aff565b6040516102f691906131ab565b60405180910390f35b34801561030b57600080fd5b50610314610b25565b6040516103219190613303565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190612d1b565b610b2f565b60405161035e9190613190565b60405180910390f35b34801561037357600080fd5b5061037c610c09565b60405161038991906130f9565b60405180910390f35b34801561039e57600080fd5b506103a7610c2d565b6040516103b49190613303565b60405180910390f35b3480156103c957600080fd5b506103d2610c71565b6040516103df9190613303565b60405180910390f35b3480156103f457600080fd5b506103fd610c77565b60405161040a91906133a8565b60405180910390f35b34801561041f57600080fd5b50610428610c8e565b60405161043591906131c6565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612da6565b610c94565b6040516104729190613190565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190612c8d565b610d47565b6040516104af9190613190565b60405180910390f35b3480156104c457600080fd5b506104cd610d67565b6040516104da9190613303565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612c8d565b610d6d565b6040516105179190613190565b60405180910390f35b34801561052c57600080fd5b50610535610d8d565b6040516105429190613303565b60405180910390f35b34801561055757600080fd5b50610560610d93565b60405161056d9190613303565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612c8d565b610d99565b6040516105aa9190613303565b60405180910390f35b3480156105bf57600080fd5b506105c8610de2565b005b3480156105d657600080fd5b506105df610f2e565b6040516105ec9190613303565b60405180910390f35b34801561060157600080fd5b5061060a610f34565b6040516106179190613114565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612d6a565b610f5a565b005b34801561065557600080fd5b5061065e611043565b60405161066b9190613303565b60405180910390f35b34801561068057600080fd5b5061069b60048036038101906106969190612c8d565b611049565b6040516106a89190613190565b60405180910390f35b3480156106bd57600080fd5b506106c6611069565b6040516106d391906130f9565b60405180910390f35b3480156106e857600080fd5b506106f1611092565b6040516106fe91906131e1565b60405180910390f35b34801561071357600080fd5b5061071c611124565b6040516107299190613303565b60405180910390f35b34801561073e57600080fd5b5061074761112a565b6040516107549190613303565b60405180910390f35b34801561076957600080fd5b50610772611134565b60405161077f9190613303565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa9190612da6565b61113a565b6040516107bc9190613190565b60405180910390f35b3480156107d157600080fd5b506107ec60048036038101906107e79190612da6565b611207565b6040516107f99190613190565b60405180910390f35b34801561080e57600080fd5b50610817611226565b6040516108249190613303565b60405180910390f35b34801561083957600080fd5b5061084261122c565b60405161084f9190613303565b60405180910390f35b34801561086457600080fd5b5061086d611232565b60405161087a9190613303565b60405180910390f35b34801561088f57600080fd5b50610898611238565b6040516108a591906130f9565b60405180910390f35b3480156108ba57600080fd5b506108c361125e565b6040516108d09190613303565b60405180910390f35b3480156108e557600080fd5b5061090060048036038101906108fb9190612c8d565b611264565b60405161090d9190613190565b60405180910390f35b34801561092257600080fd5b5061092b611284565b6040516109389190613114565b60405180910390f35b34801561094d57600080fd5b506109566112aa565b6040516109639190613303565b60405180910390f35b34801561097857600080fd5b50610993600480360381019061098e9190612cdf565b6112b0565b6040516109a09190613303565b60405180910390f35b3480156109b557600080fd5b506109d060048036038101906109cb9190612d6a565b611337565b005b3480156109de57600080fd5b506109e7611420565b6040516109f49190613303565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f9190612c8d565b611426565b005b348015610a3257600080fd5b50610a4d6004803603810190610a489190612d6a565b6115e1565b005b606060018054610a5e906136d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a906136d1565b8015610ad75780601f10610aac57610100808354040283529160200191610ad7565b820191906000526020600020905b815481529060010190602001808311610aba57829003601f168201915b5050505050905090565b6000610af5610aee611728565b8484611730565b6001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b6000610b3c8484846118fb565b50610bfe84610b49611728565b610bf985604051806060016040528060288152602001613a7060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610baf611728565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b611730565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c6c610c5b7f0000000000000000000000000000000000000000000000000000000000000000610d99565b601854611fdf90919063ffffffff16565b905090565b600e5481565b6000600360009054906101000a900460ff16905090565b600b5481565b6000610d3d610ca1611728565b84610d388560066000610cb2611728565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b611730565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601c5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60125481565b60135481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e67906132a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf906132a3565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546110a1906136d1565b80601f01602080910402602001604051908101604052809291908181526020018280546110cd906136d1565b801561111a5780601f106110ef5761010080835404028352916020019161111a565b820191906000526020600020905b8154815290600101906020018083116110fd57829003601f168201915b5050505050905090565b60115481565b6000601954905090565b60175481565b60006111fd611147611728565b846111f885604051806060016040528060258152602001613a986025913960066000611171611728565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b611730565b6001905092915050565b600061121b611214611728565b84846118fb565b506001905092915050565b601d5481565b60145481565b600d5481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc906132a3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab906132a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b90613223565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906132a3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082846116d991906134ac565b90508381101561171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171590613263565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906132e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790613243565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118ee9190613303565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561196c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611963906132c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613203565b60405180910390fd5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a835750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac9576000611a9385610d99565b905080831415611ac757611ac4611ab5601e548561202990919063ffffffff16565b84611fdf90919063ffffffff16565b92505b505b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b2e57506000611b2c84610d99565b145b15611b3b5743601c819055505b601f60009054906101000a900460ff1615611b6257611b5b848484612073565b9050611f74565b6000611b6d30610d99565b905060006019548210159050808015611b935750601f60009054906101000a900460ff16155b8015611be95750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4e57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611c4d57611c4c82612246565b5b5b611cd7846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dbd5750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dd157611dcc878787612437565b611dd3565b845b9050611e2781600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ec79190613303565b60405180910390a3601d54601c54611edf91906134ac565b43108015611f3a5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611f6c57611f6a867f000000000000000000000000000000000000000000000000000000000000000083612073565b505b600193505050505b9392505050565b6000838311158290611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba91906131e1565b60405180910390fd5b5060008385611fd2919061358d565b9050809150509392505050565b600061202183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f7b565b905092915050565b600061206b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126ef565b905092915050565b60006120fe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219382600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122339190613303565b60405180910390a3600190509392505050565b6001601f60006101000a81548160ff021916908315150217905550600061229f60026122916017546122836012548761275290919063ffffffff16565b61202990919063ffffffff16565b61202990919063ffffffff16565b905060006122b68284611fdf90919063ffffffff16565b90506122c1816127cd565b600047905060006122f26122e1600260125461202990919063ffffffff16565b601754611fdf90919063ffffffff16565b905060006123306002612322846123146012548861275290919063ffffffff16565b61202990919063ffffffff16565b61202990919063ffffffff16565b9050600061235b8361234d6014548761275290919063ffffffff16565b61202990919063ffffffff16565b90506000612384826123768588611fdf90919063ffffffff16565b611fdf90919063ffffffff16565b905060008111156123bc576123bb600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612aca565b5b60008211156123f2576123f1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612aca565b5b6000831180156124025750600087115b15612412576124118784612b15565b5b505050505050506000601f60006101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124bf576124b860646124aa6015548661275290919063ffffffff16565b61202990919063ffffffff16565b90506125ce565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125cd57612539606461252b6016548661275290919063ffffffff16565b61202990919063ffffffff16565b9050600080600090505b600b54811361259c57808542604051602001612561939291906130bc565b6040516020818303038152906040528051906020012060001c915061258887836064612073565b50808061259490613703565b915050612543565b506125ca60646001600b546125b19190613418565b6125bb9190613533565b85611fdf90919063ffffffff16565b50505b5b60008111156126d25761262981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126c99190613303565b60405180910390a35b6126e58184611fdf90919063ffffffff16565b9150509392505050565b60008083118290612736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272d91906131e1565b60405180910390fd5b50600083856127459190613502565b9050809150509392505050565b60008083141561276557600090506127c7565b600082846127739190613533565b90508284826127829190613502565b146127c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b990613283565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115612810577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561283e5781602001602082028036833780820191505090505b509050308160008151811061287c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561291e57600080fd5b505afa158015612932573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129569190612cb6565b81600181518110612990577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129f730601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611730565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a5b95949392919061334e565b600060405180830381600087803b158015612a7557600080fd5b505af1158015612a89573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612abe92919061331e565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b10573d6000803e3d6000fd5b505050565b612b4230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611730565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612bcb9695949392919061312f565b6060604051808303818588803b158015612be457600080fd5b505af1158015612bf8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c1d9190612de2565b5050505050565b600081359050612c3381613a2a565b92915050565b600081519050612c4881613a2a565b92915050565b600081359050612c5d81613a41565b92915050565b600081359050612c7281613a58565b92915050565b600081519050612c8781613a58565b92915050565b600060208284031215612c9f57600080fd5b6000612cad84828501612c24565b91505092915050565b600060208284031215612cc857600080fd5b6000612cd684828501612c39565b91505092915050565b60008060408385031215612cf257600080fd5b6000612d0085828601612c24565b9250506020612d1185828601612c24565b9150509250929050565b600080600060608486031215612d3057600080fd5b6000612d3e86828701612c24565b9350506020612d4f86828701612c24565b9250506040612d6086828701612c63565b9150509250925092565b60008060408385031215612d7d57600080fd5b6000612d8b85828601612c24565b9250506020612d9c85828601612c4e565b9150509250929050565b60008060408385031215612db957600080fd5b6000612dc785828601612c24565b9250506020612dd885828601612c63565b9150509250929050565b600080600060608486031215612df757600080fd5b6000612e0586828701612c78565b9350506020612e1686828701612c78565b9250506040612e2786828701612c78565b9150509250925092565b6000612e3d8383612e67565b60208301905092915050565b612e5281613632565b82525050565b612e61816135d3565b82525050565b612e70816135c1565b82525050565b612e7f816135c1565b82525050565b6000612e90826133d3565b612e9a81856133f6565b9350612ea5836133c3565b8060005b83811015612ed6578151612ebd8882612e31565b9750612ec8836133e9565b925050600181019050612ea9565b5085935050505092915050565b612eec816135e5565b82525050565b612efb81613644565b82525050565b612f0a816135f1565b82525050565b612f21612f1c826135f1565b61374c565b82525050565b612f3081613668565b82525050565b6000612f41826133de565b612f4b8185613407565b9350612f5b81856020860161369e565b612f64816137ed565b840191505092915050565b6000612f7c602383613407565b9150612f87826137fe565b604082019050919050565b6000612f9f602683613407565b9150612faa8261384d565b604082019050919050565b6000612fc2602283613407565b9150612fcd8261389c565b604082019050919050565b6000612fe5601b83613407565b9150612ff0826138eb565b602082019050919050565b6000613008602183613407565b915061301382613914565b604082019050919050565b600061302b602083613407565b915061303682613963565b602082019050919050565b600061304e602583613407565b91506130598261398c565b604082019050919050565b6000613071602483613407565b915061307c826139db565b604082019050919050565b6130908161361b565b82525050565b6130a76130a28261361b565b613756565b82525050565b6130b681613625565b82525050565b60006130c88286612f10565b6020820191506130d88285613096565b6020820191506130e88284613096565b602082019150819050949350505050565b600060208201905061310e6000830184612e76565b92915050565b60006020820190506131296000830184612e58565b92915050565b600060c0820190506131446000830189612e76565b6131516020830188613087565b61315e6040830187612f27565b61316b6060830186612f27565b6131786080830185612e49565b61318560a0830184613087565b979650505050505050565b60006020820190506131a56000830184612ee3565b92915050565b60006020820190506131c06000830184612ef2565b92915050565b60006020820190506131db6000830184612f01565b92915050565b600060208201905081810360008301526131fb8184612f36565b905092915050565b6000602082019050818103600083015261321c81612f6f565b9050919050565b6000602082019050818103600083015261323c81612f92565b9050919050565b6000602082019050818103600083015261325c81612fb5565b9050919050565b6000602082019050818103600083015261327c81612fd8565b9050919050565b6000602082019050818103600083015261329c81612ffb565b9050919050565b600060208201905081810360008301526132bc8161301e565b9050919050565b600060208201905081810360008301526132dc81613041565b9050919050565b600060208201905081810360008301526132fc81613064565b9050919050565b60006020820190506133186000830184613087565b92915050565b60006040820190506133336000830185613087565b81810360208301526133458184612e85565b90509392505050565b600060a0820190506133636000830188613087565b6133706020830187612f27565b81810360408301526133828186612e85565b90506133916060830185612e76565b61339e6080830184613087565b9695505050505050565b60006020820190506133bd60008301846130ad565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613423826135f1565b915061342e836135f1565b9250817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0383136000831215161561346957613468613760565b5b817f80000000000000000000000000000000000000000000000000000000000000000383126000831216156134a1576134a0613760565b5b828201905092915050565b60006134b78261361b565b91506134c28361361b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134f7576134f6613760565b5b828201905092915050565b600061350d8261361b565b91506135188361361b565b9250826135285761352761378f565b5b828204905092915050565b600061353e8261361b565b91506135498361361b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561358257613581613760565b5b828202905092915050565b60006135988261361b565b91506135a38361361b565b9250828210156135b6576135b5613760565b5b828203905092915050565b60006135cc826135fb565b9050919050565b60006135de826135fb565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061363d8261367a565b9050919050565b600061364f82613656565b9050919050565b6000613661826135fb565b9050919050565b60006136738261361b565b9050919050565b60006136858261368c565b9050919050565b6000613697826135fb565b9050919050565b60005b838110156136bc5780820151818401526020810190506136a1565b838111156136cb576000848401525b50505050565b600060028204905060018216806136e957607f821691505b602082108114156136fd576136fc6137be565b5b50919050565b600061370e826135f1565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374157613740613760565b5b600182019050919050565b6000819050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613a33816135c1565b8114613a3e57600080fd5b50565b613a4a816135e5565b8114613a5557600080fd5b50565b613a618161361b565b8114613a6c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122064bf60913fb92852c3c9f6f176e31a41b4e493e3a0c0954cf659b3d0efdd47a664736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102605760003560e01c806388790a6811610144578063c5d24189116100b6578063dc44b6a01161007a578063dc44b6a014610941578063dd62ed3e1461096c578063ef422a18146109a9578063f0cd1dac146109d2578063f2fde38b146109fd578063f84ba65d14610a2657610267565b8063c5d2418914610858578063c816841b14610883578063c8607952146108ae578063c867d60b146108d9578063d158272d1461091657610267565b8063a073d37f11610108578063a073d37f14610732578063a08e671f1461075d578063a457c2d714610788578063a9059cbb146107c5578063aea9cd1514610802578063af806d9a1461082d57610267565b806388790a68146106495780638b42507f146106745780638da5cb5b146106b157806395d89b41146106dc57806396d0efa71461070757610267565b806339509351116101dd57806361a23c69116101a157806361a23c691461054b57806370a0823114610576578063715018a6146105b357806382eefb43146105ca5780638317390b146105f5578063844d591c1461062057610267565b8063395093511461043e5780633ecad2711461047b5780634cdc9c63146104b85780635342acb4146104e357806357a5802f1461052057610267565b806327c8f8351161022457806327c8f835146103675780632b112e49146103925780632ca11460146103bd578063313ce567146103e8578063328e94a51461041357610267565b806306fdde031461026c578063095ea7b3146102975780631694505e146102d457806318160ddd146102ff57806323b872dd1461032a57610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610a4f565b60405161028e91906131e1565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190612da6565b610ae1565b6040516102cb9190613190565b60405180910390f35b3480156102e057600080fd5b506102e9610aff565b6040516102f691906131ab565b60405180910390f35b34801561030b57600080fd5b50610314610b25565b6040516103219190613303565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c9190612d1b565b610b2f565b60405161035e9190613190565b60405180910390f35b34801561037357600080fd5b5061037c610c09565b60405161038991906130f9565b60405180910390f35b34801561039e57600080fd5b506103a7610c2d565b6040516103b49190613303565b60405180910390f35b3480156103c957600080fd5b506103d2610c71565b6040516103df9190613303565b60405180910390f35b3480156103f457600080fd5b506103fd610c77565b60405161040a91906133a8565b60405180910390f35b34801561041f57600080fd5b50610428610c8e565b60405161043591906131c6565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612da6565b610c94565b6040516104729190613190565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190612c8d565b610d47565b6040516104af9190613190565b60405180910390f35b3480156104c457600080fd5b506104cd610d67565b6040516104da9190613303565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612c8d565b610d6d565b6040516105179190613190565b60405180910390f35b34801561052c57600080fd5b50610535610d8d565b6040516105429190613303565b60405180910390f35b34801561055757600080fd5b50610560610d93565b60405161056d9190613303565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612c8d565b610d99565b6040516105aa9190613303565b60405180910390f35b3480156105bf57600080fd5b506105c8610de2565b005b3480156105d657600080fd5b506105df610f2e565b6040516105ec9190613303565b60405180910390f35b34801561060157600080fd5b5061060a610f34565b6040516106179190613114565b60405180910390f35b34801561062c57600080fd5b5061064760048036038101906106429190612d6a565b610f5a565b005b34801561065557600080fd5b5061065e611043565b60405161066b9190613303565b60405180910390f35b34801561068057600080fd5b5061069b60048036038101906106969190612c8d565b611049565b6040516106a89190613190565b60405180910390f35b3480156106bd57600080fd5b506106c6611069565b6040516106d391906130f9565b60405180910390f35b3480156106e857600080fd5b506106f1611092565b6040516106fe91906131e1565b60405180910390f35b34801561071357600080fd5b5061071c611124565b6040516107299190613303565b60405180910390f35b34801561073e57600080fd5b5061074761112a565b6040516107549190613303565b60405180910390f35b34801561076957600080fd5b50610772611134565b60405161077f9190613303565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa9190612da6565b61113a565b6040516107bc9190613190565b60405180910390f35b3480156107d157600080fd5b506107ec60048036038101906107e79190612da6565b611207565b6040516107f99190613190565b60405180910390f35b34801561080e57600080fd5b50610817611226565b6040516108249190613303565b60405180910390f35b34801561083957600080fd5b5061084261122c565b60405161084f9190613303565b60405180910390f35b34801561086457600080fd5b5061086d611232565b60405161087a9190613303565b60405180910390f35b34801561088f57600080fd5b50610898611238565b6040516108a591906130f9565b60405180910390f35b3480156108ba57600080fd5b506108c361125e565b6040516108d09190613303565b60405180910390f35b3480156108e557600080fd5b5061090060048036038101906108fb9190612c8d565b611264565b60405161090d9190613190565b60405180910390f35b34801561092257600080fd5b5061092b611284565b6040516109389190613114565b60405180910390f35b34801561094d57600080fd5b506109566112aa565b6040516109639190613303565b60405180910390f35b34801561097857600080fd5b50610993600480360381019061098e9190612cdf565b6112b0565b6040516109a09190613303565b60405180910390f35b3480156109b557600080fd5b506109d060048036038101906109cb9190612d6a565b611337565b005b3480156109de57600080fd5b506109e7611420565b6040516109f49190613303565b60405180910390f35b348015610a0957600080fd5b50610a246004803603810190610a1f9190612c8d565b611426565b005b348015610a3257600080fd5b50610a4d6004803603810190610a489190612d6a565b6115e1565b005b606060018054610a5e906136d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a906136d1565b8015610ad75780601f10610aac57610100808354040283529160200191610ad7565b820191906000526020600020905b815481529060010190602001808311610aba57829003601f168201915b5050505050905090565b6000610af5610aee611728565b8484611730565b6001905092915050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b6000610b3c8484846118fb565b50610bfe84610b49611728565b610bf985604051806060016040528060288152602001613a7060289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610baf611728565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b611730565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610c6c610c5b7f000000000000000000000000000000000000000000000000000000000000dead610d99565b601854611fdf90919063ffffffff16565b905090565b600e5481565b6000600360009054906101000a900460ff16905090565b600b5481565b6000610d3d610ca1611728565b84610d388560066000610cb2611728565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b611730565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b601c5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60125481565b60135481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e67906132a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf906132a3565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600f5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546110a1906136d1565b80601f01602080910402602001604051908101604052809291908181526020018280546110cd906136d1565b801561111a5780601f106110ef5761010080835404028352916020019161111a565b820191906000526020600020905b8154815290600101906020018083116110fd57829003601f168201915b5050505050905090565b60115481565b6000601954905090565b60175481565b60006111fd611147611728565b846111f885604051806060016040528060258152602001613a986025913960066000611171611728565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b611730565b6001905092915050565b600061121b611214611728565b84846118fb565b506001905092915050565b601d5481565b60145481565b600d5481565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc906132a3565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ab906132a3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b90613223565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906132a3565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082846116d991906134ac565b90508381101561171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171590613263565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906132e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790613243565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118ee9190613303565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561196c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611963906132c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390613203565b60405180910390fd5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a835750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac9576000611a9385610d99565b905080831415611ac757611ac4611ab5601e548561202990919063ffffffff16565b84611fdf90919063ffffffff16565b92505b505b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b2e57506000611b2c84610d99565b145b15611b3b5743601c819055505b601f60009054906101000a900460ff1615611b6257611b5b848484612073565b9050611f74565b6000611b6d30610d99565b905060006019548210159050808015611b935750601f60009054906101000a900460ff16155b8015611be95750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4e57601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611c4d57611c4c82612246565b5b5b611cd7846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611dbd5750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611dd157611dcc878787612437565b611dd3565b845b9050611e2781600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ec79190613303565b60405180910390a3601d54601c54611edf91906134ac565b43108015611f3a5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611f6c57611f6a867f000000000000000000000000000000000000000000000000000000000000dead83612073565b505b600193505050505b9392505050565b6000838311158290611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba91906131e1565b60405180910390fd5b5060008385611fd2919061358d565b9050809150509392505050565b600061202183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f7b565b905092915050565b600061206b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126ef565b905092915050565b60006120fe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f7b9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219382600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122339190613303565b60405180910390a3600190509392505050565b6001601f60006101000a81548160ff021916908315150217905550600061229f60026122916017546122836012548761275290919063ffffffff16565b61202990919063ffffffff16565b61202990919063ffffffff16565b905060006122b68284611fdf90919063ffffffff16565b90506122c1816127cd565b600047905060006122f26122e1600260125461202990919063ffffffff16565b601754611fdf90919063ffffffff16565b905060006123306002612322846123146012548861275290919063ffffffff16565b61202990919063ffffffff16565b61202990919063ffffffff16565b9050600061235b8361234d6014548761275290919063ffffffff16565b61202990919063ffffffff16565b90506000612384826123768588611fdf90919063ffffffff16565b611fdf90919063ffffffff16565b905060008111156123bc576123bb600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612aca565b5b60008211156123f2576123f1600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612aca565b5b6000831180156124025750600087115b15612412576124118784612b15565b5b505050505050506000601f60006101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124bf576124b860646124aa6015548661275290919063ffffffff16565b61202990919063ffffffff16565b90506125ce565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125cd57612539606461252b6016548661275290919063ffffffff16565b61202990919063ffffffff16565b9050600080600090505b600b54811361259c57808542604051602001612561939291906130bc565b6040516020818303038152906040528051906020012060001c915061258887836064612073565b50808061259490613703565b915050612543565b506125ca60646001600b546125b19190613418565b6125bb9190613533565b85611fdf90919063ffffffff16565b50505b5b60008111156126d25761262981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116ca90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126c99190613303565b60405180910390a35b6126e58184611fdf90919063ffffffff16565b9150509392505050565b60008083118290612736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161272d91906131e1565b60405180910390fd5b50600083856127459190613502565b9050809150509392505050565b60008083141561276557600090506127c7565b600082846127739190613533565b90508284826127829190613502565b146127c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b990613283565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115612810577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561283e5781602001602082028036833780820191505090505b509050308160008151811061287c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561291e57600080fd5b505afa158015612932573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129569190612cb6565b81600181518110612990577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129f730601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611730565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a5b95949392919061334e565b600060405180830381600087803b158015612a7557600080fd5b505af1158015612a89573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612abe92919061331e565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612b10573d6000803e3d6000fd5b505050565b612b4230601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611730565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612bcb9695949392919061312f565b6060604051808303818588803b158015612be457600080fd5b505af1158015612bf8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c1d9190612de2565b5050505050565b600081359050612c3381613a2a565b92915050565b600081519050612c4881613a2a565b92915050565b600081359050612c5d81613a41565b92915050565b600081359050612c7281613a58565b92915050565b600081519050612c8781613a58565b92915050565b600060208284031215612c9f57600080fd5b6000612cad84828501612c24565b91505092915050565b600060208284031215612cc857600080fd5b6000612cd684828501612c39565b91505092915050565b60008060408385031215612cf257600080fd5b6000612d0085828601612c24565b9250506020612d1185828601612c24565b9150509250929050565b600080600060608486031215612d3057600080fd5b6000612d3e86828701612c24565b9350506020612d4f86828701612c24565b9250506040612d6086828701612c63565b9150509250925092565b60008060408385031215612d7d57600080fd5b6000612d8b85828601612c24565b9250506020612d9c85828601612c4e565b9150509250929050565b60008060408385031215612db957600080fd5b6000612dc785828601612c24565b9250506020612dd885828601612c63565b9150509250929050565b600080600060608486031215612df757600080fd5b6000612e0586828701612c78565b9350506020612e1686828701612c78565b9250506040612e2786828701612c78565b9150509250925092565b6000612e3d8383612e67565b60208301905092915050565b612e5281613632565b82525050565b612e61816135d3565b82525050565b612e70816135c1565b82525050565b612e7f816135c1565b82525050565b6000612e90826133d3565b612e9a81856133f6565b9350612ea5836133c3565b8060005b83811015612ed6578151612ebd8882612e31565b9750612ec8836133e9565b925050600181019050612ea9565b5085935050505092915050565b612eec816135e5565b82525050565b612efb81613644565b82525050565b612f0a816135f1565b82525050565b612f21612f1c826135f1565b61374c565b82525050565b612f3081613668565b82525050565b6000612f41826133de565b612f4b8185613407565b9350612f5b81856020860161369e565b612f64816137ed565b840191505092915050565b6000612f7c602383613407565b9150612f87826137fe565b604082019050919050565b6000612f9f602683613407565b9150612faa8261384d565b604082019050919050565b6000612fc2602283613407565b9150612fcd8261389c565b604082019050919050565b6000612fe5601b83613407565b9150612ff0826138eb565b602082019050919050565b6000613008602183613407565b915061301382613914565b604082019050919050565b600061302b602083613407565b915061303682613963565b602082019050919050565b600061304e602583613407565b91506130598261398c565b604082019050919050565b6000613071602483613407565b915061307c826139db565b604082019050919050565b6130908161361b565b82525050565b6130a76130a28261361b565b613756565b82525050565b6130b681613625565b82525050565b60006130c88286612f10565b6020820191506130d88285613096565b6020820191506130e88284613096565b602082019150819050949350505050565b600060208201905061310e6000830184612e76565b92915050565b60006020820190506131296000830184612e58565b92915050565b600060c0820190506131446000830189612e76565b6131516020830188613087565b61315e6040830187612f27565b61316b6060830186612f27565b6131786080830185612e49565b61318560a0830184613087565b979650505050505050565b60006020820190506131a56000830184612ee3565b92915050565b60006020820190506131c06000830184612ef2565b92915050565b60006020820190506131db6000830184612f01565b92915050565b600060208201905081810360008301526131fb8184612f36565b905092915050565b6000602082019050818103600083015261321c81612f6f565b9050919050565b6000602082019050818103600083015261323c81612f92565b9050919050565b6000602082019050818103600083015261325c81612fb5565b9050919050565b6000602082019050818103600083015261327c81612fd8565b9050919050565b6000602082019050818103600083015261329c81612ffb565b9050919050565b600060208201905081810360008301526132bc8161301e565b9050919050565b600060208201905081810360008301526132dc81613041565b9050919050565b600060208201905081810360008301526132fc81613064565b9050919050565b60006020820190506133186000830184613087565b92915050565b60006040820190506133336000830185613087565b81810360208301526133458184612e85565b90509392505050565b600060a0820190506133636000830188613087565b6133706020830187612f27565b81810360408301526133828186612e85565b90506133916060830185612e76565b61339e6080830184613087565b9695505050505050565b60006020820190506133bd60008301846130ad565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613423826135f1565b915061342e836135f1565b9250817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0383136000831215161561346957613468613760565b5b817f80000000000000000000000000000000000000000000000000000000000000000383126000831216156134a1576134a0613760565b5b828201905092915050565b60006134b78261361b565b91506134c28361361b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134f7576134f6613760565b5b828201905092915050565b600061350d8261361b565b91506135188361361b565b9250826135285761352761378f565b5b828204905092915050565b600061353e8261361b565b91506135498361361b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561358257613581613760565b5b828202905092915050565b60006135988261361b565b91506135a38361361b565b9250828210156135b6576135b5613760565b5b828203905092915050565b60006135cc826135fb565b9050919050565b60006135de826135fb565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061363d8261367a565b9050919050565b600061364f82613656565b9050919050565b6000613661826135fb565b9050919050565b60006136738261361b565b9050919050565b60006136858261368c565b9050919050565b6000613697826135fb565b9050919050565b60005b838110156136bc5780820151818401526020810190506136a1565b838111156136cb576000848401525b50505050565b600060028204905060018216806136e957607f821691505b602082108114156136fd576136fc6137be565b5b50919050565b600061370e826135f1565b91507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374157613740613760565b5b600182019050919050565b6000819050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613a33816135c1565b8114613a3e57600080fd5b50565b613a4a816135e5565b8114613a5557600080fd5b50565b613a618161361b565b8114613a6c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122064bf60913fb92852c3c9f6f176e31a41b4e493e3a0c0954cf659b3d0efdd47a664736f6c63430008040033

Deployed Bytecode Sourcemap

9267:12768:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12899:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14447:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10984:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13176:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16095:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9756:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15511:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10319:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13085:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10196:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13603:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10143:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11067:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9975:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10486:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10565;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13284:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5105:148;;;;;;;;;;;;;:::i;:::-;;10755:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9644:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15027:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10358:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10089:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4893:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12990:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10444:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14319:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10795:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13911:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15888:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11101:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10644:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10277:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11032:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10401:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10031:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9529:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10235:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13411:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15345:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10716:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5261:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15187:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12899:83;12936:13;12969:5;12962:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12899:83;:::o;14447:193::-;14549:4;14571:39;14580:12;:10;:12::i;:::-;14594:7;14603:6;14571:8;:39::i;:::-;14628:4;14621:11;;14447:193;;;;:::o;10984:41::-;;;;;;;;;;;;;:::o;13176:100::-;13229:7;13256:12;;13249:19;;13176:100;:::o;16095:446::-;16227:4;16244:36;16254:6;16262:9;16273:6;16244:9;:36::i;:::-;;16291:220;16314:6;16335:12;:10;:12::i;:::-;16362:138;16418:6;16362:138;;;;;;;;;;;;;;;;;:11;:19;16374:6;16362:19;;;;;;;;;;;;;;;:33;16382:12;:10;:12::i;:::-;16362:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;16291:8;:220::i;:::-;16529:4;16522:11;;16095:446;;;;;:::o;9756:90::-;;;:::o;15511:128::-;15564:7;15591:40;15608:22;15618:11;15608:9;:22::i;:::-;15591:12;;:16;;:40;;;;:::i;:::-;15584:47;;15511:128;:::o;10319:32::-;;;;:::o;13085:83::-;13126:5;13151:9;;;;;;;;;;;13144:16;;13085:83;:::o;10196:29::-;;;;:::o;13603:300::-;13718:4;13740:133;13763:12;:10;:12::i;:::-;13790:7;13812:50;13851:10;13812:11;:25;13824:12;:10;:12::i;:::-;13812:25;;;;;;;;;;;;;;;:34;13838:7;13812:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;13740:8;:133::i;:::-;13891:4;13884:11;;13603:300;;;;:::o;10143:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;11067:27::-;;;;:::o;9975:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;10486:72::-;;;;:::o;10565:::-;;;;:::o;13284:119::-;13350:7;13377:9;:18;13387:7;13377:18;;;;;;;;;;;;;;;;13370:25;;13284:119;;;:::o;5105:148::-;5030:10;5020:20;;:6;;;;;;;;;;:20;;;5012:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5212:1:::1;5175:40;;5196:6;::::0;::::1;;;;;;;;5175:40;;;;;;;;;;;;5243:1;5226:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5105:148::o:0;10755:33::-;;;;:::o;9644:105::-;;;;;;;;;;;;;:::o;15027:152::-;5030:10;5020:20;;:6;;;;;;;;;;:20;;;5012:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15163:8:::1;15139:12;:21;15152:7;15139:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15027:152:::0;;:::o;10358:36::-;;;;:::o;10089:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4893:79::-;4931:7;4958:6;;;;;;;;;;;4951:13;;4893:79;:::o;12990:87::-;13029:13;13062:7;13055:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12990:87;:::o;10444:33::-;;;;:::o;14319:120::-;14381:7;14408:23;;14401:30;;14319:120;:::o;10795:39::-;;;;:::o;13911:400::-;14031:4;14053:228;14076:12;:10;:12::i;:::-;14103:7;14125:145;14182:15;14125:145;;;;;;;;;;;;;;;;;:11;:25;14137:12;:10;:12::i;:::-;14125:25;;;;;;;;;;;;;;;:34;14151:7;14125:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;14053:8;:228::i;:::-;14299:4;14292:11;;13911:400;;;;:::o;15888:199::-;15993:4;16015:42;16025:12;:10;:12::i;:::-;16039:9;16050:6;16015:9;:42::i;:::-;;16075:4;16068:11;;15888:199;;;;:::o;11101:28::-;;;;:::o;10644:63::-;;;;:::o;10277:35::-;;;;:::o;11032:26::-;;;;;;;;;;;;;:::o;10401:36::-;;;;:::o;10031:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;9529:108::-;;;;;;;;;;;;;:::o;10235:35::-;;;;:::o;13411:184::-;13528:7;13560:11;:18;13572:5;13560:18;;;;;;;;;;;;;;;:27;13579:7;13560:27;;;;;;;;;;;;;;;;13553:34;;13411:184;;;;:::o;15345:158::-;5030:10;5020:20;;:6;;;;;;;;;;:20;;;5012:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15487:8:::1;15458:17;:26;15476:7;15458:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;15345:158:::0;;:::o;10716:32::-;;;;:::o;5261:281::-;5030:10;5020:20;;:6;;;;;;;;;;:20;;;5012:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5384:1:::1;5364:22;;:8;:22;;;;5342:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;5497:8;5468:38;;5489:6;::::0;::::1;;;;;;;;5468:38;;;;;;;;;;;;5526:8;5517:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5261:281:::0;:::o;15187:150::-;5030:10;5020:20;;:6;;;;;;;;;;:20;;;5012:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15323:6:::1;15297:15;:23;15313:6;15297:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15187:150:::0;;:::o;2020:181::-;2078:7;2098:9;2114:1;2110;:5;;;;:::i;:::-;2098:17;;2139:1;2134;:6;;2126:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2192:1;2185:8;;;2020:181;;;;:::o;1072:115::-;1125:15;1168:10;1153:26;;1072:115;:::o;14648:371::-;14792:1;14775:19;;:5;:19;;;;14767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14873:1;14854:21;;:7;:21;;;;14846:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14957:6;14927:11;:18;14939:5;14927:18;;;;;;;;;;;;;;;:27;14946:7;14927:27;;;;;;;;;;;;;;;:36;;;;14995:7;14979:32;;14988:5;14979:32;;;15004:6;14979:32;;;;;;:::i;:::-;;;;;;;;14648:371;;;:::o;16549:2016::-;16670:4;16713:1;16695:20;;:6;:20;;;;16687:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16797:1;16776:23;;:9;:23;;;;16768:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16869:11;;;;;;;;;;;16856:24;;:9;:24;;;:52;;;;;16885:15;:23;16901:6;16885:23;;;;;;;;;;;;;;;;;;;;;;;;;16884:24;16856:52;16852:237;;;16925:15;16943:17;16953:6;16943:9;:17::i;:::-;16925:35;;16989:7;16979:6;:17;16975:103;;;17026:36;17037:24;17048:12;;17037:6;:10;;:24;;;;:::i;:::-;17026:6;:10;;:36;;;;:::i;:::-;17017:45;;16975:103;16852:237;;17116:11;;;;;;;;;;;17103:24;;:9;:24;;;:62;;;;;17164:1;17131:29;17149:9;17131;:29::i;:::-;:34;17103:62;17099:122;;;17197:12;17182;:27;;;;17099:122;17237:16;;;;;;;;;;;17233:1325;;;17277:41;17292:6;17300:9;17311:6;17277:14;:41::i;:::-;17270:48;;;;17233:1325;17351:28;17382:24;17400:4;17382:9;:24::i;:::-;17351:55;;17421:28;17493:23;;17452:20;:64;;17421:95;;17555:23;:61;;;;;17600:16;;;;;;;;;;;17599:17;17555:61;:103;;;;;17638:12;:20;17651:6;17638:20;;;;;;;;;;;;;;;;;;;;;;;;;17637:21;17555:103;17533:294;;;17715:15;;;;;;;;;;;17697:34;;:6;:34;;;17693:119;;17756:36;17771:20;17756:14;:36::i;:::-;17693:119;17533:294;17863:102;17903:6;17863:102;;;;;;;;;;;;;;;;;:9;:17;17873:6;17863:17;;;;;;;;;;;;;;;;:21;;:102;;;;;:::i;:::-;17843:9;:17;17853:6;17843:17;;;;;;;;;;;;;;;:122;;;;17982:19;18005:17;:25;18023:6;18005:25;;;;;;;;;;;;;;;;;;;;;;;;;:74;;;;18051:17;:28;18069:9;18051:28;;;;;;;;;;;;;;;;;;;;;;;;;18005:74;18004:156;;18126:34;18134:6;18142:9;18153:6;18126:7;:34::i;:::-;18004:156;;;18100:6;18004:156;17982:178;;18200:37;18225:11;18200:9;:20;18210:9;18200:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;18177:9;:20;18187:9;18177:20;;;;;;;;;;;;;;;:60;;;;18276:9;18259:40;;18268:6;18259:40;;;18287:11;18259:40;;;;;;:::i;:::-;;;;;;;;18367:9;;18352:12;;:24;;;;:::i;:::-;18336:12;:41;:83;;;;;18408:11;;;;;;;;;;;18398:21;;:6;:21;;;18336:83;18314:207;;;18454:51;18469:9;18480:11;18493;18454:14;:51::i;:::-;;18314:207;18542:4;18535:11;;;;;16549:2016;;;;;;:::o;2353:226::-;2473:7;2506:1;2501;:6;;2509:12;2493:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2533:9;2549:1;2545;:5;;;;:::i;:::-;2533:17;;2570:1;2563:8;;;2353:226;;;;;:::o;2209:136::-;2267:7;2294:43;2298:1;2301;2294:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2287:50;;2209:136;;;;:::o;2845:132::-;2903:7;2930:39;2934:1;2937;2930:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2923:46;;2845:132;;;;:::o;18573:401::-;18700:4;18737:90;18773:6;18737:90;;;;;;;;;;;;;;;;;:9;:17;18747:6;18737:17;;;;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;18717:9;:17;18727:6;18717:17;;;;;;;;;;;;;;;:110;;;;18861:32;18886:6;18861:9;:20;18871:9;18861:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18838:9;:20;18848:9;18838:20;;;;;;;;;;;;;;;:55;;;;18926:9;18909:35;;18918:6;18909:35;;;18937:6;18909:35;;;;;;:::i;:::-;;;;;;;;18962:4;18955:11;;18573:401;;;;;:::o;18982:1201::-;11520:4;11501:16;;:23;;;;;;;;;;;;;;;;;;19054:19:::1;19076:107;19181:1;19076:86;19137:24;;19076:42;19102:15;;19076:7;:25;;:42;;;;:::i;:::-;:60;;:86;;;;:::i;:::-;:104;;:107;;;;:::i;:::-;19054:129;;19194:21;19218:24;19230:11;19218:7;:11;;:24;;;;:::i;:::-;19194:48;;19255:31;19272:13;19255:16;:31::i;:::-;19297:22;19322:21;19297:46;;19356:19;19378:76;19421:22;19441:1;19421:15;;:19;;:22;;;;:::i;:::-;19378:24;;:28;;:76;;;;:::i;:::-;19356:98;;19467:26;19496:101;19595:1;19496:80;19564:11;19496:49;19529:15;;19496:14;:32;;:49;;;;:::i;:::-;:67;;:80;;;;:::i;:::-;:98;;:101;;;;:::i;:::-;19467:130;;19608:23;19634:73;19685:11;19634:32;19653:12;;19634:14;:18;;:32;;;;:::i;:::-;:36;;:73;;;;:::i;:::-;19608:99;;19718:26;19747:83;19804:15;19747:38;19766:18;19747:14;:18;;:38;;;;:::i;:::-;:42;;:83;;;;:::i;:::-;19718:112;;19868:1;19847:18;:22;19843:105;;;19884:64;19905:22;;;;;;;;;;;19929:18;19884:20;:64::i;:::-;19843:105;19983:1;19965:15;:19;19961:96;;;19999:58;20020:19;;;;;;;;;;;20041:15;19999:20;:58::i;:::-;19961:96;20095:1;20074:18;:22;:41;;;;;20114:1;20100:11;:15;20074:41;20070:105;;;20130:45;20143:11;20156:18;20130:12;:45::i;:::-;20070:105;11535:1;;;;;;;11566:5:::0;11547:16;;:24;;;;;;;;;;;;;;;;;;18982:1201;:::o;21108:924::-;21228:7;21248:17;21268:1;21248:21;;21284:12;:20;21297:6;21284:20;;;;;;;;;;;;;;;;;;;;;;;;;21280:510;;;21333:38;21367:3;21333:29;21344:17;;21333:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;21321:50;;21280:510;;;21393:12;:23;21406:9;21393:23;;;;;;;;;;;;;;;;;;;;;;;;;21389:401;;;21445:39;21480:3;21445:30;21456:18;;21445:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;21433:51;;21500:10;21529:5;21535:1;21529:7;;21525:199;21541:11;;21537:1;:15;21525:199;;21629:1;21632:6;21640:15;21612:44;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21602:55;;;;;;21597:61;;21576:84;;21679:29;21694:6;21701:2;21704:3;21679:14;:29::i;:::-;;21553:3;;;;;:::i;:::-;;;;21525:199;;;;21738:40;21774:3;21769:1;21757:11;;:13;;;;:::i;:::-;21749:28;;;;:::i;:::-;21738:6;:10;;:40;;;;:::i;:::-;;21389:401;;21280:510;21818:1;21806:9;:13;21802:174;;;21863:39;21892:9;21863;:24;21881:4;21863:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;21836:9;:24;21854:4;21836:24;;;;;;;;;;;;;;;:66;;;;21947:4;21922:42;;21931:6;21922:42;;;21954:9;21922:42;;;;;;:::i;:::-;;;;;;;;21802:174;22003:21;22014:9;22003:6;:10;;:21;;;;:::i;:::-;21996:28;;;21108:924;;;;;:::o;2985:312::-;3105:7;3137:1;3133;:5;3140:12;3125:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3164:9;3180:1;3176;:5;;;;:::i;:::-;3164:17;;3288:1;3281:8;;;2985:312;;;;;:::o;2587:250::-;2645:7;2674:1;2669;:6;2665:47;;;2699:1;2692:8;;;;2665:47;2724:9;2740:1;2736;:5;;;;:::i;:::-;2724:17;;2769:1;2764;2760;:5;;;;:::i;:::-;:10;2752:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2828:1;2821:8;;;2587:250;;;;;:::o;20195:522::-;20261:21;20299:1;20285:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20261:40;;20330:4;20312;20317:1;20312:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;20356:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20346:4;20351:1;20346:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;20389:62;20406:4;20421:15;;;;;;;;;;;20439:11;20389:8;:62::i;:::-;20462:15;;;;;;;;;;;:66;;;20543:11;20569:1;20585:4;20612;20632:15;20462:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20674:35;20691:11;20704:4;20674:35;;;;;;;:::i;:::-;;;;;;;;20195:522;;:::o;15647:140::-;15753:9;:18;;:26;15772:6;15753:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15647:140;;:::o;20725:375::-;20806:62;20823:4;20838:15;;;;;;;;;;;20856:11;20806:8;:62::i;:::-;20879:15;;;;;;;;;;;:31;;;20918:9;20951:4;20971:11;20997:1;21013;21029:22;;;;;;;;;;;21066:15;20879:213;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20725:375;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;793:6;842:2;830:9;821:7;817:23;813:32;810:2;;;858:1;855;848:12;810:2;901:1;926:53;971:7;962:6;951:9;947:22;926:53;:::i;:::-;916:63;;872:117;800:196;;;;:::o;1002:284::-;1072:6;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:64;1261:7;1252:6;1241:9;1237:22;1205:64;:::i;:::-;1195:74;;1151:128;1079:207;;;;:::o;1292:407::-;1360:6;1368;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1433:1;1430;1423:12;1385:2;1476:1;1501:53;1546:7;1537:6;1526:9;1522:22;1501:53;:::i;:::-;1491:63;;1447:117;1603:2;1629:53;1674:7;1665:6;1654:9;1650:22;1629:53;:::i;:::-;1619:63;;1574:118;1375:324;;;;;:::o;1705:552::-;1782:6;1790;1798;1847:2;1835:9;1826:7;1822:23;1818:32;1815:2;;;1863:1;1860;1853:12;1815:2;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;2033:2;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2004:118;2161:2;2187:53;2232:7;2223:6;2212:9;2208:22;2187:53;:::i;:::-;2177:63;;2132:118;1805:452;;;;;:::o;2263:401::-;2328:6;2336;2385:2;2373:9;2364:7;2360:23;2356:32;2353:2;;;2401:1;2398;2391:12;2353:2;2444:1;2469:53;2514:7;2505:6;2494:9;2490:22;2469:53;:::i;:::-;2459:63;;2415:117;2571:2;2597:50;2639:7;2630:6;2619:9;2615:22;2597:50;:::i;:::-;2587:60;;2542:115;2343:321;;;;;:::o;2670:407::-;2738:6;2746;2795:2;2783:9;2774:7;2770:23;2766:32;2763:2;;;2811:1;2808;2801:12;2763:2;2854:1;2879:53;2924:7;2915:6;2904:9;2900:22;2879:53;:::i;:::-;2869:63;;2825:117;2981:2;3007:53;3052:7;3043:6;3032:9;3028:22;3007:53;:::i;:::-;2997:63;;2952:118;2753:324;;;;;:::o;3083:596::-;3171:6;3179;3187;3236:2;3224:9;3215:7;3211:23;3207:32;3204:2;;;3252:1;3249;3242:12;3204:2;3295:1;3320:64;3376:7;3367:6;3356:9;3352:22;3320:64;:::i;:::-;3310:74;;3266:128;3433:2;3459:64;3515:7;3506:6;3495:9;3491:22;3459:64;:::i;:::-;3449:74;;3404:129;3572:2;3598:64;3654:7;3645:6;3634:9;3630:22;3598:64;:::i;:::-;3588:74;;3543:129;3194:485;;;;;:::o;3685:179::-;3754:10;3775:46;3817:3;3809:6;3775:46;:::i;:::-;3853:4;3848:3;3844:14;3830:28;;3765:99;;;;:::o;3870:147::-;3965:45;4004:5;3965:45;:::i;:::-;3960:3;3953:58;3943:74;;:::o;4023:142::-;4126:32;4152:5;4126:32;:::i;:::-;4121:3;4114:45;4104:61;;:::o;4171:108::-;4248:24;4266:5;4248:24;:::i;:::-;4243:3;4236:37;4226:53;;:::o;4285:118::-;4372:24;4390:5;4372:24;:::i;:::-;4367:3;4360:37;4350:53;;:::o;4439:732::-;4558:3;4587:54;4635:5;4587:54;:::i;:::-;4657:86;4736:6;4731:3;4657:86;:::i;:::-;4650:93;;4767:56;4817:5;4767:56;:::i;:::-;4846:7;4877:1;4862:284;4887:6;4884:1;4881:13;4862:284;;;4963:6;4957:13;4990:63;5049:3;5034:13;4990:63;:::i;:::-;4983:70;;5076:60;5129:6;5076:60;:::i;:::-;5066:70;;4922:224;4909:1;4906;4902:9;4897:14;;4862:284;;;4866:14;5162:3;5155:10;;4563:608;;;;;;;:::o;5177:109::-;5258:21;5273:5;5258:21;:::i;:::-;5253:3;5246:34;5236:50;;:::o;5292:183::-;5405:63;5462:5;5405:63;:::i;:::-;5400:3;5393:76;5383:92;;:::o;5481:115::-;5566:23;5583:5;5566:23;:::i;:::-;5561:3;5554:36;5544:52;;:::o;5602:153::-;5705:43;5724:23;5741:5;5724:23;:::i;:::-;5705:43;:::i;:::-;5700:3;5693:56;5683:72;;:::o;5761:147::-;5856:45;5895:5;5856:45;:::i;:::-;5851:3;5844:58;5834:74;;:::o;5914:364::-;6002:3;6030:39;6063:5;6030:39;:::i;:::-;6085:71;6149:6;6144:3;6085:71;:::i;:::-;6078:78;;6165:52;6210:6;6205:3;6198:4;6191:5;6187:16;6165:52;:::i;:::-;6242:29;6264:6;6242:29;:::i;:::-;6237:3;6233:39;6226:46;;6006:272;;;;;:::o;6284:366::-;6426:3;6447:67;6511:2;6506:3;6447:67;:::i;:::-;6440:74;;6523:93;6612:3;6523:93;:::i;:::-;6641:2;6636:3;6632:12;6625:19;;6430:220;;;:::o;6656:366::-;6798:3;6819:67;6883:2;6878:3;6819:67;:::i;:::-;6812:74;;6895:93;6984:3;6895:93;:::i;:::-;7013:2;7008:3;7004:12;6997:19;;6802:220;;;:::o;7028:366::-;7170:3;7191:67;7255:2;7250:3;7191:67;:::i;:::-;7184:74;;7267:93;7356:3;7267:93;:::i;:::-;7385:2;7380:3;7376:12;7369:19;;7174:220;;;:::o;7400:366::-;7542:3;7563:67;7627:2;7622:3;7563:67;:::i;:::-;7556:74;;7639:93;7728:3;7639:93;:::i;:::-;7757:2;7752:3;7748:12;7741:19;;7546:220;;;:::o;7772:366::-;7914:3;7935:67;7999:2;7994:3;7935:67;:::i;:::-;7928:74;;8011:93;8100:3;8011:93;:::i;:::-;8129:2;8124:3;8120:12;8113:19;;7918:220;;;:::o;8144:366::-;8286:3;8307:67;8371:2;8366:3;8307:67;:::i;:::-;8300:74;;8383:93;8472:3;8383:93;:::i;:::-;8501:2;8496:3;8492:12;8485:19;;8290:220;;;:::o;8516:366::-;8658:3;8679:67;8743:2;8738:3;8679:67;:::i;:::-;8672:74;;8755:93;8844:3;8755:93;:::i;:::-;8873:2;8868:3;8864:12;8857:19;;8662:220;;;:::o;8888:366::-;9030:3;9051:67;9115:2;9110:3;9051:67;:::i;:::-;9044:74;;9127:93;9216:3;9127:93;:::i;:::-;9245:2;9240:3;9236:12;9229:19;;9034:220;;;:::o;9260:118::-;9347:24;9365:5;9347:24;:::i;:::-;9342:3;9335:37;9325:53;;:::o;9384:157::-;9489:45;9509:24;9527:5;9509:24;:::i;:::-;9489:45;:::i;:::-;9484:3;9477:58;9467:74;;:::o;9547:112::-;9630:22;9646:5;9630:22;:::i;:::-;9625:3;9618:35;9608:51;;:::o;9665:534::-;9831:3;9846:73;9915:3;9906:6;9846:73;:::i;:::-;9944:2;9939:3;9935:12;9928:19;;9957:75;10028:3;10019:6;9957:75;:::i;:::-;10057:2;10052:3;10048:12;10041:19;;10070:75;10141:3;10132:6;10070:75;:::i;:::-;10170:2;10165:3;10161:12;10154:19;;10190:3;10183:10;;9835:364;;;;;;:::o;10205:222::-;10298:4;10336:2;10325:9;10321:18;10313:26;;10349:71;10417:1;10406:9;10402:17;10393:6;10349:71;:::i;:::-;10303:124;;;;:::o;10433:254::-;10542:4;10580:2;10569:9;10565:18;10557:26;;10593:87;10677:1;10666:9;10662:17;10653:6;10593:87;:::i;:::-;10547:140;;;;:::o;10693:823::-;10950:4;10988:3;10977:9;10973:19;10965:27;;11002:71;11070:1;11059:9;11055:17;11046:6;11002:71;:::i;:::-;11083:72;11151:2;11140:9;11136:18;11127:6;11083:72;:::i;:::-;11165:80;11241:2;11230:9;11226:18;11217:6;11165:80;:::i;:::-;11255;11331:2;11320:9;11316:18;11307:6;11255:80;:::i;:::-;11345:81;11421:3;11410:9;11406:19;11397:6;11345:81;:::i;:::-;11436:73;11504:3;11493:9;11489:19;11480:6;11436:73;:::i;:::-;10955:561;;;;;;;;;:::o;11522:210::-;11609:4;11647:2;11636:9;11632:18;11624:26;;11660:65;11722:1;11711:9;11707:17;11698:6;11660:65;:::i;:::-;11614:118;;;;:::o;11738:274::-;11857:4;11895:2;11884:9;11880:18;11872:26;;11908:97;12002:1;11991:9;11987:17;11978:6;11908:97;:::i;:::-;11862:150;;;;:::o;12018:218::-;12109:4;12147:2;12136:9;12132:18;12124:26;;12160:69;12226:1;12215:9;12211:17;12202:6;12160:69;:::i;:::-;12114:122;;;;:::o;12242:313::-;12355:4;12393:2;12382:9;12378:18;12370:26;;12442:9;12436:4;12432:20;12428:1;12417:9;12413:17;12406:47;12470:78;12543:4;12534:6;12470:78;:::i;:::-;12462:86;;12360:195;;;;:::o;12561:419::-;12727:4;12765:2;12754:9;12750:18;12742:26;;12814:9;12808:4;12804:20;12800:1;12789:9;12785:17;12778:47;12842:131;12968:4;12842:131;:::i;:::-;12834:139;;12732:248;;;:::o;12986:419::-;13152:4;13190:2;13179:9;13175:18;13167:26;;13239:9;13233:4;13229:20;13225:1;13214:9;13210:17;13203:47;13267:131;13393:4;13267:131;:::i;:::-;13259:139;;13157:248;;;:::o;13411:419::-;13577:4;13615:2;13604:9;13600:18;13592:26;;13664:9;13658:4;13654:20;13650:1;13639:9;13635:17;13628:47;13692:131;13818:4;13692:131;:::i;:::-;13684:139;;13582:248;;;:::o;13836:419::-;14002:4;14040:2;14029:9;14025:18;14017:26;;14089:9;14083:4;14079:20;14075:1;14064:9;14060:17;14053:47;14117:131;14243:4;14117:131;:::i;:::-;14109:139;;14007:248;;;:::o;14261:419::-;14427:4;14465:2;14454:9;14450:18;14442:26;;14514:9;14508:4;14504:20;14500:1;14489:9;14485:17;14478:47;14542:131;14668:4;14542:131;:::i;:::-;14534:139;;14432:248;;;:::o;14686:419::-;14852:4;14890:2;14879:9;14875:18;14867:26;;14939:9;14933:4;14929:20;14925:1;14914:9;14910:17;14903:47;14967:131;15093:4;14967:131;:::i;:::-;14959:139;;14857:248;;;:::o;15111:419::-;15277:4;15315:2;15304:9;15300:18;15292:26;;15364:9;15358:4;15354:20;15350:1;15339:9;15335:17;15328:47;15392:131;15518:4;15392:131;:::i;:::-;15384:139;;15282:248;;;:::o;15536:419::-;15702:4;15740:2;15729:9;15725:18;15717:26;;15789:9;15783:4;15779:20;15775:1;15764:9;15760:17;15753:47;15817:131;15943:4;15817:131;:::i;:::-;15809:139;;15707:248;;;:::o;15961:222::-;16054:4;16092:2;16081:9;16077:18;16069:26;;16105:71;16173:1;16162:9;16158:17;16149:6;16105:71;:::i;:::-;16059:124;;;;:::o;16189:483::-;16360:4;16398:2;16387:9;16383:18;16375:26;;16411:71;16479:1;16468:9;16464:17;16455:6;16411:71;:::i;:::-;16529:9;16523:4;16519:20;16514:2;16503:9;16499:18;16492:48;16557:108;16660:4;16651:6;16557:108;:::i;:::-;16549:116;;16365:307;;;;;:::o;16678:831::-;16941:4;16979:3;16968:9;16964:19;16956:27;;16993:71;17061:1;17050:9;17046:17;17037:6;16993:71;:::i;:::-;17074:80;17150:2;17139:9;17135:18;17126:6;17074:80;:::i;:::-;17201:9;17195:4;17191:20;17186:2;17175:9;17171:18;17164:48;17229:108;17332:4;17323:6;17229:108;:::i;:::-;17221:116;;17347:72;17415:2;17404:9;17400:18;17391:6;17347:72;:::i;:::-;17429:73;17497:3;17486:9;17482:19;17473:6;17429:73;:::i;:::-;16946:563;;;;;;;;:::o;17515:214::-;17604:4;17642:2;17631:9;17627:18;17619:26;;17655:67;17719:1;17708:9;17704:17;17695:6;17655:67;:::i;:::-;17609:120;;;;:::o;17735:132::-;17802:4;17825:3;17817:11;;17855:4;17850:3;17846:14;17838:22;;17807:60;;;:::o;17873:114::-;17940:6;17974:5;17968:12;17958:22;;17947:40;;;:::o;17993:99::-;18045:6;18079:5;18073:12;18063:22;;18052:40;;;:::o;18098:113::-;18168:4;18200;18195:3;18191:14;18183:22;;18173:38;;;:::o;18217:184::-;18316:11;18350:6;18345:3;18338:19;18390:4;18385:3;18381:14;18366:29;;18328:73;;;;:::o;18407:169::-;18491:11;18525:6;18520:3;18513:19;18565:4;18560:3;18556:14;18541:29;;18503:73;;;;:::o;18582:525::-;18621:3;18640:19;18657:1;18640:19;:::i;:::-;18635:24;;18673:19;18690:1;18673:19;:::i;:::-;18668:24;;18861:1;18793:66;18789:74;18786:1;18782:82;18777:1;18774;18770:9;18763:17;18759:106;18756:2;;;18868:18;;:::i;:::-;18756:2;19048:1;18980:66;18976:74;18973:1;18969:82;18965:1;18962;18958:9;18954:98;18951:2;;;19055:18;;:::i;:::-;18951:2;19099:1;19096;19092:9;19085:16;;18625:482;;;;:::o;19113:305::-;19153:3;19172:20;19190:1;19172:20;:::i;:::-;19167:25;;19206:20;19224:1;19206:20;:::i;:::-;19201:25;;19360:1;19292:66;19288:74;19285:1;19282:81;19279:2;;;19366:18;;:::i;:::-;19279:2;19410:1;19407;19403:9;19396:16;;19157:261;;;;:::o;19424:185::-;19464:1;19481:20;19499:1;19481:20;:::i;:::-;19476:25;;19515:20;19533:1;19515:20;:::i;:::-;19510:25;;19554:1;19544:2;;19559:18;;:::i;:::-;19544:2;19601:1;19598;19594:9;19589:14;;19466:143;;;;:::o;19615:348::-;19655:7;19678:20;19696:1;19678:20;:::i;:::-;19673:25;;19712:20;19730:1;19712:20;:::i;:::-;19707:25;;19900:1;19832:66;19828:74;19825:1;19822:81;19817:1;19810:9;19803:17;19799:105;19796:2;;;19907:18;;:::i;:::-;19796:2;19955:1;19952;19948:9;19937:20;;19663:300;;;;:::o;19969:191::-;20009:4;20029:20;20047:1;20029:20;:::i;:::-;20024:25;;20063:20;20081:1;20063:20;:::i;:::-;20058:25;;20102:1;20099;20096:8;20093:2;;;20107:18;;:::i;:::-;20093:2;20152:1;20149;20145:9;20137:17;;20014:146;;;;:::o;20166:96::-;20203:7;20232:24;20250:5;20232:24;:::i;:::-;20221:35;;20211:51;;;:::o;20268:104::-;20313:7;20342:24;20360:5;20342:24;:::i;:::-;20331:35;;20321:51;;;:::o;20378:90::-;20412:7;20455:5;20448:13;20441:21;20430:32;;20420:48;;;:::o;20474:76::-;20510:7;20539:5;20528:16;;20518:32;;;:::o;20556:126::-;20593:7;20633:42;20626:5;20622:54;20611:65;;20601:81;;;:::o;20688:77::-;20725:7;20754:5;20743:16;;20733:32;;;:::o;20771:86::-;20806:7;20846:4;20839:5;20835:16;20824:27;;20814:43;;;:::o;20863:134::-;20921:9;20954:37;20985:5;20954:37;:::i;:::-;20941:50;;20931:66;;;:::o;21003:178::-;21079:9;21112:63;21169:5;21112:63;:::i;:::-;21099:76;;21089:92;;;:::o;21187:139::-;21263:9;21296:24;21314:5;21296:24;:::i;:::-;21283:37;;21273:53;;;:::o;21332:121::-;21390:9;21423:24;21441:5;21423:24;:::i;:::-;21410:37;;21400:53;;;:::o;21459:126::-;21509:9;21542:37;21573:5;21542:37;:::i;:::-;21529:50;;21519:66;;;:::o;21591:113::-;21641:9;21674:24;21692:5;21674:24;:::i;:::-;21661:37;;21651:53;;;:::o;21710:307::-;21778:1;21788:113;21802:6;21799:1;21796:13;21788:113;;;21887:1;21882:3;21878:11;21872:18;21868:1;21863:3;21859:11;21852:39;21824:2;21821:1;21817:10;21812:15;;21788:113;;;21919:6;21916:1;21913:13;21910:2;;;21999:1;21990:6;21985:3;21981:16;21974:27;21910:2;21759:258;;;;:::o;22023:320::-;22067:6;22104:1;22098:4;22094:12;22084:22;;22151:1;22145:4;22141:12;22172:18;22162:2;;22228:4;22220:6;22216:17;22206:27;;22162:2;22290;22282:6;22279:14;22259:18;22256:38;22253:2;;;22309:18;;:::i;:::-;22253:2;22074:269;;;;:::o;22349:231::-;22387:3;22410:23;22427:5;22410:23;:::i;:::-;22401:32;;22455:66;22448:5;22445:77;22442:2;;;22525:18;;:::i;:::-;22442:2;22572:1;22565:5;22561:13;22554:20;;22391:189;;;:::o;22586:78::-;22624:7;22653:5;22642:16;;22632:32;;;:::o;22670:79::-;22709:7;22738:5;22727:16;;22717:32;;;:::o;22755:180::-;22803:77;22800:1;22793:88;22900:4;22897:1;22890:15;22924:4;22921:1;22914:15;22941:180;22989:77;22986:1;22979:88;23086:4;23083:1;23076:15;23110:4;23107:1;23100:15;23127:180;23175:77;23172:1;23165:88;23272:4;23269:1;23262:15;23296:4;23293:1;23286:15;23313:102;23354:6;23405:2;23401:7;23396:2;23389:5;23385:14;23381:28;23371:38;;23361:54;;;:::o;23421:222::-;23561:34;23557:1;23549:6;23545:14;23538:58;23630:5;23625:2;23617:6;23613:15;23606:30;23527:116;:::o;23649:225::-;23789:34;23785:1;23777:6;23773:14;23766:58;23858:8;23853:2;23845:6;23841:15;23834:33;23755:119;:::o;23880:221::-;24020:34;24016:1;24008:6;24004:14;23997:58;24089:4;24084:2;24076:6;24072:15;24065:29;23986:115;:::o;24107:177::-;24247:29;24243:1;24235:6;24231:14;24224:53;24213:71;:::o;24290:220::-;24430:34;24426:1;24418:6;24414:14;24407:58;24499:3;24494:2;24486:6;24482:15;24475:28;24396:114;:::o;24516:182::-;24656:34;24652:1;24644:6;24640:14;24633:58;24622:76;:::o;24704:224::-;24844:34;24840:1;24832:6;24828:14;24821:58;24913:7;24908:2;24900:6;24896:15;24889:32;24810:118;:::o;24934:223::-;25074:34;25070:1;25062:6;25058:14;25051:58;25143:6;25138:2;25130:6;25126:15;25119:31;25040:117;:::o;25163:122::-;25236:24;25254:5;25236:24;:::i;:::-;25229:5;25226:35;25216:2;;25275:1;25272;25265:12;25216:2;25206:79;:::o;25291:116::-;25361:21;25376:5;25361:21;:::i;:::-;25354:5;25351:32;25341:2;;25397:1;25394;25387:12;25341:2;25331:76;:::o;25413:122::-;25486:24;25504:5;25486:24;:::i;:::-;25479:5;25476:35;25466:2;;25525:1;25522;25515:12;25466:2;25456:79;:::o

Swarm Source

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