ETH Price: $3,404.46 (+2.74%)

Token

SHIBFI (SHIBFI)
 

Overview

Max Total Supply

100,000,000 SHIBFI

Holders

203

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: SHIBFI 17
Balance
0.000000000000904989 SHIBFI

Value
$0.00
0xc006187309f64de950980aa88978a0f98910299b
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SHIBFI

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-23
*/

/**
 *Submitted for verification at Etherscan.io on 2024-10-17
*/

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

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


interface IERC20 {

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

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

    function decimals() external view returns (uint8);

    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: SHIBFI addition overflow");

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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


contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they SHIBFI can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_,uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a SHIBFI shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero SHIBFI address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer SHIBFI amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated SHIBFI allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    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;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount,
         "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

    function WETH() external pure returns (address);

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


}

interface IUniswapV2Router02 is IUniswapV2Router01 {

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

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

}

interface IUniswapV2Factory {

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

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

interface IUniswapV2Pair {

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

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

    function token0() external view returns (address);

    function token1() external view returns (address);

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

}

contract usdtReceiver {
    address public usdt;
    address public owner;
    constructor(address _u) {
        usdt = _u;
        owner = msg.sender;
        IERC20(usdt).approve(msg.sender,~uint256(0));
    }
}

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

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapPair;

    bool private swapping;

    uint256 public swapTokensAtAmount;

    uint256 public buyTokenRewardsFee;
    uint256 public sellTokenRewardsFee;

    uint256 public buyLiquidityFee;
    uint256 public sellLiquidityFee;

    uint256 public buyMarketingFee;
    uint256 public sellMarketingFee;

    uint256 public buyDeadFee;
    uint256 public sellDeadFee;

    uint256 public AmountLiquidityFee;
    uint256 public AmountTokenRewardsFee;
    uint256 public AmountMarketingFee;

    uint256 public addLiquidityFee;
    uint256 public removeLiquidityFee;

    usdtReceiver public _usdtReceiver;
    address public deadWallet = 0x000000000000000000000000000000000000dEaD;
    address public usdtAddress;
    address public _marketingWalletAddress;
    address public rewardsAddress;
    uint256 public gasForProcessing;
    bool public swapAndLiquifyEnabled = true;

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

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

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

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded);

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

    event LiquidityWalletUpdated(address indexed newLiquidityWallet, address indexed oldLiquidityWallet);

    event GasForProcessingUpdated(uint256 indexed newValue, uint256 indexed oldValue);

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

    event SendDividends(
        uint256 tokensSwapped,
        uint256 amount
    );

    event ProcessedDividendTracker(
        uint256 iterations,
        uint256 claims,
        uint256 lastProcessedIndex,
        bool indexed automatic,
        uint256 gas,
        address indexed processor
    );

    constructor() payable ERC20("SHIBFI", "SHIBFI",18)  {

        uint256 totalSupply = 100000000 * (10 ** 18);
        // use by default 300,000 gas to process auto-claiming dividends
        gasForProcessing = 300000;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;

        
        _mint(owner(), totalSupply);
    }
    receive() external payable {}



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

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, "Automated market maker pair is already set to that value");
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }


    function updateGasForProcessing(uint256 newValue) public onlyOwner {
        require(newValue != gasForProcessing,
         "Cannot update gasForProcessing to same value");
        emit GasForProcessingUpdated(newValue, gasForProcessing);
        gasForProcessing = newValue;
    }


    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
    }


    function setSwapTokensAtAmount(uint256 amount) public onlyOwner {
        swapTokensAtAmount = amount;
    }




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

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

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            automatedMarketMakerPairs[from] &&
            from != owner() &&
            to != owner() &&
            swapAndLiquifyEnabled
        ) {
            swapping = true;
            swapAndSendMarketing(AmountMarketingFee);
            swapAndLiquify(AmountLiquidityFee);
            swapAndSendDividends(AmountTokenRewardsFee);
            swapping = false;
        }


        bool takeFee = !swapping;

        if(takeFee) {
            uint256 fees;
            uint256 LFee; // Liquidity
            uint256 RFee; // Rewards
            uint256 MFee; // Marketing
            uint256 DFee; // Dead

            if(automatedMarketMakerPairs[from]){
                LFee = amount.mul(buyLiquidityFee).div(100);
                AmountLiquidityFee += LFee;
                RFee = amount.mul(buyTokenRewardsFee).div(100);
                AmountTokenRewardsFee += RFee;
                MFee = amount.mul(buyMarketingFee).div(100);
                AmountMarketingFee += MFee;
                DFee = amount.mul(buyDeadFee).div(100);
                fees = LFee.add(RFee).add(MFee).add(DFee);
            }else if(automatedMarketMakerPairs[to]){
                LFee = amount.mul(sellLiquidityFee).div(100);
                AmountLiquidityFee += LFee;
                RFee = amount.mul(sellTokenRewardsFee).div(100);
                AmountTokenRewardsFee += RFee;
                MFee = amount.mul(sellMarketingFee).div(100);
                AmountMarketingFee += MFee;
                DFee = amount.mul(sellDeadFee).div(100);
                fees = LFee.add(RFee).add(MFee).add(DFee);
            }


            amount = amount.sub(fees);
            if(DFee > 0) super._transfer(from, deadWallet, DFee);
            if(fees > 0) super._transfer(from, address(this), fees.sub(DFee));
        }


        super._transfer(from, to, amount);

    }



    function swapAndSendMarketing(uint256 tokens) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdtAddress;
        if(usdtAddress == uniswapV2Router.WETH()){
            // make the swap
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokens,
                0, // accept any amount of ETH
                path,
                _marketingWalletAddress, // The contract
                block.timestamp
            );
        }else{
            // make the swap
            uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokens,
                0, // accept any amount of USDT
                path,
                _marketingWalletAddress,
                block.timestamp
            );
        }
        AmountMarketingFee = AmountMarketingFee - tokens;
    }

    function swapAndLiquify(uint256 tokens) private {
       // split the contract balance into halves
        uint256 half = tokens.div(2);
        uint256 otherHalf = tokens.sub(half);

        uint256 initialBalance = IERC20(usdtAddress).balanceOf(address(this));

        // swap tokens for ETH
        swapTokensForUsdt(half,address(this)); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = IERC20(usdtAddress).balanceOf(address(this)).sub(initialBalance);

        // add liquidity to uniswap
        addLiquidityUSDT(otherHalf, newBalance);
        AmountLiquidityFee = AmountLiquidityFee - tokens;
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function addLiquidityUSDT(uint256 tokenAmount, uint256 USDTAmount) private {
        // approve token transfer to cover all possible scenarios
        IERC20(usdtAddress).approve(address(uniswapV2Router),USDTAmount);
        // add the liquidity
        uniswapV2Router.addLiquidity(
            address(this),
            usdtAddress,
            tokenAmount,
            USDTAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            _marketingWalletAddress,
            block.timestamp
        );
    }

    function swapTokensForUsdt(uint256 tokenAmount,address addr) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = usdtAddress;
        // make the swap
        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of USDT
            path,
            address(_usdtReceiver),
            block.timestamp
        );
        uint256 amount = IERC20(usdtAddress).balanceOf(address(_usdtReceiver));
        IERC20(usdtAddress).transferFrom(address(_usdtReceiver),addr, amount);
    }

    function swapTokensForRewards(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth -> rewards
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = usdtAddress;
        path[2] = rewardsAddress;
        // make the swap
        try
            uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
                tokenAmount,
                0, // accept any amount of USDT
                path,
                address(this),
                block.timestamp
            )
        {}catch{}

    }

    function swapAndSendDividends(uint256 tokens) private {
        // Judging whether to distribute dividends in the local currency
        if(usdtAddress == rewardsAddress){
            swapTokensForUsdt(tokens,address(this));
        }else{
            swapTokensForRewards(tokens);
        }
        AmountTokenRewardsFee = AmountTokenRewardsFee - tokens;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"GasForProcessingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newLiquidityWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldLiquidityWallet","type":"address"}],"name":"LiquidityWalletUpdated","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":"iterations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claims","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastProcessedIndex","type":"uint256"},{"indexed":true,"internalType":"bool","name":"automatic","type":"bool"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":true,"internalType":"address","name":"processor","type":"address"}],"name":"ProcessedDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"AmountLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AmountTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdtReceiver","outputs":[{"internalType":"contract usdtReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityFee","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDeadFee","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":"buyTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","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":"gasForProcessing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","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":[],"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":"removeLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDeadFee","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":"sellTokenRewardsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"updateGasForProcessing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601c5f6101000a81548160ff0219169083151502179055506040518060400160405280600681526020017f53484942464900000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f534849424649000000000000000000000000000000000000000000000000000081525060128260039081620000df919062000726565b508160049081620000f1919062000726565b508060055f6101000a81548160ff021916908360ff1602179055505050506200012f62000123620001c960201b60201c565b620001d060201b60201c565b5f6a52b7d2dcc80cd2e40000009050620493e0601b819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001c1620001b46200029560201b60201c565b83620002be60201b60201c565b5050620009af565b5f33905090565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200032f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003269062000868565b60405180910390fd5b620003425f83836200045b60201b60201c565b62000359816002546200046060201b90919060201c565b600281905550620003b0815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200046060201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200044f919062000899565b60405180910390a35050565b505050565b5f808284620004709190620008e1565b905083811015620004b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004af906200098f565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200053e57607f821691505b602082108103620005545762000553620004f9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200057b565b620005c486836200057b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200060e620006086200060284620005dc565b620005e5565b620005dc565b9050919050565b5f819050919050565b6200062983620005ee565b62000641620006388262000615565b84845462000587565b825550505050565b5f90565b6200065762000649565b620006648184846200061e565b505050565b5b818110156200068b576200067f5f826200064d565b6001810190506200066a565b5050565b601f821115620006da57620006a4816200055a565b620006af846200056c565b81016020851015620006bf578190505b620006d7620006ce856200056c565b83018262000669565b50505b505050565b5f82821c905092915050565b5f620006fc5f1984600802620006df565b1980831691505092915050565b5f620007168383620006eb565b9150826002028217905092915050565b6200073182620004c2565b67ffffffffffffffff8111156200074d576200074c620004cc565b5b62000759825462000526565b620007668282856200068f565b5f60209050601f8311600181146200079c575f841562000787578287015190505b62000793858262000709565b86555062000802565b601f198416620007ac866200055a565b5f5b82811015620007d557848901518255600182019150602085019450602081019050620007ae565b86831015620007f55784890151620007f1601f891682620006eb565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000850601f836200080a565b91506200085d826200081a565b602082019050919050565b5f6020820190508181035f830152620008818162000842565b9050919050565b6200089381620005dc565b82525050565b5f602082019050620008ae5f83018462000888565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620008ed82620005dc565b9150620008fa83620005dc565b9250828201905080821115620009155762000914620008b4565b5b92915050565b7f536166654d6174683a20534849424649206164646974696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f620009776022836200080a565b915062000984826200091b565b604082019050919050565b5f6020820190508181035f830152620009a88162000969565b9050919050565b61416080620009bd5f395ff3fe60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b95856040518060600160405280602f81526020016140b2602f913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613540565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613540565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135ce565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613540565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613682565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280602581526020016141066025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613540565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613540565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90613540565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613710565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115499061379e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061382c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906138ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613948565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b59190613993565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f79190613993565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a399190613993565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b329190613993565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b749190613993565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb69190613993565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139c6565b9050809150509392505050565b5f808284611d1c9190613993565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a69565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613af7565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613b85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613948565b60405180910390fd5b6120448383836128c2565b6120ad8160405180606001604052806026815260200161408c602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613ba3565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613c11565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613d2c565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613d2c565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139c6565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d98565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d98565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139c6565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613dc3565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139c6565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613df8565b90508284826128029190613e66565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613f06565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba83836040518060600160405280602581526020016140e160259139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613ba3565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613d2c565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613d98565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613f24565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613f6d565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613f98565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613f6d565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613fbf565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad919061403b565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613ba3565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613d2c565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613e66565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f74207468652053484942465f8201527f49206f776e657200000000000000000000000000000000000000000000000000602082015250565b5f61352a60278361305a565b9150613535826134d0565b604082019050919050565b5f6020820190508181035f8301526135578161351e565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f6135b8602c8361305a565b91506135c38261355e565b604082019050919050565b5f6020820190508181035f8301526135e5816135ac565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61366c60458361305a565b9150613677826135ec565b606082019050919050565b5f6020820190508181035f83015261369981613660565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136fa60268361305a565b9150613705826136a0565b604082019050919050565b5f6020820190508181035f830152613727816136ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61378860248361305a565b91506137938261372e565b604082019050919050565b5f6020820190508181035f8301526137b58161377c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61381660228361305a565b9150613821826137bc565b604082019050919050565b5f6020820190508181035f8301526138438161380a565b9050919050565b7f45524332303a207472616e736665722066726f6d2074686520534849424649205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f6138a4602c8361305a565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61393260238361305a565b915061393d826138d8565b604082019050919050565b5f6020820190508181035f83015261395f81613926565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61399d8261301f565b91506139a88361301f565b92508282019050808211156139c0576139bf613966565b5b92915050565b5f6139d08261301f565b91506139db8361301f565b92508282039050818111156139f3576139f2613966565b5b92915050565b7f536166654d6174683a20534849424649206164646974696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a5360228361305a565b9150613a5e826139f9565b604082019050919050565b5f6020820190508181035f830152613a8081613a47565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572207061697220697320615f8201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b5f613ae160388361305a565b9150613aec82613a87565b604082019050919050565b5f6020820190508181035f830152613b0e81613ad5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b6f60258361305a565b9150613b7a82613b15565b604082019050919050565b5f6020820190508181035f830152613b9c81613b63565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c0b8161312e565b92915050565b5f60208284031215613c2657613c256130fa565b5b5f613c3384828501613bfd565b91505092915050565b5f819050919050565b5f613c5f613c5a613c5584613c3c565b6131f3565b61301f565b9050919050565b613c6f81613c45565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ca78161311d565b82525050565b5f613cb88383613c9e565b60208301905092915050565b5f602082019050919050565b5f613cda82613c75565b613ce48185613c7f565b9350613cef83613c8f565b805f5b83811015613d1f578151613d068882613cad565b9750613d1183613cc4565b925050600181019050613cf2565b5085935050505092915050565b5f60a082019050613d3f5f830188613028565b613d4c6020830187613c66565b8181036040830152613d5e8186613cd0565b9050613d6d60608301856132eb565b613d7a6080830184613028565b9695505050505050565b5f81519050613d9281613158565b92915050565b5f60208284031215613dad57613dac6130fa565b5b5f613dba84828501613d84565b91505092915050565b5f606082019050613dd65f830186613028565b613de36020830185613028565b613df06040830184613028565b949350505050565b5f613e028261301f565b9150613e0d8361301f565b9250828202613e1b8161301f565b91508282048414831517613e3257613e31613966565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e708261301f565b9150613e7b8361301f565b925082613e8b57613e8a613e39565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ef060218361305a565b9150613efb82613e96565b604082019050919050565b5f6020820190508181035f830152613f1d81613ee4565b9050919050565b5f606082019050613f375f8301866132eb565b613f4460208301856132eb565b613f516040830184613028565b949350505050565b5f81519050613f6781613369565b92915050565b5f60208284031215613f8257613f816130fa565b5b5f613f8f84828501613f59565b91505092915050565b5f604082019050613fab5f8301856132eb565b613fb86020830184613028565b9392505050565b5f61010082019050613fd35f83018b6132eb565b613fe0602083018a6132eb565b613fed6040830189613028565b613ffa6060830188613028565b6140076080830187613c66565b61401460a0830186613c66565b61402160c08301856132eb565b61402e60e0830184613028565b9998505050505050505050565b5f805f60608486031215614052576140516130fa565b5b5f61405f86828701613d84565b935050602061407086828701613d84565b925050604061408186828701613d84565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722053484942464920616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a207375627472616374696f6e20534849424649206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3ca69f3a11cd0189005148764077ffce5ba9c61c39a56034e0a5492e99d990864736f6c63430008140033

Deployed Bytecode

0x60806040526004361061025f575f3560e01c80638de743b311610143578063bfc3137e116100b5578063dd62ed3e11610079578063dd62ed3e146108de578063e2f456051461091a578063f11a24d314610944578063f2fde38b1461096e578063f637434214610996578063f8326795146109c057610266565b8063bfc3137e1461080e578063c0973eed14610838578063c49b9a8014610862578063c816841b1461088a578063cfe0e619146108b457610266565b80639c1b8af5116101075780639c1b8af5146106de578063a457c2d714610708578063a9059cbb14610744578063afa4f3b214610780578063b340a954146107a8578063b62496f5146107d257610266565b80638de743b31461060e578063921369131461063857806395d89b41146106625780639a7a23d61461068c5780639ab4a445146106b457610266565b806339509351116101dc57806370a08231116101a057806370a0823114610516578063715018a6146105525780637bce5a041461056857806385141a7714610592578063871c128d146105bc5780638da5cb5b146105e457610266565b806339509351146104325780633b1cd1871461046e5780634144d9e4146104985780634a74bb02146104c2578063557ed1ba146104ec57610266565b806318160ddd1161022357806318160ddd1461034e57806323b872dd1461037857806324942a04146103b4578063313ce567146103de5780633926876d1461040857610266565b806302df64d61461026a57806306fdde031461029457806308b2a12c146102be578063095ea7b3146102e85780631694505e1461032457610266565b3661026657005b5f80fd5b348015610275575f80fd5b5061027e6109ea565b60405161028b9190613037565b60405180910390f35b34801561029f575f80fd5b506102a86109f0565b6040516102b591906130da565b60405180910390f35b3480156102c9575f80fd5b506102d2610a80565b6040516102df9190613037565b60405180910390f35b3480156102f3575f80fd5b5061030e60048036038101906103099190613182565b610a86565b60405161031b91906131da565b60405180910390f35b34801561032f575f80fd5b50610338610aa3565b604051610345919061324e565b60405180910390f35b348015610359575f80fd5b50610362610ac8565b60405161036f9190613037565b60405180910390f35b348015610383575f80fd5b5061039e60048036038101906103999190613267565b610ad1565b6040516103ab91906131da565b60405180910390f35b3480156103bf575f80fd5b506103c8610ba5565b6040516103d59190613037565b60405180910390f35b3480156103e9575f80fd5b506103f2610bab565b6040516103ff91906132d2565b60405180910390f35b348015610413575f80fd5b5061041c610bc0565b6040516104299190613037565b60405180910390f35b34801561043d575f80fd5b5061045860048036038101906104539190613182565b610bc6565b60405161046591906131da565b60405180910390f35b348015610479575f80fd5b50610482610c74565b60405161048f9190613037565b60405180910390f35b3480156104a3575f80fd5b506104ac610c7a565b6040516104b991906132fa565b60405180910390f35b3480156104cd575f80fd5b506104d6610c9f565b6040516104e391906131da565b60405180910390f35b3480156104f7575f80fd5b50610500610cb1565b60405161050d9190613037565b60405180910390f35b348015610521575f80fd5b5061053c60048036038101906105379190613313565b610cb8565b6040516105499190613037565b60405180910390f35b34801561055d575f80fd5b50610566610cfd565b005b348015610573575f80fd5b5061057c610d84565b6040516105899190613037565b60405180910390f35b34801561059d575f80fd5b506105a6610d8a565b6040516105b391906132fa565b60405180910390f35b3480156105c7575f80fd5b506105e260048036038101906105dd919061333e565b610daf565b005b3480156105ef575f80fd5b506105f8610ea9565b60405161060591906132fa565b60405180910390f35b348015610619575f80fd5b50610622610ed2565b60405161062f9190613037565b60405180910390f35b348015610643575f80fd5b5061064c610ed8565b6040516106599190613037565b60405180910390f35b34801561066d575f80fd5b50610676610ede565b60405161068391906130da565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190613393565b610f6e565b005b3480156106bf575f80fd5b506106c8611087565b6040516106d591906132fa565b60405180910390f35b3480156106e9575f80fd5b506106f26110ac565b6040516106ff9190613037565b60405180910390f35b348015610713575f80fd5b5061072e60048036038101906107299190613182565b6110b2565b60405161073b91906131da565b60405180910390f35b34801561074f575f80fd5b5061076a60048036038101906107659190613182565b61117a565b60405161077791906131da565b60405180910390f35b34801561078b575f80fd5b506107a660048036038101906107a1919061333e565b611197565b005b3480156107b3575f80fd5b506107bc61121d565b6040516107c991906133f1565b60405180910390f35b3480156107dd575f80fd5b506107f860048036038101906107f39190613313565b611242565b60405161080591906131da565b60405180910390f35b348015610819575f80fd5b5061082261125f565b60405161082f9190613037565b60405180910390f35b348015610843575f80fd5b5061084c611265565b60405161085991906132fa565b60405180910390f35b34801561086d575f80fd5b506108886004803603810190610883919061340a565b61128a565b005b348015610895575f80fd5b5061089e611322565b6040516108ab91906132fa565b60405180910390f35b3480156108bf575f80fd5b506108c8611347565b6040516108d59190613037565b60405180910390f35b3480156108e9575f80fd5b5061090460048036038101906108ff9190613435565b61134d565b6040516109119190613037565b60405180910390f35b348015610925575f80fd5b5061092e6113cf565b60405161093b9190613037565b60405180910390f35b34801561094f575f80fd5b506109586113d5565b6040516109659190613037565b60405180910390f35b348015610979575f80fd5b50610994600480360381019061098f9190613313565b6113db565b005b3480156109a1575f80fd5b506109aa6114d1565b6040516109b79190613037565b60405180910390f35b3480156109cb575f80fd5b506109d46114d7565b6040516109e19190613037565b60405180910390f35b60095481565b6060600380546109ff906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2b906134a0565b8015610a765780601f10610a4d57610100808354040283529160200191610a76565b820191905f5260205f20905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600a5481565b5f610a99610a926114dd565b84846114e4565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f610add8484846116a7565b610b9a84610ae96114dd565b610b95856040518060600160405280602f81526020016140b2602f913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b4c6114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b600190509392505050565b60105481565b5f60055f9054906101000a900460ff16905090565b60125481565b5f610c6a610bd26114dd565b84610c658560015f610be26114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b6114e4565b6001905092915050565b60145481565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5f9054906101000a900460ff1681565b5f42905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d056114dd565b73ffffffffffffffffffffffffffffffffffffffff16610d23610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7090613540565b60405180910390fd5b610d825f611d6b565b565b600d5481565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610db76114dd565b73ffffffffffffffffffffffffffffffffffffffff16610dd5610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613540565b60405180910390fd5b601b548103610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906135ce565b60405180910390fd5b601b54817f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db760405160405180910390a380601b8190555050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b600e5481565b606060048054610eed906134a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f19906134a0565b8015610f645780601f10610f3b57610100808354040283529160200191610f64565b820191905f5260205f20905b815481529060010190602001808311610f4757829003601f168201915b5050505050905090565b610f766114dd565b73ffffffffffffffffffffffffffffffffffffffff16610f94610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614610fea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe190613540565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107090613682565b60405180910390fd5b6110838282611e30565b5050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b5f6111706110be6114dd565b8461116b856040518060600160405280602581526020016141066025913960015f6110e76114dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b6114e4565b6001905092915050565b5f61118d6111866114dd565b84846116a7565b6001905092915050565b61119f6114dd565b73ffffffffffffffffffffffffffffffffffffffff166111bd610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613540565b60405180910390fd5b8060088190555050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112926114dd565b73ffffffffffffffffffffffffffffffffffffffff166112b0610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613540565b60405180910390fd5b80601c5f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b600b5481565b6113e36114dd565b73ffffffffffffffffffffffffffffffffffffffff16611401610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144e90613540565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90613710565b60405180910390fd5b6114ce81611d6b565b50565b600c5481565b60115481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115499061379e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b79061382c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169a9190613037565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611715576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170c906138ba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613948565b60405180910390fd5b5f810361179a5761179583835f611f5d565b611ca7565b5f6117a430610cb8565b90505f60085482101590508080156117c95750600760149054906101000a900460ff16155b801561181b5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561185a575061182a610ea9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118995750611869610ea9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750601c5f9054906101000a900460ff165b1561190c576001600760146101000a81548160ff0219169083151502179055506118db6013546121e6565b6118e6601154612550565b6118f1601254612731565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff161590508015611c98575f805f805f601d5f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611aa8576119a26064611994600b548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f8282546119b59190613993565b925050819055506119e460646119d66009548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f8282546119f79190613993565b92505081905550611a266064611a18600d548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611a399190613993565b92505081905550611a686064611a5a600f548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611aa181611a9384611a858789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b9450611c22565b601d5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611c2157611b1f6064611b11600c548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b93508360115f828254611b329190613993565b92505081905550611b616064611b53600a548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b92508260125f828254611b749190613993565b92505081905550611ba36064611b95600e548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b91508160135f828254611bb69190613993565b92505081905550611be56064611bd76010548c6127d690919063ffffffff16565b61284d90919063ffffffff16565b9050611c1e81611c1084611c028789611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b611d0e90919063ffffffff16565b94505b5b611c35858a61289690919063ffffffff16565b98505f811115611c6c57611c6b8b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f5d565b5b5f851115611c9257611c918b30611c8c848961289690919063ffffffff16565b611f5d565b5b50505050505b611ca3868686611f5d565b5050505b505050565b5f838311158290611cf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cea91906130da565b60405180910390fd5b505f8385611d0191906139c6565b9050809150509392505050565b5f808284611d1c9190613993565b905083811015611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613a69565b60405180910390fd5b8091505092915050565b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b801515601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613af7565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc290613b85565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612039576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203090613948565b60405180910390fd5b6120448383836128c2565b6120ad8160405180606001604052806026815260200161408c602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cac9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061213c815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d0e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121d99190613037565b60405180910390a3505050565b5f600267ffffffffffffffff81111561220257612201613ba3565b5b6040519080825280602002602001820160405280156122305781602001602082028036833780820191505090505b50905030815f8151811061224757612246613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122b7576122b6613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237f9190613c11565b73ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124875760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612455959493929190613d2c565b5f604051808303815f87803b15801561246c575f80fd5b505af115801561247e573d5f803e3d5ffd5b50505050612538565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8460195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161250a959493929190613d2c565b5f604051808303815f87803b158015612521575f80fd5b505af1158015612533573d5f803e3d5ffd5b505050505b8160135461254691906139c6565b6013819055505050565b5f61256560028361284d90919063ffffffff16565b90505f61257b828461289690919063ffffffff16565b90505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125d891906132fa565b602060405180830381865afa1580156125f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126179190613d98565b905061262383306128c7565b5f6126cf8260185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161268291906132fa565b602060405180830381865afa15801561269d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c19190613d98565b61289690919063ffffffff16565b90506126db8382612c05565b846011546126e991906139c6565b6011819055507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161272293929190613dc3565b60405180910390a15050505050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036127b5576127b081306128c7565b6127bf565b6127be81612db4565b5b806012546127cd91906139c6565b60128190555050565b5f8083036127e6575f9050612847565b5f82846127f39190613df8565b90508284826128029190613e66565b14612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990613f06565b60405180910390fd5b809150505b92915050565b5f61288e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fbe565b905092915050565b5f6128ba83836040518060600160405280602581526020016140e160259139611cac565b905092915050565b505050565b5f600267ffffffffffffffff8111156128e3576128e2613ba3565b5b6040519080825280602002602001820160405280156129115781602001602082028036833780820191505090505b50905030815f8151811061292857612927613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061299857612997613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795845f8460165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612a55959493929190613d2c565b5f604051808303815f87803b158015612a6c575f80fd5b505af1158015612a7e573d5f803e3d5ffd5b505050505f60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612afe91906132fa565b602060405180830381865afa158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190613d98565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685846040518463ffffffff1660e01b8152600401612bbe93929190613f24565b6020604051808303815f875af1158015612bda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfe9190613f6d565b5050505050565b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401612c82929190613f98565b6020604051808303815f875af1158015612c9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cc29190613f6d565b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8e337003060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518963ffffffff1660e01b8152600401612d6d989796959493929190613fbf565b6060604051808303815f875af1158015612d89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dad919061403b565b5050505050565b5f600367ffffffffffffffff811115612dd057612dcf613ba3565b5b604051908082528060200260200182016040528015612dfe5781602001602082028036833780820191505090505b50905030815f81518110612e1557612e14613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612e8557612e84613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110612ef557612ef4613bd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401612f91959493929190613d2c565b5f604051808303815f87803b158015612fa8575f80fd5b505af1925050508015612fb9575060015b505050565b5f8083118290613004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ffb91906130da565b60405180910390fd5b505f83856130129190613e66565b9050809150509392505050565b5f819050919050565b6130318161301f565b82525050565b5f60208201905061304a5f830184613028565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561308757808201518184015260208101905061306c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6130ac82613050565b6130b6818561305a565b93506130c681856020860161306a565b6130cf81613092565b840191505092915050565b5f6020820190508181035f8301526130f281846130a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613127826130fe565b9050919050565b6131378161311d565b8114613141575f80fd5b50565b5f813590506131528161312e565b92915050565b6131618161301f565b811461316b575f80fd5b50565b5f8135905061317c81613158565b92915050565b5f8060408385031215613198576131976130fa565b5b5f6131a585828601613144565b92505060206131b68582860161316e565b9150509250929050565b5f8115159050919050565b6131d4816131c0565b82525050565b5f6020820190506131ed5f8301846131cb565b92915050565b5f819050919050565b5f61321661321161320c846130fe565b6131f3565b6130fe565b9050919050565b5f613227826131fc565b9050919050565b5f6132388261321d565b9050919050565b6132488161322e565b82525050565b5f6020820190506132615f83018461323f565b92915050565b5f805f6060848603121561327e5761327d6130fa565b5b5f61328b86828701613144565b935050602061329c86828701613144565b92505060406132ad8682870161316e565b9150509250925092565b5f60ff82169050919050565b6132cc816132b7565b82525050565b5f6020820190506132e55f8301846132c3565b92915050565b6132f48161311d565b82525050565b5f60208201905061330d5f8301846132eb565b92915050565b5f60208284031215613328576133276130fa565b5b5f61333584828501613144565b91505092915050565b5f60208284031215613353576133526130fa565b5b5f6133608482850161316e565b91505092915050565b613372816131c0565b811461337c575f80fd5b50565b5f8135905061338d81613369565b92915050565b5f80604083850312156133a9576133a86130fa565b5b5f6133b685828601613144565b92505060206133c78582860161337f565b9150509250929050565b5f6133db8261321d565b9050919050565b6133eb816133d1565b82525050565b5f6020820190506134045f8301846133e2565b92915050565b5f6020828403121561341f5761341e6130fa565b5b5f61342c8482850161337f565b91505092915050565b5f806040838503121561344b5761344a6130fa565b5b5f61345885828601613144565b925050602061346985828601613144565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134b757607f821691505b6020821081036134ca576134c9613473565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f74207468652053484942465f8201527f49206f776e657200000000000000000000000000000000000000000000000000602082015250565b5f61352a60278361305a565b9150613535826134d0565b604082019050919050565b5f6020820190508181035f8301526135578161351e565b9050919050565b7f43616e6e6f742075706461746520676173466f7250726f63657373696e6720745f8201527f6f2073616d652076616c75650000000000000000000000000000000000000000602082015250565b5f6135b8602c8361305a565b91506135c38261355e565b604082019050919050565b5f6020820190508181035f8301526135e5816135ac565b9050919050565b7f5468652050616e63616b655377617020706169722063616e6e6f7420626520725f8201527f656d6f7665642066726f6d206175746f6d617465644d61726b65744d616b657260208201527f5061697273000000000000000000000000000000000000000000000000000000604082015250565b5f61366c60458361305a565b9150613677826135ec565b606082019050919050565b5f6020820190508181035f83015261369981613660565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136fa60268361305a565b9150613705826136a0565b604082019050919050565b5f6020820190508181035f830152613727816136ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61378860248361305a565b91506137938261372e565b604082019050919050565b5f6020820190508181035f8301526137b58161377c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61381660228361305a565b9150613821826137bc565b604082019050919050565b5f6020820190508181035f8301526138438161380a565b9050919050565b7f45524332303a207472616e736665722066726f6d2074686520534849424649205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f6138a4602c8361305a565b91506138af8261384a565b604082019050919050565b5f6020820190508181035f8301526138d181613898565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61393260238361305a565b915061393d826138d8565b604082019050919050565b5f6020820190508181035f83015261395f81613926565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61399d8261301f565b91506139a88361301f565b92508282019050808211156139c0576139bf613966565b5b92915050565b5f6139d08261301f565b91506139db8361301f565b92508282039050818111156139f3576139f2613966565b5b92915050565b7f536166654d6174683a20534849424649206164646974696f6e206f766572666c5f8201527f6f77000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a5360228361305a565b9150613a5e826139f9565b604082019050919050565b5f6020820190508181035f830152613a8081613a47565b9050919050565b7f4175746f6d61746564206d61726b6574206d616b6572207061697220697320615f8201527f6c72656164792073657420746f20746861742076616c75650000000000000000602082015250565b5f613ae160388361305a565b9150613aec82613a87565b604082019050919050565b5f6020820190508181035f830152613b0e81613ad5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b6f60258361305a565b9150613b7a82613b15565b604082019050919050565b5f6020820190508181035f830152613b9c81613b63565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613c0b8161312e565b92915050565b5f60208284031215613c2657613c256130fa565b5b5f613c3384828501613bfd565b91505092915050565b5f819050919050565b5f613c5f613c5a613c5584613c3c565b6131f3565b61301f565b9050919050565b613c6f81613c45565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ca78161311d565b82525050565b5f613cb88383613c9e565b60208301905092915050565b5f602082019050919050565b5f613cda82613c75565b613ce48185613c7f565b9350613cef83613c8f565b805f5b83811015613d1f578151613d068882613cad565b9750613d1183613cc4565b925050600181019050613cf2565b5085935050505092915050565b5f60a082019050613d3f5f830188613028565b613d4c6020830187613c66565b8181036040830152613d5e8186613cd0565b9050613d6d60608301856132eb565b613d7a6080830184613028565b9695505050505050565b5f81519050613d9281613158565b92915050565b5f60208284031215613dad57613dac6130fa565b5b5f613dba84828501613d84565b91505092915050565b5f606082019050613dd65f830186613028565b613de36020830185613028565b613df06040830184613028565b949350505050565b5f613e028261301f565b9150613e0d8361301f565b9250828202613e1b8161301f565b91508282048414831517613e3257613e31613966565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e708261301f565b9150613e7b8361301f565b925082613e8b57613e8a613e39565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ef060218361305a565b9150613efb82613e96565b604082019050919050565b5f6020820190508181035f830152613f1d81613ee4565b9050919050565b5f606082019050613f375f8301866132eb565b613f4460208301856132eb565b613f516040830184613028565b949350505050565b5f81519050613f6781613369565b92915050565b5f60208284031215613f8257613f816130fa565b5b5f613f8f84828501613f59565b91505092915050565b5f604082019050613fab5f8301856132eb565b613fb86020830184613028565b9392505050565b5f61010082019050613fd35f83018b6132eb565b613fe0602083018a6132eb565b613fed6040830189613028565b613ffa6060830188613028565b6140076080830187613c66565b61401460a0830186613c66565b61402160c08301856132eb565b61402e60e0830184613028565b9998505050505050505050565b5f805f60608486031215614052576140516130fa565b5b5f61405f86828701613d84565b935050602061407086828701613d84565b925050604061408186828701613d84565b915050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722053484942464920616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a207375627472616374696f6e20534849424649206f766572666c6f7745524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3ca69f3a11cd0189005148764077ffce5ba9c61c39a56034e0a5492e99d990864736f6c63430008140033

Deployed Bytecode Sourcemap

15582:10500:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15814:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5075:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15854:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7256:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15658:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7914:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16083:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6044:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16158:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8685:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16243:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16472:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16591:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1168:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6380:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;848:103;;;;;;;;;;;;;:::i;:::-;;15974:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16362:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18988:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;618:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16051:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16011:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5301:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18412:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16439:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16553:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9413:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19411:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16322:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16789:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16280:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16517:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19284:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15706:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16201:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6958:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15772:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15897:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;959:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15934:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16118:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15814;;;;:::o;5075:100::-;5129:13;5162:5;5155:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5075:100;:::o;15854:34::-;;;;:::o;7256:169::-;7339:4;7356:39;7365:12;:10;:12::i;:::-;7379:7;7388:6;7356:8;:39::i;:::-;7413:4;7406:11;;7256:169;;;;:::o;15658:41::-;;;;;;;;;;;;;:::o;6209:108::-;6270:7;6297:12;;6290:19;;6209:108;:::o;7914:362::-;8054:4;8071:36;8081:6;8089:9;8100:6;8071:9;:36::i;:::-;8118:128;8127:6;8135:12;:10;:12::i;:::-;8149:96;8187:6;8149:96;;;;;;;;;;;;;;;;;:11;:19;8161:6;8149:19;;;;;;;;;;;;;;;:33;8169:12;:10;:12::i;:::-;8149:33;;;;;;;;;;;;;;;;:37;;:96;;;;;:::i;:::-;8118:8;:128::i;:::-;8264:4;8257:11;;7914:362;;;;;:::o;16083:26::-;;;;:::o;6044:100::-;6102:5;6127:9;;;;;;;;;;;6120:16;;6044:100;:::o;16158:36::-;;;;:::o;8685:218::-;8773:4;8790:83;8799:12;:10;:12::i;:::-;8813:7;8822:50;8861:10;8822:11;:25;8834:12;:10;:12::i;:::-;8822:25;;;;;;;;;;;;;;;:34;8848:7;8822:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8790:8;:83::i;:::-;8891:4;8884:11;;8685:218;;;;:::o;16243:30::-;;;;:::o;16472:38::-;;;;;;;;;;;;;:::o;16591:40::-;;;;;;;;;;;;;:::o;1168:90::-;1208:7;1235:15;1228:22;;1168:90;:::o;6380:127::-;6454:7;6481:9;:18;6491:7;6481:18;;;;;;;;;;;;;;;;6474:25;;6380:127;;;:::o;848:103::-;764:12;:10;:12::i;:::-;753:23;;:7;:5;:7::i;:::-;:23;;;745:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;913:30:::1;940:1;913:18;:30::i;:::-;848:103::o:0;15974:30::-;;;;:::o;16362:70::-;;;;;;;;;;;;;:::o;18988:286::-;764:12;:10;:12::i;:::-;753:23;;:7;:5;:7::i;:::-;:23;;;745:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19086:16:::1;;19074:8;:28:::0;19066:95:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19211:16;;19201:8;19177:51;;;;;;;;;;19258:8;19239:16;:27;;;;18988:286:::0;:::o;618:87::-;664:7;691:6;;;;;;;;;;;684:13;;618:87;:::o;16051:25::-;;;;:::o;16011:31::-;;;;:::o;5301:104::-;5357:13;5390:7;5383:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5301:104;:::o;18412:252::-;764:12;:10;:12::i;:::-;753:23;;:7;:5;:7::i;:::-;:23;;;745:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18519:11:::1;;;;;;;;;;;18511:19;;:4;:19;;::::0;18503:101:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18615:41;18644:4;18650:5;18615:28;:41::i;:::-;18412:252:::0;;:::o;16439:26::-;;;;;;;;;;;;;:::o;16553:31::-;;;;:::o;9413:269::-;9506:4;9523:129;9532:12;:10;:12::i;:::-;9546:7;9555:96;9594:15;9555:96;;;;;;;;;;;;;;;;;:11;:25;9567:12;:10;:12::i;:::-;9555:25;;;;;;;;;;;;;;;:34;9581:7;9555:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9523:8;:129::i;:::-;9670:4;9663:11;;9413:269;;;;:::o;6720:175::-;6806:4;6823:42;6833:12;:10;:12::i;:::-;6847:9;6858:6;6823:9;:42::i;:::-;6883:4;6876:11;;6720:175;;;;:::o;19411:110::-;764:12;:10;:12::i;:::-;753:23;;:7;:5;:7::i;:::-;:23;;;745:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19507:6:::1;19486:18;:27;;;;19411:110:::0;:::o;16322:33::-;;;;;;;;;;;;;:::o;16789:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16280:33::-;;;;:::o;16517:29::-;;;;;;;;;;;;;:::o;19284:117::-;764:12;:10;:12::i;:::-;753:23;;:7;:5;:7::i;:::-;:23;;;745:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19385:8:::1;19361:21;;:32;;;;;;;;;;;;;;;;;;19284:117:::0;:::o;15706:27::-;;;;;;;;;;;;;:::o;16201:33::-;;;;:::o;6958:151::-;7047:7;7074:11;:18;7086:5;7074:18;;;;;;;;;;;;;;;:27;7093:7;7074:27;;;;;;;;;;;;;;;;7067:34;;6958:151;;;;:::o;15772:33::-;;;;:::o;15897:30::-;;;;:::o;959:201::-;764:12;:10;:12::i;:::-;753:23;;:7;:5;:7::i;:::-;:23;;;745:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;1068:1:::1;1048:22;;:8;:22;;::::0;1040:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1124:28;1143:8;1124:18;:28::i;:::-;959:201:::0;:::o;15934:31::-;;;;:::o;16118:33::-;;;;:::o;164:98::-;217:7;244:10;237:17;;164:98;:::o;12609:380::-;12762:1;12745:19;;:5;:19;;;12737:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12843:1;12824:21;;:7;:21;;;12816:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12927:6;12897:11;:18;12909:5;12897:18;;;;;;;;;;;;;;;:27;12916:7;12897:27;;;;;;;;;;;;;;;:36;;;;12965:7;12949:32;;12958:5;12949:32;;;12974:6;12949:32;;;;;;:::i;:::-;;;;;;;;12609:380;;;:::o;19535:2478::-;19683:1;19667:18;;:4;:18;;;19659:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19767:1;19753:16;;:2;:16;;;19745:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19836:1;19826:6;:11;19822:93;;19854:28;19870:4;19876:2;19880:1;19854:15;:28::i;:::-;19897:7;;19822:93;19927:28;19958:24;19976:4;19958:9;:24::i;:::-;19927:55;;19995:12;20034:18;;20010:20;:42;;19995:57;;20069:7;:33;;;;;20094:8;;;;;;;;;;;20093:9;20069:33;:81;;;;;20119:25;:31;20145:4;20119:31;;;;;;;;;;;;;;;;;;;;;;;;;20069:81;:113;;;;;20175:7;:5;:7::i;:::-;20167:15;;:4;:15;;;;20069:113;:143;;;;;20205:7;:5;:7::i;:::-;20199:13;;:2;:13;;;;20069:143;:181;;;;;20229:21;;;;;;;;;;;20069:181;20065:432;;;20288:4;20277:8;;:15;;;;;;;;;;;;;;;;;;20307:40;20328:18;;20307:20;:40::i;:::-;20362:34;20377:18;;20362:14;:34::i;:::-;20411:43;20432:21;;20411:20;:43::i;:::-;20480:5;20469:8;;:16;;;;;;;;;;;;;;;;;;20065:432;20511:12;20527:8;;;;;;;;;;;20526:9;20511:24;;20551:7;20548:1408;;;20575:12;20602;20642;20680;20720;20760:25;:31;20786:4;20760:31;;;;;;;;;;;;;;;;;;;;;;;;;20757:997;;;20818:36;20850:3;20818:27;20829:15;;20818:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;20811:43;;20895:4;20873:18;;:26;;;;;;;:::i;:::-;;;;;;;;20925:39;20960:3;20925:30;20936:18;;20925:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;20918:46;;21008:4;20983:21;;:29;;;;;;;:::i;:::-;;;;;;;;21038:36;21070:3;21038:27;21049:15;;21038:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;21031:43;;21115:4;21093:18;;:26;;;;;;;:::i;:::-;;;;;;;;21145:31;21172:3;21145:22;21156:10;;21145:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;21138:38;;21202:34;21231:4;21202:24;21221:4;21202:14;21211:4;21202;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21195:41;;20757:997;;;21260:25;:29;21286:2;21260:29;;;;;;;;;;;;;;;;;;;;;;;;;21257:497;;;21316:37;21349:3;21316:28;21327:16;;21316:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21309:44;;21394:4;21372:18;;:26;;;;;;;:::i;:::-;;;;;;;;21424:40;21460:3;21424:31;21435:19;;21424:6;:10;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;21417:47;;21508:4;21483:21;;:29;;;;;;;:::i;:::-;;;;;;;;21538:37;21571:3;21538:28;21549:16;;21538:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;21531:44;;21616:4;21594:18;;:26;;;;;;;:::i;:::-;;;;;;;;21646:32;21674:3;21646:23;21657:11;;21646:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;21639:39;;21704:34;21733:4;21704:24;21723:4;21704:14;21713:4;21704;:8;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;21697:41;;21257:497;20757:997;21781:16;21792:4;21781:6;:10;;:16;;;;:::i;:::-;21772:25;;21822:1;21815:4;:8;21812:52;;;21825:39;21841:4;21847:10;;;;;;;;;;;21859:4;21825:15;:39::i;:::-;21812:52;21889:1;21882:4;:8;21879:65;;;21892:52;21908:4;21922;21929:14;21938:4;21929;:8;;:14;;;;:::i;:::-;21892:15;:52::i;:::-;21879:65;20560:1396;;;;;20548:1408;21970:33;21986:4;21992:2;21996:6;21970:15;:33::i;:::-;19648:2365;;;19535:2478;;;;:::o;2773:192::-;2859:7;2892:1;2887;:6;;2895:12;2879:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2919:9;2935:1;2931;:5;;;;:::i;:::-;2919:17;;2956:1;2949:8;;;2773:192;;;;;:::o;2426:188::-;2484:7;2504:9;2520:1;2516;:5;;;;:::i;:::-;2504:17;;2545:1;2540;:6;;2532:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;2605:1;2598:8;;;2426:188;;;;:::o;1266:196::-;1340:16;1359:6;;;;;;;;;;;1340:25;;1385:8;1376:6;;:17;;;;;;;;;;;;;;;;;;1445:8;1409:45;;1430:8;1409:45;;;;;;;;;;;;1329:133;1266:196;:::o;18672:306::-;18798:5;18763:40;;:25;:31;18789:4;18763:31;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;18755:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;18909:5;18875:25;:31;18901:4;18875:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18964:5;18930:40;;18958:4;18930:40;;;;;;;;;;;;18672:306;;:::o;10172:573::-;10330:1;10312:20;;:6;:20;;;10304:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10414:1;10393:23;;:9;:23;;;10385:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10469:47;10490:6;10498:9;10509:6;10469:20;:47::i;:::-;10549:71;10571:6;10549:71;;;;;;;;;;;;;;;;;:9;:17;10559:6;10549:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;10529:9;:17;10539:6;10529:17;;;;;;;;;;;;;;;:91;;;;10654:32;10679:6;10654:9;:20;10664:9;10654:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10631:9;:20;10641:9;10631:20;;;;;;;;;;;;;;;:55;;;;10719:9;10702:35;;10711:6;10702:35;;;10730:6;10702:35;;;;;;:::i;:::-;;;;;;;;10172:573;;;:::o;22025:993::-;22150:21;22188:1;22174:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22150:40;;22219:4;22201;22206:1;22201:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22245:11;;;;;;;;;;;22235:4;22240:1;22235:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22285:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22270:37;;:11;;;;;;;;;;;:37;;;22267:685;;22353:15;;;;;;;;;;;:66;;;22438:6;22463:1;22511:4;22534:23;;;;;;;;;;;22592:15;22353:269;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22267:685;;;22683:15;;;;;;;;;;;:69;;;22771:6;22796:1;22845:4;22868:23;;;;;;;;;;;22910:15;22683:257;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22267:685;23004:6;22983:18;;:27;;;;:::i;:::-;22962:18;:48;;;;22079:939;22025:993;:::o;23026:779::-;23135:12;23150:13;23161:1;23150:6;:10;;:13;;;;:::i;:::-;23135:28;;23174:17;23194:16;23205:4;23194:6;:10;;:16;;;;:::i;:::-;23174:36;;23223:22;23255:11;;;;;;;;;;;23248:29;;;23286:4;23248:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23223:69;;23337:37;23355:4;23368;23337:17;:37::i;:::-;23505:18;23526:64;23575:14;23533:11;;;;;;;;;;;23526:29;;;23564:4;23526:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;:64;;;;:::i;:::-;23505:85;;23640:39;23657:9;23668:10;23640:16;:39::i;:::-;23732:6;23711:18;;:27;;;;:::i;:::-;23690:18;:48;;;;23754:43;23769:4;23775:10;23787:9;23754:43;;;;;;;;:::i;:::-;;;;;;;;23074:731;;;;23026:779;:::o;25706:369::-;25863:14;;;;;;;;;;;25848:29;;:11;;;;;;;;;;;:29;;;25845:158;;25893:39;25911:6;25926:4;25893:17;:39::i;:::-;25845:158;;;25963:28;25984:6;25963:20;:28::i;:::-;25845:158;26061:6;26037:21;;:30;;;;:::i;:::-;26013:21;:54;;;;25706:369;:::o;2973:471::-;3031:7;3281:1;3276;:6;3272:47;;3306:1;3299:8;;;;3272:47;3331:9;3347:1;3343;:5;;;;:::i;:::-;3331:17;;3376:1;3371;3367;:5;;;;:::i;:::-;:10;3359:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3435:1;3428:8;;;2973:471;;;;;:::o;3452:132::-;3510:7;3537:39;3541:1;3544;3537:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3530:46;;3452:132;;;;:::o;2622:143::-;2680:7;2707:50;2711:1;2714;2707:50;;;;;;;;;;;;;;;;;:3;:50::i;:::-;2700:57;;2622:143;;;;:::o;13592:125::-;;;;:::o;24385:689::-;24525:21;24563:1;24549:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24525:40;;24594:4;24576;24581:1;24576:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24620:11;;;;;;;;;;;24610:4;24615:1;24610:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;24668:15;;;;;;;;;;;:69;;;24752:11;24778:1;24823:4;24850:13;;;;;;;;;;;24879:15;24668:237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24916:14;24940:11;;;;;;;;;;;24933:29;;;24971:13;;;;;;;;;;;24933:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24916:70;;25004:11;;;;;;;;;;;24997:32;;;25038:13;;;;;;;;;;;25053:4;25059:6;24997:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24454:620;;24385:689;;:::o;23813:564::-;23973:11;;;;;;;;;;;23966:27;;;24002:15;;;;;;;;;;;24019:10;23966:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24071:15;;;;;;;;;;;:28;;;24122:4;24142:11;;;;;;;;;;;24168;24194:10;24219:1;24262;24305:23;;;;;;;;;;;24343:15;24071:298;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;23813:564;;:::o;25082:616::-;25223:21;25261:1;25247:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25223:40;;25292:4;25274;25279:1;25274:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25318:11;;;;;;;;;;;25308:4;25313:1;25308:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;25350:14;;;;;;;;;;;25340:4;25345:1;25340:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;25418:15;;;;;;;;;;;:69;;;25506:11;25536:1;25585:4;25616;25640:15;25418:252;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25401:288;25141:557;25082:616;:::o;3592:278::-;3678:7;3710:1;3706;:5;3713:12;3698:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3737:9;3753:1;3749;:5;;;;:::i;:::-;3737:17;;3861:1;3854:8;;;3592:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:147::-;7654:9;7687:37;7718:5;7687:37;:::i;:::-;7674:50;;7583:147;;;:::o;7736:173::-;7844:58;7896:5;7844:58;:::i;:::-;7839:3;7832:71;7736:173;;:::o;7915:264::-;8029:4;8067:2;8056:9;8052:18;8044:26;;8080:92;8169:1;8158:9;8154:17;8145:6;8080:92;:::i;:::-;7915:264;;;;:::o;8185:323::-;8241:6;8290:2;8278:9;8269:7;8265:23;8261:32;8258:119;;;8296:79;;:::i;:::-;8258:119;8416:1;8441:50;8483:7;8474:6;8463:9;8459:22;8441:50;:::i;:::-;8431:60;;8387:114;8185:323;;;;:::o;8514:474::-;8582:6;8590;8639:2;8627:9;8618:7;8614:23;8610:32;8607:119;;;8645:79;;:::i;:::-;8607:119;8765:1;8790:53;8835:7;8826:6;8815:9;8811:22;8790:53;:::i;:::-;8780:63;;8736:117;8892:2;8918:53;8963:7;8954:6;8943:9;8939:22;8918:53;:::i;:::-;8908:63;;8863:118;8514:474;;;;;:::o;8994:180::-;9042:77;9039:1;9032:88;9139:4;9136:1;9129:15;9163:4;9160:1;9153:15;9180:320;9224:6;9261:1;9255:4;9251:12;9241:22;;9308:1;9302:4;9298:12;9329:18;9319:81;;9385:4;9377:6;9373:17;9363:27;;9319:81;9447:2;9439:6;9436:14;9416:18;9413:38;9410:84;;9466:18;;:::i;:::-;9410:84;9231:269;9180:320;;;:::o;9506:226::-;9646:34;9642:1;9634:6;9630:14;9623:58;9715:9;9710:2;9702:6;9698:15;9691:34;9506:226;:::o;9738:366::-;9880:3;9901:67;9965:2;9960:3;9901:67;:::i;:::-;9894:74;;9977:93;10066:3;9977:93;:::i;:::-;10095:2;10090:3;10086:12;10079:19;;9738:366;;;:::o;10110:419::-;10276:4;10314:2;10303:9;10299:18;10291:26;;10363:9;10357:4;10353:20;10349:1;10338:9;10334:17;10327:47;10391:131;10517:4;10391:131;:::i;:::-;10383:139;;10110:419;;;:::o;10535:231::-;10675:34;10671:1;10663:6;10659:14;10652:58;10744:14;10739:2;10731:6;10727:15;10720:39;10535:231;:::o;10772:366::-;10914:3;10935:67;10999:2;10994:3;10935:67;:::i;:::-;10928:74;;11011:93;11100:3;11011:93;:::i;:::-;11129:2;11124:3;11120:12;11113:19;;10772:366;;;:::o;11144:419::-;11310:4;11348:2;11337:9;11333:18;11325:26;;11397:9;11391:4;11387:20;11383:1;11372:9;11368:17;11361:47;11425:131;11551:4;11425:131;:::i;:::-;11417:139;;11144:419;;;:::o;11569:293::-;11709:34;11705:1;11697:6;11693:14;11686:58;11778:34;11773:2;11765:6;11761:15;11754:59;11847:7;11842:2;11834:6;11830:15;11823:32;11569:293;:::o;11868:366::-;12010:3;12031:67;12095:2;12090:3;12031:67;:::i;:::-;12024:74;;12107:93;12196:3;12107:93;:::i;:::-;12225:2;12220:3;12216:12;12209:19;;11868:366;;;:::o;12240:419::-;12406:4;12444:2;12433:9;12429:18;12421:26;;12493:9;12487:4;12483:20;12479:1;12468:9;12464:17;12457:47;12521:131;12647:4;12521:131;:::i;:::-;12513:139;;12240:419;;;:::o;12665:225::-;12805:34;12801:1;12793:6;12789:14;12782:58;12874:8;12869:2;12861:6;12857:15;12850:33;12665:225;:::o;12896:366::-;13038:3;13059:67;13123:2;13118:3;13059:67;:::i;:::-;13052:74;;13135:93;13224:3;13135:93;:::i;:::-;13253:2;13248:3;13244:12;13237:19;;12896:366;;;:::o;13268:419::-;13434:4;13472:2;13461:9;13457:18;13449:26;;13521:9;13515:4;13511:20;13507:1;13496:9;13492:17;13485:47;13549:131;13675:4;13549:131;:::i;:::-;13541:139;;13268:419;;;:::o;13693:223::-;13833:34;13829:1;13821:6;13817:14;13810:58;13902:6;13897:2;13889:6;13885:15;13878:31;13693:223;:::o;13922:366::-;14064:3;14085:67;14149:2;14144:3;14085:67;:::i;:::-;14078:74;;14161:93;14250:3;14161:93;:::i;:::-;14279:2;14274:3;14270:12;14263:19;;13922:366;;;:::o;14294:419::-;14460:4;14498:2;14487:9;14483:18;14475:26;;14547:9;14541:4;14537:20;14533:1;14522:9;14518:17;14511:47;14575:131;14701:4;14575:131;:::i;:::-;14567:139;;14294:419;;;:::o;14719:221::-;14859:34;14855:1;14847:6;14843:14;14836:58;14928:4;14923:2;14915:6;14911:15;14904:29;14719:221;:::o;14946:366::-;15088:3;15109:67;15173:2;15168:3;15109:67;:::i;:::-;15102:74;;15185:93;15274:3;15185:93;:::i;:::-;15303:2;15298:3;15294:12;15287:19;;14946:366;;;:::o;15318:419::-;15484:4;15522:2;15511:9;15507:18;15499:26;;15571:9;15565:4;15561:20;15557:1;15546:9;15542:17;15535:47;15599:131;15725:4;15599:131;:::i;:::-;15591:139;;15318:419;;;:::o;15743:231::-;15883:34;15879:1;15871:6;15867:14;15860:58;15952:14;15947:2;15939:6;15935:15;15928:39;15743:231;:::o;15980:366::-;16122:3;16143:67;16207:2;16202:3;16143:67;:::i;:::-;16136:74;;16219:93;16308:3;16219:93;:::i;:::-;16337:2;16332:3;16328:12;16321:19;;15980:366;;;:::o;16352:419::-;16518:4;16556:2;16545:9;16541:18;16533:26;;16605:9;16599:4;16595:20;16591:1;16580:9;16576:17;16569:47;16633:131;16759:4;16633:131;:::i;:::-;16625:139;;16352:419;;;:::o;16777:222::-;16917:34;16913:1;16905:6;16901:14;16894:58;16986:5;16981:2;16973:6;16969:15;16962:30;16777:222;:::o;17005:366::-;17147:3;17168:67;17232:2;17227:3;17168:67;:::i;:::-;17161:74;;17244:93;17333:3;17244:93;:::i;:::-;17362:2;17357:3;17353:12;17346:19;;17005:366;;;:::o;17377:419::-;17543:4;17581:2;17570:9;17566:18;17558:26;;17630:9;17624:4;17620:20;17616:1;17605:9;17601:17;17594:47;17658:131;17784:4;17658:131;:::i;:::-;17650:139;;17377:419;;;:::o;17802:180::-;17850:77;17847:1;17840:88;17947:4;17944:1;17937:15;17971:4;17968:1;17961:15;17988:191;18028:3;18047:20;18065:1;18047:20;:::i;:::-;18042:25;;18081:20;18099:1;18081:20;:::i;:::-;18076:25;;18124:1;18121;18117:9;18110:16;;18145:3;18142:1;18139:10;18136:36;;;18152:18;;:::i;:::-;18136:36;17988:191;;;;:::o;18185:194::-;18225:4;18245:20;18263:1;18245:20;:::i;:::-;18240:25;;18279:20;18297:1;18279:20;:::i;:::-;18274:25;;18323:1;18320;18316:9;18308:17;;18347:1;18341:4;18338:11;18335:37;;;18352:18;;:::i;:::-;18335:37;18185:194;;;;:::o;18385:221::-;18525:34;18521:1;18513:6;18509:14;18502:58;18594:4;18589:2;18581:6;18577:15;18570:29;18385:221;:::o;18612:366::-;18754:3;18775:67;18839:2;18834:3;18775:67;:::i;:::-;18768:74;;18851:93;18940:3;18851:93;:::i;:::-;18969:2;18964:3;18960:12;18953:19;;18612:366;;;:::o;18984:419::-;19150:4;19188:2;19177:9;19173:18;19165:26;;19237:9;19231:4;19227:20;19223:1;19212:9;19208:17;19201:47;19265:131;19391:4;19265:131;:::i;:::-;19257:139;;18984:419;;;:::o;19409:243::-;19549:34;19545:1;19537:6;19533:14;19526:58;19618:26;19613:2;19605:6;19601:15;19594:51;19409:243;:::o;19658:366::-;19800:3;19821:67;19885:2;19880:3;19821:67;:::i;:::-;19814:74;;19897:93;19986:3;19897:93;:::i;:::-;20015:2;20010:3;20006:12;19999:19;;19658:366;;;:::o;20030:419::-;20196:4;20234:2;20223:9;20219:18;20211:26;;20283:9;20277:4;20273:20;20269:1;20258:9;20254:17;20247:47;20311:131;20437:4;20311:131;:::i;:::-;20303:139;;20030:419;;;:::o;20455:224::-;20595:34;20591:1;20583:6;20579:14;20572:58;20664:7;20659:2;20651:6;20647:15;20640:32;20455:224;:::o;20685:366::-;20827:3;20848:67;20912:2;20907:3;20848:67;:::i;:::-;20841:74;;20924:93;21013:3;20924:93;:::i;:::-;21042:2;21037:3;21033:12;21026:19;;20685:366;;;:::o;21057:419::-;21223:4;21261:2;21250:9;21246:18;21238:26;;21310:9;21304:4;21300:20;21296:1;21285:9;21281:17;21274:47;21338:131;21464:4;21338:131;:::i;:::-;21330:139;;21057:419;;;:::o;21482:180::-;21530:77;21527:1;21520:88;21627:4;21624:1;21617:15;21651:4;21648:1;21641:15;21668:180;21716:77;21713:1;21706:88;21813:4;21810:1;21803:15;21837:4;21834:1;21827:15;21854:143;21911:5;21942:6;21936:13;21927:22;;21958:33;21985:5;21958:33;:::i;:::-;21854:143;;;;:::o;22003:351::-;22073:6;22122:2;22110:9;22101:7;22097:23;22093:32;22090:119;;;22128:79;;:::i;:::-;22090:119;22248:1;22273:64;22329:7;22320:6;22309:9;22305:22;22273:64;:::i;:::-;22263:74;;22219:128;22003:351;;;;:::o;22360:85::-;22405:7;22434:5;22423:16;;22360:85;;;:::o;22451:158::-;22509:9;22542:61;22560:42;22569:32;22595:5;22569:32;:::i;:::-;22560:42;:::i;:::-;22542:61;:::i;:::-;22529:74;;22451:158;;;:::o;22615:147::-;22710:45;22749:5;22710:45;:::i;:::-;22705:3;22698:58;22615:147;;:::o;22768:114::-;22835:6;22869:5;22863:12;22853:22;;22768:114;;;:::o;22888:184::-;22987:11;23021:6;23016:3;23009:19;23061:4;23056:3;23052:14;23037:29;;22888:184;;;;:::o;23078:132::-;23145:4;23168:3;23160:11;;23198:4;23193:3;23189:14;23181:22;;23078:132;;;:::o;23216:108::-;23293:24;23311:5;23293:24;:::i;:::-;23288:3;23281:37;23216:108;;:::o;23330:179::-;23399:10;23420:46;23462:3;23454:6;23420:46;:::i;:::-;23498:4;23493:3;23489:14;23475:28;;23330:179;;;;:::o;23515:113::-;23585:4;23617;23612:3;23608:14;23600:22;;23515:113;;;:::o;23664:732::-;23783:3;23812:54;23860:5;23812:54;:::i;:::-;23882:86;23961:6;23956:3;23882:86;:::i;:::-;23875:93;;23992:56;24042:5;23992:56;:::i;:::-;24071:7;24102:1;24087:284;24112:6;24109:1;24106:13;24087:284;;;24188:6;24182:13;24215:63;24274:3;24259:13;24215:63;:::i;:::-;24208:70;;24301:60;24354:6;24301:60;:::i;:::-;24291:70;;24147:224;24134:1;24131;24127:9;24122:14;;24087:284;;;24091:14;24387:3;24380:10;;23788:608;;;23664:732;;;;:::o;24402:831::-;24665:4;24703:3;24692:9;24688:19;24680:27;;24717:71;24785:1;24774:9;24770:17;24761:6;24717:71;:::i;:::-;24798:80;24874:2;24863:9;24859:18;24850:6;24798:80;:::i;:::-;24925:9;24919:4;24915:20;24910:2;24899:9;24895:18;24888:48;24953:108;25056:4;25047:6;24953:108;:::i;:::-;24945:116;;25071:72;25139:2;25128:9;25124:18;25115:6;25071:72;:::i;:::-;25153:73;25221:3;25210:9;25206:19;25197:6;25153:73;:::i;:::-;24402:831;;;;;;;;:::o;25239:143::-;25296:5;25327:6;25321:13;25312:22;;25343:33;25370:5;25343:33;:::i;:::-;25239:143;;;;:::o;25388:351::-;25458:6;25507:2;25495:9;25486:7;25482:23;25478:32;25475:119;;;25513:79;;:::i;:::-;25475:119;25633:1;25658:64;25714:7;25705:6;25694:9;25690:22;25658:64;:::i;:::-;25648:74;;25604:128;25388:351;;;;:::o;25745:442::-;25894:4;25932:2;25921:9;25917:18;25909:26;;25945:71;26013:1;26002:9;25998:17;25989:6;25945:71;:::i;:::-;26026:72;26094:2;26083:9;26079:18;26070:6;26026:72;:::i;:::-;26108;26176:2;26165:9;26161:18;26152:6;26108:72;:::i;:::-;25745:442;;;;;;:::o;26193:410::-;26233:7;26256:20;26274:1;26256:20;:::i;:::-;26251:25;;26290:20;26308:1;26290:20;:::i;:::-;26285:25;;26345:1;26342;26338:9;26367:30;26385:11;26367:30;:::i;:::-;26356:41;;26546:1;26537:7;26533:15;26530:1;26527:22;26507:1;26500:9;26480:83;26457:139;;26576:18;;:::i;:::-;26457:139;26241:362;26193:410;;;;:::o;26609:180::-;26657:77;26654:1;26647:88;26754:4;26751:1;26744:15;26778:4;26775:1;26768:15;26795:185;26835:1;26852:20;26870:1;26852:20;:::i;:::-;26847:25;;26886:20;26904:1;26886:20;:::i;:::-;26881:25;;26925:1;26915:35;;26930:18;;:::i;:::-;26915:35;26972:1;26969;26965:9;26960:14;;26795:185;;;;:::o;26986:220::-;27126:34;27122:1;27114:6;27110:14;27103:58;27195:3;27190:2;27182:6;27178:15;27171:28;26986:220;:::o;27212:366::-;27354:3;27375:67;27439:2;27434:3;27375:67;:::i;:::-;27368:74;;27451:93;27540:3;27451:93;:::i;:::-;27569:2;27564:3;27560:12;27553:19;;27212:366;;;:::o;27584:419::-;27750:4;27788:2;27777:9;27773:18;27765:26;;27837:9;27831:4;27827:20;27823:1;27812:9;27808:17;27801:47;27865:131;27991:4;27865:131;:::i;:::-;27857:139;;27584:419;;;:::o;28009:442::-;28158:4;28196:2;28185:9;28181:18;28173:26;;28209:71;28277:1;28266:9;28262:17;28253:6;28209:71;:::i;:::-;28290:72;28358:2;28347:9;28343:18;28334:6;28290:72;:::i;:::-;28372;28440:2;28429:9;28425:18;28416:6;28372:72;:::i;:::-;28009:442;;;;;;:::o;28457:137::-;28511:5;28542:6;28536:13;28527:22;;28558:30;28582:5;28558:30;:::i;:::-;28457:137;;;;:::o;28600:345::-;28667:6;28716:2;28704:9;28695:7;28691:23;28687:32;28684:119;;;28722:79;;:::i;:::-;28684:119;28842:1;28867:61;28920:7;28911:6;28900:9;28896:22;28867:61;:::i;:::-;28857:71;;28813:125;28600:345;;;;:::o;28951:332::-;29072:4;29110:2;29099:9;29095:18;29087:26;;29123:71;29191:1;29180:9;29176:17;29167:6;29123:71;:::i;:::-;29204:72;29272:2;29261:9;29257:18;29248:6;29204:72;:::i;:::-;28951:332;;;;;:::o;29289:1029::-;29594:4;29632:3;29621:9;29617:19;29609:27;;29646:71;29714:1;29703:9;29699:17;29690:6;29646:71;:::i;:::-;29727:72;29795:2;29784:9;29780:18;29771:6;29727:72;:::i;:::-;29809;29877:2;29866:9;29862:18;29853:6;29809:72;:::i;:::-;29891;29959:2;29948:9;29944:18;29935:6;29891:72;:::i;:::-;29973:81;30049:3;30038:9;30034:19;30025:6;29973:81;:::i;:::-;30064;30140:3;30129:9;30125:19;30116:6;30064:81;:::i;:::-;30155:73;30223:3;30212:9;30208:19;30199:6;30155:73;:::i;:::-;30238;30306:3;30295:9;30291:19;30282:6;30238:73;:::i;:::-;29289:1029;;;;;;;;;;;:::o;30324:663::-;30412:6;30420;30428;30477:2;30465:9;30456:7;30452:23;30448:32;30445:119;;;30483:79;;:::i;:::-;30445:119;30603:1;30628:64;30684:7;30675:6;30664:9;30660:22;30628:64;:::i;:::-;30618:74;;30574:128;30741:2;30767:64;30823:7;30814:6;30803:9;30799:22;30767:64;:::i;:::-;30757:74;;30712:129;30880:2;30906:64;30962:7;30953:6;30942:9;30938:22;30906:64;:::i;:::-;30896:74;;30851:129;30324:663;;;;;:::o

Swarm Source

ipfs://b3ca69f3a11cd0189005148764077ffce5ba9c61c39a56034e0a5492e99d9908
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.