ETH Price: $3,487.17 (+0.74%)
Gas: 5 Gwei

Token

FusionBot (FUSION)
 

Overview

Max Total Supply

999,941.5 FUSION

Holders

738

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 FUSION

Value
$0.00
0x9859485c6f6cfe21ed5be143051725d114a8a721
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:
FusionBot

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: FusionBot.sol
/*

░█████╗░██╗██████╗░██████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░░██╗░██████╗██╗░█████╗░███╗░░██╗
██╔══██╗██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝██║░░░██║██╔════╝██║██╔══██╗████╗░██║
███████║██║██████╔╝██║░░██║██████╔╝██║░░██║██████╔╝  █████╗░░██║░░░██║╚█████╗░██║██║░░██║██╔██╗██║
██╔══██║██║██╔══██╗██║░░██║██╔══██╗██║░░██║██╔═══╝░  ██╔══╝░░██║░░░██║░╚═══██╗██║██║░░██║██║╚████║
██║░░██║██║██║░░██║██████╔╝██║░░██║╚█████╔╝██║░░░░░  ██║░░░░░╚██████╔╝██████╔╝██║╚█████╔╝██║░╚███║
╚═╝░░╚═╝╚═╝╚═╝░░╚═╝╚═════╝░╚═╝░░╚═╝░╚════╝░╚═╝░░░░░  ╚═╝░░░░░░╚═════╝░╚═════╝░╚═╝░╚════╝░╚═╝░░╚══╝

                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⠀⠀⠀⠀⠀⢀⣀⣠⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⢀⣾⡟⣉⠩⠬⣙⡛⠻⣦⣄⠻⢟⣋⡉⣬⢍⠻⢦⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⢸⡏⠼⠉⠀⠀⣠⣌⡛⠶⣌⡻⢦⣀⠀⠀⠈⣿⠄⡇⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⢸⣇⢣⠀⣰⣿⠟⣽⠇⠀⠀⠑⢶⣝⢷⠀⢀⣿⠁⡇⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⢿⣾⣾⡟⣴⠟⠁⣠⣦⣦⡀⠀⠙⢷⡟⣼⠏⣼⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⢠⣿⢋⡘⠁⠀⠀⣿⠀⠀⣹⠄⠀⢠⣿⠟⣼⠇⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⢀⣿⠇⡟⣽⠗⣀⠀⠈⠛⠚⠉⠀⣴⡿⢋⠾⣿⣷⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⢸⡇⠸⠀⠈⢷⡌⠳⣦⠀⠀⣴⡿⢋⡴⠋⠀⣿⡌⡇⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⢹⡇⢧⠀⠀⠀⢈⠲⣮⡛⢷⣬⣛⠋⠀⠀⣀⣿⠇⡄⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠻⣄⠛⠻⠟⢛⣻⣦⠉⠷⣦⣙⡛⠟⠟⠛⣉⡾⠁⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠈⠉⠀⠀⠀⠀⠀⠀⠉⠉⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                                    ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "./Ownable.sol";
import "./SafeMath.sol";
import "./IDEXFactory.sol";
import "./IDEXRouter.sol";
import "./IERC20.sol";

contract FusionBot is IERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    uint256 _mintSupply = 400_000 * (10 ** _decimals);

    string constant _name = "FusionBot";
    string constant _symbol = "FUSION";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 600_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 3) / 100;     // 3%

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

    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isTxLimitExempt;
    mapping(address => uint256) mintAllowance;

    uint256 liquidityFee = 0;
    uint256 marketingFee = 50;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 1000;
    bool isMinting = false;

    address public marketingFeeReceiver = 0xE2d97CF9B2c792f14AbD6C60EdfAF3081A053a27;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 20; // 0.2%
    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier minting() {
        require(isMinting, "Minting is not started yet!");
        _;
    }

    constructor () Ownable(msg.sender) {
        turnMF(true);
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[0xE2d97CF9B2c792f14AbD6C60EdfAF3081A053a27] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0xE2d97CF9B2c792f14AbD6C60EdfAF3081A053a27] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable {}

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

    function decimals() external pure override returns (uint8) {return _decimals;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function name() external pure override returns (string memory) {return _name;}

    function getOwner() external view override returns (address) {return owner;}

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

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

    function accountMintAllowance(address minter) external view returns (uint256) {return mintAllowance[minter];}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }if (shouldSwapBack()) {
            swapBack();
        }

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

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value : amountETHMarketing, gas : 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value : amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function clearStuckTBalance() external {
        _basicTransfer(address(this), marketingFeeReceiver, balanceOf(address(this)));
    }

    function setSwapThreshold(uint256 _swapThreshold) external onlyOwner {
        swapThreshold = _totalSupply / 100000 * _swapThreshold;
    }

    function increaseMintAllowance(address minter, uint256 amount) external onlyOwner returns (uint256) {
        require(18_000 * (10 ** _decimals) > amount, "Maximum mint amount is 18.000 $FUSION");
        mintAllowance[minter] = mintAllowance[minter] + amount;
        return amount;
    }
    
    function decreaseMintAllowance(address minter, uint256 amount) external onlyOwner returns (uint256) {
        require(amount < mintAllowance[minter], "Amount exceeds current allowance");
        mintAllowance[minter] = mintAllowance[minter] - amount;
        return mintAllowance[minter];
    }

    function mint(uint256 amount) public minting {
        require(amount <= mintAllowance[msg.sender], "Amount exceeds allowance");
        require(amount <= _mintSupply, "Mint amount is greater then _mintSupply");
        _balances[msg.sender] = _balances[msg.sender] + amount;
        mintAllowance[msg.sender] = mintAllowance[msg.sender] - amount;
        _totalSupply = _totalSupply + amount;
        _mintSupply = _mintSupply - amount;
    }

    function turnMF(bool _on) public onlyOwner {
        if (_on) {
            marketingFee = 50;
            totalFee = liquidityFee + marketingFee;
        } else {
            marketingFee = 0;
            totalFee = liquidityFee + marketingFee;
        }
    }

    function changeMaxWalletAmount(uint8 maxAmountPercent) public onlyOwner {
        require(maxAmountPercent > 0, "Max wallet amount should be greater then 1%");
        _maxWalletAmount = (_totalSupply * maxAmountPercent) / 100;
    }

    function toggleMinting(bool isMintingPeriod) public onlyOwner {
        isMinting = isMintingPeriod;
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

File 2 of 6: IDEXFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

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

File 3 of 6: IDEXRouter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface IDEXRouter {
    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);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens (
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external ;
}

File 4 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

File 5 of 6: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

File 6 of 6: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"accountMintAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAmountPercent","type":"uint8"}],"name":"changeMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckTBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseMintAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseMintAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"isMintingPeriod","type":"bool"}],"name":"toggleMinting","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_on","type":"bool"}],"name":"turnMF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000afb565b62061a80620000bc919062000c38565b6003556009600a620000cf919062000afb565b620927c0620000df919062000c38565b60045560646003600454620000f5919062000c38565b62000101919062000a68565b6005556000600b556032600c55600c54600b5462000120919062000a0b565b600d556103e8600e556000600f60006101000a81548160ff02191690831515021790555073e2d97cf9b2c792f14abd6c60edfaf3081a053a27600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160146101000a81548160ff0219169083151502179055506014612710600454620001c8919062000a68565b620001d4919062000c38565b601255348015620001e457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002396001620007ff60201b60201c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030557600080fd5b505afa1580156200031a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000340919062000913565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c457600080fd5b505afa158015620003d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ff919062000913565b306040518363ffffffff1660e01b81526004016200041f9291906200098e565b602060405180830381600087803b1580156200043a57600080fd5b505af11580156200044f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000475919062000913565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060016008600073e2d97cf9b2c792f14abd6c60edfaf3081a053a2773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600073e2d97cf9b2c792f14abd6c60edfaf3081a053a2773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620007f09190620009dd565b60405180910390a35062000d97565b6200081033620008a360201b60201c565b62000852576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084990620009bb565b60405180910390fd5b80156200087f576032600c81905550600c54600b5462000873919062000a0b565b600d81905550620008a0565b6000600c81905550600c54600b5462000899919062000a0b565b600d819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000815190506200090d8162000d7d565b92915050565b6000602082840312156200092c576200092b62000d42565b5b60006200093c84828501620008fc565b91505092915050565b620009508162000c99565b82525050565b600062000965600683620009fa565b9150620009728262000d54565b602082019050919050565b620009888162000ccd565b82525050565b6000604082019050620009a5600083018562000945565b620009b4602083018462000945565b9392505050565b60006020820190508181036000830152620009d68162000956565b9050919050565b6000602082019050620009f460008301846200097d565b92915050565b600082825260208201905092915050565b600062000a188262000ccd565b915062000a258362000ccd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a5d5762000a5c62000ce4565b5b828201905092915050565b600062000a758262000ccd565b915062000a828362000ccd565b92508262000a955762000a9462000d13565b5b828204905092915050565b6000808291508390505b600185111562000af25780860481111562000aca5762000ac962000ce4565b5b600185161562000ada5780820291505b808102905062000aea8562000d47565b945062000aaa565b94509492505050565b600062000b088262000ccd565b915062000b158362000cd7565b925062000b447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b4c565b905092915050565b60008262000b5e576001905062000c31565b8162000b6e576000905062000c31565b816001811462000b87576002811462000b925762000bc8565b600191505062000c31565b60ff84111562000ba75762000ba662000ce4565b5b8360020a91508482111562000bc15762000bc062000ce4565b5b5062000c31565b5060208310610133831016604e8410600b841016171562000c025782820a90508381111562000bfc5762000bfb62000ce4565b5b62000c31565b62000c11848484600162000aa0565b9250905081840481111562000c2b5762000c2a62000ce4565b5b81810290505b9392505050565b600062000c458262000ccd565b915062000c528362000ccd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c8e5762000c8d62000ce4565b5b828202905092915050565b600062000ca68262000cad565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b62000d888162000c99565b811462000d9457600080fd5b50565b6135648062000da76000396000f3fe6080604052600436106101c65760003560e01c806370a08231116100f75780639d0014b111610095578063d3efadf311610064578063d3efadf314610675578063dd62ed3e1461068c578063e96fada2146106c9578063f887ea40146106f4576101cd565b80639d0014b1146105bb578063a0712d68146105e4578063a8aa1b311461060d578063a9059cbb14610638576101cd565b8063893d20e8116100d1578063893d20e814610513578063942b9ae71461053e57806395d89b4114610567578063975a997614610592576101cd565b806370a0823114610482578063715018a6146104bf578063785a47f8146104d6576101cd565b80632f54bf6e1161016457806350e8cc791161013e57806350e8cc79146103b2578063571ac8b0146103ef5780636c0a24eb1461042c5780636ddd171314610457576101cd565b80632f54bf6e14610333578063313ce56714610370578063364333f41461039b576101cd565b806312c98660116101a057806312c986601461026557806318160ddd146102a257806321775c92146102cd57806323b872dd146102f6576101cd565b80630445b667146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761071f565b6040516101f49190612d00565b60405180910390f35b34801561020957600080fd5b50610212610725565b60405161021f9190612b7e565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906126e1565b610762565b60405161025c9190612b48565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906125f4565b610854565b6040516102999190612d00565b60405180910390f35b3480156102ae57600080fd5b506102b761089d565b6040516102c49190612d00565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612721565b6108a7565b005b34801561030257600080fd5b5061031d6004803603810190610318919061268e565b61090c565b60405161032a9190612b48565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906125f4565b610b0c565b6040516103679190612b48565b60405180910390f35b34801561037c57600080fd5b50610385610b65565b6040516103929190612d9e565b60405180910390f35b3480156103a757600080fd5b506103b0610b6e565b005b3480156103be57600080fd5b506103d960048036038101906103d491906126e1565b610bd9565b6040516103e69190612d00565b60405180910390f35b3480156103fb57600080fd5b50610416600480360381019061041191906125f4565b610d7a565b6040516104239190612b48565b60405180910390f35b34801561043857600080fd5b50610441610dad565b60405161044e9190612d00565b60405180910390f35b34801561046357600080fd5b5061046c610db3565b6040516104799190612b48565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a491906125f4565b610dc6565b6040516104b69190612d00565b60405180910390f35b3480156104cb57600080fd5b506104d4610e0f565b005b3480156104e257600080fd5b506104fd60048036038101906104f891906126e1565b610ed2565b60405161050a9190612d00565b60405180910390f35b34801561051f57600080fd5b5061052861100f565b6040516105359190612acc565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612721565b611038565b005b34801561057357600080fd5b5061057c6110cb565b6040516105899190612b7e565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b491906127ce565b611108565b005b3480156105c757600080fd5b506105e260048036038101906105dd919061274e565b6111bc565b005b3480156105f057600080fd5b5061060b6004803603810190610606919061274e565b611229565b005b34801561061957600080fd5b50610622611486565b60405161062f9190612acc565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a91906126e1565b6114ac565b60405161066c9190612b48565b60405180910390f35b34801561068157600080fd5b5061068a6114c1565b005b34801561069857600080fd5b506106b360048036038101906106ae919061264e565b6114f9565b6040516106c09190612d00565b60405180910390f35b3480156106d557600080fd5b506106de611580565b6040516106eb9190612acc565b60405180910390f35b34801561070057600080fd5b506107096115a6565b6040516107169190612b63565b60405180910390f35b60125481565b60606040518060400160405280600981526020017f467573696f6e426f740000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108429190612d00565b60405180910390a36001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600454905090565b6108b033610b0c565b6108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e690612ca0565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610af857610a77826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b03848484611630565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bd6573d6000803e3d6000fd5b50565b6000610be433610b0c565b610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a90612ca0565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90612c00565b60405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cef919061306b565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610da6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610762565b9050919050565b60055481565b601160149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e1833610b0c565b610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612ca0565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ec89190612acc565b60405180910390a1565b6000610edd33610b0c565b610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390612ca0565b60405180910390fd5b816009600a610f2b9190612ef3565b614650610f389190613011565b11610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612c40565b60405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fc39190612e19565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61104133610b0c565b611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790612ca0565b60405180910390fd5b80156110a9576032600c81905550600c54600b5461109e9190612e19565b600d819055506110c8565b6000600c81905550600c54600b546110c19190612e19565b600d819055505b50565b60606040518060400160405280600681526020017f465553494f4e0000000000000000000000000000000000000000000000000000815250905090565b61111133610b0c565b611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790612ca0565b60405180910390fd5b60008160ff1611611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612c60565b60405180910390fd5b60648160ff166004546111a99190613011565b6111b39190612e6f565b60058190555050565b6111c533610b0c565b611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90612ca0565b60405180910390fd5b80620186a06004546112169190612e6f565b6112209190613011565b60128190555050565b600f60009054906101000a900460ff16611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90612cc0565b60405180910390fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612c80565b60405180910390fd5b60035481111561133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612ce0565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138a9190612e19565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611418919061306b565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806004546114699190612e19565b6004819055508060035461147d919061306b565b60038190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114b9338484611630565b905092915050565b6114f630600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114f130610dc6565b6119f9565b50565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b9190612b7e565b60405180910390fd5b5060008385611623919061306b565b9050809150509392505050565b6000601360009054906101000a900460ff1615611659576116528484846119f9565b90506119f2565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117055750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117ee57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117ae575060055482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ab9190612e19565b11155b6117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490612ba0565b60405180910390fd5b5b6117f6611bcc565b1561180457611803611ca3565b5b61188d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006118db8561220b565b6118e557826118f0565b6118ef8584612262565b5b905061194481600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a690919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e49190612d00565b60405180910390a360019150505b9392505050565b6000611a84826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b1982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a690919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb99190612d00565b60405180910390a3600190509392505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611c395750601360009054906101000a900460ff16155b8015611c515750601160149054906101000a900460ff165b8015611c9e5750601254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601360006101000a81548160ff021916908315150217905550600060125490506000611d036002611cf5600d54611ce7600b548761240490919063ffffffff16565b61247f90919063ffffffff16565b61247f90919063ffffffff16565b90506000611d1a82846124c990919063ffffffff16565b90506000600267ffffffffffffffff811115611d3957611d386131fc565b5b604051908082528060200260200182016040528015611d675781602001602082028036833780820191505090505b5090503081600081518110611d7f57611d7e6131cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e2157600080fd5b505afa158015611e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e599190612621565b81600181518110611e6d57611e6c6131cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611f10959493929190612d1b565b600060405180830381600087803b158015611f2a57600080fd5b505af1158015611f3e573d6000803e3d6000fd5b505050506000611f5782476124c990919063ffffffff16565b90506000611f85611f746002600b5461247f90919063ffffffff16565b600d546124c990919063ffffffff16565b90506000611fc36002611fb584611fa7600b548861240490919063ffffffff16565b61247f90919063ffffffff16565b61247f90919063ffffffff16565b90506000611fee83611fe0600c548761240490919063ffffffff16565b61247f90919063ffffffff16565b90506000600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161203c90612ab7565b600060405180830381858888f193505050503d806000811461207a576040519150601f19603f3d011682016040523d82523d6000602084013e61207f565b606091505b50509050806120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90612be0565b60405180910390fd5b60008911156121e457601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161215596959493929190612ae7565b6060604051808303818588803b15801561216e57600080fd5b505af1158015612182573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121a7919061277b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516121db929190612d75565b60405180910390a15b505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061228e600e54612280600d548661240490919063ffffffff16565b61247f90919063ffffffff16565b90506122e281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a690919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123829190612d00565b60405180910390a361239d81846124c990919063ffffffff16565b91505092915050565b60008082846123b59190612e19565b9050838110156123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f190612bc0565b60405180910390fd5b8091505092915050565b6000808314156124175760009050612479565b600082846124259190613011565b90508284826124349190612e6f565b14612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b90612c20565b60405180910390fd5b809150505b92915050565b60006124c183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612513565b905092915050565b600061250b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115cc565b905092915050565b6000808311829061255a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125519190612b7e565b60405180910390fd5b50600083856125699190612e6f565b9050809150509392505050565b600081359050612585816134d2565b92915050565b60008151905061259a816134d2565b92915050565b6000813590506125af816134e9565b92915050565b6000813590506125c481613500565b92915050565b6000815190506125d981613500565b92915050565b6000813590506125ee81613517565b92915050565b60006020828403121561260a5761260961322b565b5b600061261884828501612576565b91505092915050565b6000602082840312156126375761263661322b565b5b60006126458482850161258b565b91505092915050565b600080604083850312156126655761266461322b565b5b600061267385828601612576565b925050602061268485828601612576565b9150509250929050565b6000806000606084860312156126a7576126a661322b565b5b60006126b586828701612576565b93505060206126c686828701612576565b92505060406126d7868287016125b5565b9150509250925092565b600080604083850312156126f8576126f761322b565b5b600061270685828601612576565b9250506020612717858286016125b5565b9150509250929050565b6000602082840312156127375761273661322b565b5b6000612745848285016125a0565b91505092915050565b6000602082840312156127645761276361322b565b5b6000612772848285016125b5565b91505092915050565b6000806000606084860312156127945761279361322b565b5b60006127a2868287016125ca565b93505060206127b3868287016125ca565b92505060406127c4868287016125ca565b9150509250925092565b6000602082840312156127e4576127e361322b565b5b60006127f2848285016125df565b91505092915050565b60006128078383612813565b60208301905092915050565b61281c8161309f565b82525050565b61282b8161309f565b82525050565b600061283c82612dc9565b6128468185612dec565b935061285183612db9565b8060005b8381101561288257815161286988826127fb565b975061287483612ddf565b925050600181019050612855565b5085935050505092915050565b612898816130b1565b82525050565b6128a7816130f4565b82525050565b6128b681613106565b82525050565b60006128c782612dd4565b6128d18185612e08565b93506128e181856020860161313c565b6128ea81613230565b840191505092915050565b6000612902602583612e08565b915061290d8261324e565b604082019050919050565b6000612925601b83612e08565b91506129308261329d565b602082019050919050565b6000612948601e83612e08565b9150612953826132c6565b602082019050919050565b600061296b602083612e08565b9150612976826132ef565b602082019050919050565b600061298e602183612e08565b915061299982613318565b604082019050919050565b60006129b1602583612e08565b91506129bc82613367565b604082019050919050565b60006129d4602b83612e08565b91506129df826133b6565b604082019050919050565b60006129f7601883612e08565b9150612a0282613405565b602082019050919050565b6000612a1a600683612e08565b9150612a258261342e565b602082019050919050565b6000612a3d600083612dfd565b9150612a4882613457565b600082019050919050565b6000612a60601b83612e08565b9150612a6b8261345a565b602082019050919050565b6000612a83602783612e08565b9150612a8e82613483565b604082019050919050565b612aa2816130dd565b82525050565b612ab1816130e7565b82525050565b6000612ac282612a30565b9150819050919050565b6000602082019050612ae16000830184612822565b92915050565b600060c082019050612afc6000830189612822565b612b096020830188612a99565b612b1660408301876128ad565b612b2360608301866128ad565b612b306080830185612822565b612b3d60a0830184612a99565b979650505050505050565b6000602082019050612b5d600083018461288f565b92915050565b6000602082019050612b78600083018461289e565b92915050565b60006020820190508181036000830152612b9881846128bc565b905092915050565b60006020820190508181036000830152612bb9816128f5565b9050919050565b60006020820190508181036000830152612bd981612918565b9050919050565b60006020820190508181036000830152612bf98161293b565b9050919050565b60006020820190508181036000830152612c198161295e565b9050919050565b60006020820190508181036000830152612c3981612981565b9050919050565b60006020820190508181036000830152612c59816129a4565b9050919050565b60006020820190508181036000830152612c79816129c7565b9050919050565b60006020820190508181036000830152612c99816129ea565b9050919050565b60006020820190508181036000830152612cb981612a0d565b9050919050565b60006020820190508181036000830152612cd981612a53565b9050919050565b60006020820190508181036000830152612cf981612a76565b9050919050565b6000602082019050612d156000830184612a99565b92915050565b600060a082019050612d306000830188612a99565b612d3d60208301876128ad565b8181036040830152612d4f8186612831565b9050612d5e6060830185612822565b612d6b6080830184612a99565b9695505050505050565b6000604082019050612d8a6000830185612a99565b612d976020830184612a99565b9392505050565b6000602082019050612db36000830184612aa8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e24826130dd565b9150612e2f836130dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e6457612e6361316f565b5b828201905092915050565b6000612e7a826130dd565b9150612e85836130dd565b925082612e9557612e9461319e565b5b828204905092915050565b6000808291508390505b6001851115612eea57808604811115612ec657612ec561316f565b5b6001851615612ed55780820291505b8081029050612ee385613241565b9450612eaa565b94509492505050565b6000612efe826130dd565b9150612f09836130e7565b9250612f367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f3e565b905092915050565b600082612f4e576001905061300a565b81612f5c576000905061300a565b8160018114612f725760028114612f7c57612fab565b600191505061300a565b60ff841115612f8e57612f8d61316f565b5b8360020a915084821115612fa557612fa461316f565b5b5061300a565b5060208310610133831016604e8410600b8410161715612fe05782820a905083811115612fdb57612fda61316f565b5b61300a565b612fed8484846001612ea0565b925090508184048111156130045761300361316f565b5b81810290505b9392505050565b600061301c826130dd565b9150613027836130dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130605761305f61316f565b5b828202905092915050565b6000613076826130dd565b9150613081836130dd565b9250828210156130945761309361316f565b5b828203905092915050565b60006130aa826130bd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130ff82613118565b9050919050565b6000613111826130dd565b9050919050565b60006131238261312a565b9050919050565b6000613135826130bd565b9050919050565b60005b8381101561315a57808201518184015260208101905061313f565b83811115613169576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f416d6f756e7420657863656564732063757272656e7420616c6c6f77616e6365600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d6178696d756d206d696e7420616d6f756e742069732031382e30303020244660008201527f5553494f4e000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420616d6f756e742073686f756c64206265206772656160008201527f746572207468656e203125000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206578636565647320616c6c6f77616e63650000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f4d696e74696e67206973206e6f74207374617274656420796574210000000000600082015250565b7f4d696e7420616d6f756e742069732067726561746572207468656e205f6d696e60008201527f74537570706c7900000000000000000000000000000000000000000000000000602082015250565b6134db8161309f565b81146134e657600080fd5b50565b6134f2816130b1565b81146134fd57600080fd5b50565b613509816130dd565b811461351457600080fd5b50565b613520816130e7565b811461352b57600080fd5b5056fea264697066735822122013ab62004c09ebc55817cccdf540c0404f0e32552a50f51908fd67c1929abf0964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370a08231116100f75780639d0014b111610095578063d3efadf311610064578063d3efadf314610675578063dd62ed3e1461068c578063e96fada2146106c9578063f887ea40146106f4576101cd565b80639d0014b1146105bb578063a0712d68146105e4578063a8aa1b311461060d578063a9059cbb14610638576101cd565b8063893d20e8116100d1578063893d20e814610513578063942b9ae71461053e57806395d89b4114610567578063975a997614610592576101cd565b806370a0823114610482578063715018a6146104bf578063785a47f8146104d6576101cd565b80632f54bf6e1161016457806350e8cc791161013e57806350e8cc79146103b2578063571ac8b0146103ef5780636c0a24eb1461042c5780636ddd171314610457576101cd565b80632f54bf6e14610333578063313ce56714610370578063364333f41461039b576101cd565b806312c98660116101a057806312c986601461026557806318160ddd146102a257806321775c92146102cd57806323b872dd146102f6576101cd565b80630445b667146101d257806306fdde03146101fd578063095ea7b314610228576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e761071f565b6040516101f49190612d00565b60405180910390f35b34801561020957600080fd5b50610212610725565b60405161021f9190612b7e565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906126e1565b610762565b60405161025c9190612b48565b60405180910390f35b34801561027157600080fd5b5061028c600480360381019061028791906125f4565b610854565b6040516102999190612d00565b60405180910390f35b3480156102ae57600080fd5b506102b761089d565b6040516102c49190612d00565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612721565b6108a7565b005b34801561030257600080fd5b5061031d6004803603810190610318919061268e565b61090c565b60405161032a9190612b48565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906125f4565b610b0c565b6040516103679190612b48565b60405180910390f35b34801561037c57600080fd5b50610385610b65565b6040516103929190612d9e565b60405180910390f35b3480156103a757600080fd5b506103b0610b6e565b005b3480156103be57600080fd5b506103d960048036038101906103d491906126e1565b610bd9565b6040516103e69190612d00565b60405180910390f35b3480156103fb57600080fd5b50610416600480360381019061041191906125f4565b610d7a565b6040516104239190612b48565b60405180910390f35b34801561043857600080fd5b50610441610dad565b60405161044e9190612d00565b60405180910390f35b34801561046357600080fd5b5061046c610db3565b6040516104799190612b48565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a491906125f4565b610dc6565b6040516104b69190612d00565b60405180910390f35b3480156104cb57600080fd5b506104d4610e0f565b005b3480156104e257600080fd5b506104fd60048036038101906104f891906126e1565b610ed2565b60405161050a9190612d00565b60405180910390f35b34801561051f57600080fd5b5061052861100f565b6040516105359190612acc565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612721565b611038565b005b34801561057357600080fd5b5061057c6110cb565b6040516105899190612b7e565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b491906127ce565b611108565b005b3480156105c757600080fd5b506105e260048036038101906105dd919061274e565b6111bc565b005b3480156105f057600080fd5b5061060b6004803603810190610606919061274e565b611229565b005b34801561061957600080fd5b50610622611486565b60405161062f9190612acc565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a91906126e1565b6114ac565b60405161066c9190612b48565b60405180910390f35b34801561068157600080fd5b5061068a6114c1565b005b34801561069857600080fd5b506106b360048036038101906106ae919061264e565b6114f9565b6040516106c09190612d00565b60405180910390f35b3480156106d557600080fd5b506106de611580565b6040516106eb9190612acc565b60405180910390f35b34801561070057600080fd5b506107096115a6565b6040516107169190612b63565b60405180910390f35b60125481565b60606040518060400160405280600981526020017f467573696f6e426f740000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108429190612d00565b60405180910390a36001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600454905090565b6108b033610b0c565b6108ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e690612ca0565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610af857610a77826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b03848484611630565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610bd6573d6000803e3d6000fd5b50565b6000610be433610b0c565b610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a90612ca0565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548210610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90612c00565b60405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cef919061306b565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610da6827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610762565b9050919050565b60055481565b601160149054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e1833610b0c565b610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612ca0565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610ec89190612acc565b60405180910390a1565b6000610edd33610b0c565b610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390612ca0565b60405180910390fd5b816009600a610f2b9190612ef3565b614650610f389190613011565b11610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612c40565b60405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fc39190612e19565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61104133610b0c565b611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790612ca0565b60405180910390fd5b80156110a9576032600c81905550600c54600b5461109e9190612e19565b600d819055506110c8565b6000600c81905550600c54600b546110c19190612e19565b600d819055505b50565b60606040518060400160405280600681526020017f465553494f4e0000000000000000000000000000000000000000000000000000815250905090565b61111133610b0c565b611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790612ca0565b60405180910390fd5b60008160ff1611611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90612c60565b60405180910390fd5b60648160ff166004546111a99190613011565b6111b39190612e6f565b60058190555050565b6111c533610b0c565b611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90612ca0565b60405180910390fd5b80620186a06004546112169190612e6f565b6112209190613011565b60128190555050565b600f60009054906101000a900460ff16611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90612cc0565b60405180910390fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612c80565b60405180910390fd5b60035481111561133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612ce0565b60405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138a9190612e19565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611418919061306b565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806004546114699190612e19565b6004819055508060035461147d919061306b565b60038190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114b9338484611630565b905092915050565b6114f630600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166114f130610dc6565b6119f9565b50565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b9190612b7e565b60405180910390fd5b5060008385611623919061306b565b9050809150509392505050565b6000601360009054906101000a900460ff1615611659576116528484846119f9565b90506119f2565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117055750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117ee57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117ae575060055482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ab9190612e19565b11155b6117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e490612ba0565b60405180910390fd5b5b6117f6611bcc565b1561180457611803611ca3565b5b61188d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006118db8561220b565b6118e557826118f0565b6118ef8584612262565b5b905061194481600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a690919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e49190612d00565b60405180910390a360019150505b9392505050565b6000611a84826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115cc9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b1982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a690919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb99190612d00565b60405180910390a3600190509392505050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611c395750601360009054906101000a900460ff16155b8015611c515750601160149054906101000a900460ff165b8015611c9e5750601254600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601360006101000a81548160ff021916908315150217905550600060125490506000611d036002611cf5600d54611ce7600b548761240490919063ffffffff16565b61247f90919063ffffffff16565b61247f90919063ffffffff16565b90506000611d1a82846124c990919063ffffffff16565b90506000600267ffffffffffffffff811115611d3957611d386131fc565b5b604051908082528060200260200182016040528015611d675781602001602082028036833780820191505090505b5090503081600081518110611d7f57611d7e6131cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e2157600080fd5b505afa158015611e35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e599190612621565b81600181518110611e6d57611e6c6131cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611f10959493929190612d1b565b600060405180830381600087803b158015611f2a57600080fd5b505af1158015611f3e573d6000803e3d6000fd5b505050506000611f5782476124c990919063ffffffff16565b90506000611f85611f746002600b5461247f90919063ffffffff16565b600d546124c990919063ffffffff16565b90506000611fc36002611fb584611fa7600b548861240490919063ffffffff16565b61247f90919063ffffffff16565b61247f90919063ffffffff16565b90506000611fee83611fe0600c548761240490919063ffffffff16565b61247f90919063ffffffff16565b90506000600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161203c90612ab7565b600060405180830381858888f193505050503d806000811461207a576040519150601f19603f3d011682016040523d82523d6000602084013e61207f565b606091505b50509050806120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90612be0565b60405180910390fd5b60008911156121e457601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161215596959493929190612ae7565b6060604051808303818588803b15801561216e57600080fd5b505af1158015612182573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121a7919061277b565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516121db929190612d75565b60405180910390a15b505050505050505050506000601360006101000a81548160ff021916908315150217905550565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061228e600e54612280600d548661240490919063ffffffff16565b61247f90919063ffffffff16565b90506122e281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123a690919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123829190612d00565b60405180910390a361239d81846124c990919063ffffffff16565b91505092915050565b60008082846123b59190612e19565b9050838110156123fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f190612bc0565b60405180910390fd5b8091505092915050565b6000808314156124175760009050612479565b600082846124259190613011565b90508284826124349190612e6f565b14612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b90612c20565b60405180910390fd5b809150505b92915050565b60006124c183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612513565b905092915050565b600061250b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115cc565b905092915050565b6000808311829061255a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125519190612b7e565b60405180910390fd5b50600083856125699190612e6f565b9050809150509392505050565b600081359050612585816134d2565b92915050565b60008151905061259a816134d2565b92915050565b6000813590506125af816134e9565b92915050565b6000813590506125c481613500565b92915050565b6000815190506125d981613500565b92915050565b6000813590506125ee81613517565b92915050565b60006020828403121561260a5761260961322b565b5b600061261884828501612576565b91505092915050565b6000602082840312156126375761263661322b565b5b60006126458482850161258b565b91505092915050565b600080604083850312156126655761266461322b565b5b600061267385828601612576565b925050602061268485828601612576565b9150509250929050565b6000806000606084860312156126a7576126a661322b565b5b60006126b586828701612576565b93505060206126c686828701612576565b92505060406126d7868287016125b5565b9150509250925092565b600080604083850312156126f8576126f761322b565b5b600061270685828601612576565b9250506020612717858286016125b5565b9150509250929050565b6000602082840312156127375761273661322b565b5b6000612745848285016125a0565b91505092915050565b6000602082840312156127645761276361322b565b5b6000612772848285016125b5565b91505092915050565b6000806000606084860312156127945761279361322b565b5b60006127a2868287016125ca565b93505060206127b3868287016125ca565b92505060406127c4868287016125ca565b9150509250925092565b6000602082840312156127e4576127e361322b565b5b60006127f2848285016125df565b91505092915050565b60006128078383612813565b60208301905092915050565b61281c8161309f565b82525050565b61282b8161309f565b82525050565b600061283c82612dc9565b6128468185612dec565b935061285183612db9565b8060005b8381101561288257815161286988826127fb565b975061287483612ddf565b925050600181019050612855565b5085935050505092915050565b612898816130b1565b82525050565b6128a7816130f4565b82525050565b6128b681613106565b82525050565b60006128c782612dd4565b6128d18185612e08565b93506128e181856020860161313c565b6128ea81613230565b840191505092915050565b6000612902602583612e08565b915061290d8261324e565b604082019050919050565b6000612925601b83612e08565b91506129308261329d565b602082019050919050565b6000612948601e83612e08565b9150612953826132c6565b602082019050919050565b600061296b602083612e08565b9150612976826132ef565b602082019050919050565b600061298e602183612e08565b915061299982613318565b604082019050919050565b60006129b1602583612e08565b91506129bc82613367565b604082019050919050565b60006129d4602b83612e08565b91506129df826133b6565b604082019050919050565b60006129f7601883612e08565b9150612a0282613405565b602082019050919050565b6000612a1a600683612e08565b9150612a258261342e565b602082019050919050565b6000612a3d600083612dfd565b9150612a4882613457565b600082019050919050565b6000612a60601b83612e08565b9150612a6b8261345a565b602082019050919050565b6000612a83602783612e08565b9150612a8e82613483565b604082019050919050565b612aa2816130dd565b82525050565b612ab1816130e7565b82525050565b6000612ac282612a30565b9150819050919050565b6000602082019050612ae16000830184612822565b92915050565b600060c082019050612afc6000830189612822565b612b096020830188612a99565b612b1660408301876128ad565b612b2360608301866128ad565b612b306080830185612822565b612b3d60a0830184612a99565b979650505050505050565b6000602082019050612b5d600083018461288f565b92915050565b6000602082019050612b78600083018461289e565b92915050565b60006020820190508181036000830152612b9881846128bc565b905092915050565b60006020820190508181036000830152612bb9816128f5565b9050919050565b60006020820190508181036000830152612bd981612918565b9050919050565b60006020820190508181036000830152612bf98161293b565b9050919050565b60006020820190508181036000830152612c198161295e565b9050919050565b60006020820190508181036000830152612c3981612981565b9050919050565b60006020820190508181036000830152612c59816129a4565b9050919050565b60006020820190508181036000830152612c79816129c7565b9050919050565b60006020820190508181036000830152612c99816129ea565b9050919050565b60006020820190508181036000830152612cb981612a0d565b9050919050565b60006020820190508181036000830152612cd981612a53565b9050919050565b60006020820190508181036000830152612cf981612a76565b9050919050565b6000602082019050612d156000830184612a99565b92915050565b600060a082019050612d306000830188612a99565b612d3d60208301876128ad565b8181036040830152612d4f8186612831565b9050612d5e6060830185612822565b612d6b6080830184612a99565b9695505050505050565b6000604082019050612d8a6000830185612a99565b612d976020830184612a99565b9392505050565b6000602082019050612db36000830184612aa8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e24826130dd565b9150612e2f836130dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e6457612e6361316f565b5b828201905092915050565b6000612e7a826130dd565b9150612e85836130dd565b925082612e9557612e9461319e565b5b828204905092915050565b6000808291508390505b6001851115612eea57808604811115612ec657612ec561316f565b5b6001851615612ed55780820291505b8081029050612ee385613241565b9450612eaa565b94509492505050565b6000612efe826130dd565b9150612f09836130e7565b9250612f367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f3e565b905092915050565b600082612f4e576001905061300a565b81612f5c576000905061300a565b8160018114612f725760028114612f7c57612fab565b600191505061300a565b60ff841115612f8e57612f8d61316f565b5b8360020a915084821115612fa557612fa461316f565b5b5061300a565b5060208310610133831016604e8410600b8410161715612fe05782820a905083811115612fdb57612fda61316f565b5b61300a565b612fed8484846001612ea0565b925090508184048111156130045761300361316f565b5b81810290505b9392505050565b600061301c826130dd565b9150613027836130dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130605761305f61316f565b5b828202905092915050565b6000613076826130dd565b9150613081836130dd565b9250828210156130945761309361316f565b5b828203905092915050565b60006130aa826130bd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130ff82613118565b9050919050565b6000613111826130dd565b9050919050565b60006131238261312a565b9050919050565b6000613135826130bd565b9050919050565b60005b8381101561315a57808201518184015260208101905061313f565b83811115613169576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f416d6f756e7420657863656564732063757272656e7420616c6c6f77616e6365600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d6178696d756d206d696e7420616d6f756e742069732031382e30303020244660008201527f5553494f4e000000000000000000000000000000000000000000000000000000602082015250565b7f4d61782077616c6c657420616d6f756e742073686f756c64206265206772656160008201527f746572207468656e203125000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206578636565647320616c6c6f77616e63650000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f4d696e74696e67206973206e6f74207374617274656420796574210000000000600082015250565b7f4d696e7420616d6f756e742069732067726561746572207468656e205f6d696e60008201527f74537570706c7900000000000000000000000000000000000000000000000000602082015250565b6134db8161309f565b81146134e657600080fd5b50565b6134f2816130b1565b81146134fd57600080fd5b50565b613509816130dd565b811461351457600080fd5b50565b613520816130e7565b811461352b57600080fd5b5056fea264697066735822122013ab62004c09ebc55817cccdf540c0404f0e32552a50f51908fd67c1929abf0964736f6c63430008070033

Deployed Bytecode Sourcemap

3868:9509:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4982:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6194:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6721:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6606:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5930:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13207:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7225:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;265:101:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6022:78:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11246:116;;;;;;;;;;;;;:::i;:::-;;11952:294;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6939:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4306:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4946:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6360:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;371:128:4;;;;;;;;;;;;;:::i;:::-;;11653:289:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6278:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12701:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6106:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12968:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11507:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12252:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4920:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7065:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11368:133;;;;;;;;;;;;;:::i;:::-;;6469:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4803:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4890:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4982:56;;;;:::o;6194:78::-;6242:13;6265:5;;;;;;;;;;;;;;;;;6258:12;;6194:78;:::o;6721:212::-;6796:4;6847:6;6812:11;:23;6824:10;6812:23;;;;;;;;;;;;;;;:32;6836:7;6812:32;;;;;;;;;;;;;;;:41;;;;6889:7;6868:37;;6877:10;6868:37;;;6898:6;6868:37;;;;;;:::i;:::-;;;;;;;;6922:4;6915:11;;6721:212;;;;:::o;6606:109::-;6675:7;6692:13;:21;6706:6;6692:21;;;;;;;;;;;;;;;;6685:28;;6606:109;;;:::o;5930:86::-;5985:7;6002:12;;5995:19;;5930:86;:::o;13207:106::-;220:19:4;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13291:15:0::1;13279:9;;:27;;;;;;;;;;;;;;;;;;13207:106:::0;:::o;7225:366::-;7325:4;7380:17;7345:11;:19;7357:6;7345:19;;;;;;;;;;;;;;;:31;7365:10;7345:31;;;;;;;;;;;;;;;;:52;7341:186;;7447:69;7483:6;7447:69;;;;;;;;;;;;;;;;;:11;:19;7459:6;7447:19;;;;;;;;;;;;;;;:31;7467:10;7447:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7413:11;:19;7425:6;7413:19;;;;;;;;;;;;;;;:31;7433:10;7413:31;;;;;;;;;;;;;;;:103;;;;7341:186;7544:40;7558:6;7566:9;7577:6;7544:13;:40::i;:::-;7537:47;;7225:366;;;;;:::o;265:101:4:-;320:4;354:5;;;;;;;;;;;343:16;;:7;:16;;;336:23;;265:101;;;:::o;6022:78:0:-;6074:5;4242:1;6082:16;;6022:78;:::o;11246:116::-;11302:20;;;;;;;;;;;11294:38;;:61;11333:21;11294:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11246:116::o;11952:294::-;12043:7;220:19:4;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12079:13:0::1;:21;12093:6;12079:21;;;;;;;;;;;;;;;;12070:6;:30;12062:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12195:6;12171:13;:21;12185:6;12171:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;12147:13;:21;12161:6;12147:21;;;;;;;;;;;;;;;:54;;;;12218:13;:21;12232:6;12218:21;;;;;;;;;;;;;;;;12211:28;;11952:294:::0;;;;:::o;6939:120::-;6994:4;7017:35;7025:7;7034:17;7017:7;:35::i;:::-;7010:42;;6939:120;;;:::o;4306:58::-;;;;:::o;4946:30::-;;;;;;;;;;;;;:::o;6360:103::-;6426:7;6443:9;:18;6453:7;6443:18;;;;;;;;;;;;;;;;6436:25;;6360:103;;;:::o;371:128:4:-;220:19;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;443:1:::1;427:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;460:32;489:1;460:32;;;;;;:::i;:::-;;;;;;;;371:128::o:0;11653:289:0:-;11744:7;220:19:4;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11800:6:0::1;4242:1;11781:2;:15;;;;:::i;:::-;11771:6;:26;;;;:::i;:::-;:35;11763:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11906:6;11882:13;:21;11896:6;11882:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;11858:13;:21;11872:6;11858:21;;;;;;;;;;;;;;;:54;;;;11929:6;11922:13;;11653:289:::0;;;;:::o;6278:76::-;6330:7;6347:5;;;;;;;;;;;6340:12;;6278:76;:::o;12701:261::-;220:19:4;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12758:3:0::1;12754:202;;;12792:2;12777:12;:17;;;;12834:12;;12819;;:27;;;;:::i;:::-;12808:8;:38;;;;12754:202;;;12892:1;12877:12;:16;;;;12933:12;;12918;;:27;;;;:::i;:::-;12907:8;:38;;;;12754:202;12701:261:::0;:::o;6106:82::-;6156:13;6179:7;;;;;;;;;;;;;;;;;6172:14;;6106:82;:::o;12968:233::-;220:19:4;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13077:1:0::1;13058:16;:20;;;13050:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13191:3;13171:16;13156:31;;:12;;:31;;;;:::i;:::-;13155:39;;;;:::i;:::-;13136:16;:58;;;;12968:233:::0;:::o;11507:140::-;220:19:4;228:10;220:7;:19::i;:::-;212:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11626:14:0::1;11617:6;11602:12;;:21;;;;:::i;:::-;:38;;;;:::i;:::-;11586:13;:54;;;;11507:140:::0;:::o;12252:443::-;5198:9;;;;;;;;;;;5190:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12325:13:::1;:25;12339:10;12325:25;;;;;;;;;;;;;;;;12315:6;:35;;12307:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12407:11;;12397:6;:21;;12389:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12520:6;12496:9;:21;12506:10;12496:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;12472:9;:21;12482:10;12472:21;;;;;;;;;;;;;;;:54;;;;12592:6;12564:13;:25;12578:10;12564:25;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;12536:13;:25;12550:10;12536:25;;;;;;;;;;;;;;;:62;;;;12638:6;12623:12;;:21;;;;:::i;:::-;12608:12;:36;;;;12682:6;12668:11;;:20;;;;:::i;:::-;12654:11;:34;;;;12252:443:::0;:::o;4920:19::-;;;;;;;;;;;;;:::o;7065:154::-;7145:4;7168:44;7182:10;7194:9;7205:6;7168:13;:44::i;:::-;7161:51;;7065:154;;;;:::o;11368:133::-;11417:77;11440:4;11447:20;;;;;;;;;;;11469:24;11487:4;11469:9;:24::i;:::-;11417:14;:77::i;:::-;;11368:133::o;6469:131::-;6553:7;6570:11;:19;6582:6;6570:19;;;;;;;;;;;;;;;:28;6590:7;6570:28;;;;;;;;;;;;;;;;6563:35;;6469:131;;;;:::o;4803:80::-;;;;;;;;;;;;;:::o;4890:24::-;;;;;;;;;;;;;:::o;399:186:5:-;485:7;517:1;512;:6;;520:12;504:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;543:9;559:1;555;:5;;;;:::i;:::-;543:17;;577:1;570:8;;;399:186;;;;;:::o;7597:793:0:-;7689:4;7709:6;;;;;;;;;;;7705:85;;;7738:41;7753:6;7761:9;7772:6;7738:14;:41::i;:::-;7731:48;;;;7705:85;7817:4;;;;;;;;;;;7804:17;;:9;:17;;;;:38;;;;;7838:4;;;;;;;;;;;7825:17;;:9;:17;;;;7804:38;7800:198;;;7866:15;:26;7882:9;7866:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7929:16;;7919:6;7896:9;:20;7906:9;7896:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7866:79;7858:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7800:198;8002:16;:14;:16::i;:::-;7998:57;;;8034:10;:8;:10::i;:::-;7998:57;8085:53;8107:6;8085:53;;;;;;;;;;;;;;;;;:9;:17;8095:6;8085:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8065:9;:17;8075:6;8065:17;;;;;;;;;;;;;;;:73;;;;8149:22;8174:21;8188:6;8174:13;:21::i;:::-;:56;;8224:6;8174:56;;;8198:23;8206:6;8214;8198:7;:23::i;:::-;8174:56;8149:81;;8263:40;8288:14;8263:9;:20;8273:9;8263:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8240:9;:20;8250:9;8240:20;;;;;;;;;;;;;;;:63;;;;8336:9;8319:43;;8328:6;8319:43;;;8347:14;8319:43;;;;;;:::i;:::-;;;;;;;;8379:4;8372:11;;;7597:793;;;;;;:::o;8396:325::-;8489:4;8525:53;8547:6;8525:53;;;;;;;;;;;;;;;;;:9;:17;8535:6;8525:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8505:9;:17;8515:6;8505:17;;;;;;;;;;;;;;;:73;;;;8611:32;8636:6;8611:9;:20;8621:9;8611:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8588:9;:20;8598:9;8588:20;;;;;;;;;;;;;;;:55;;;;8675:9;8658:35;;8667:6;8658:35;;;8686:6;8658:35;;;;;;:::i;:::-;;;;;;;;8710:4;8703:11;;8396:325;;;;;:::o;9175:192::-;9224:4;9261;;;;;;;;;;;9247:18;;:10;:18;;;;:37;;;;;9278:6;;;;;;;;;;;9277:7;9247:37;:60;;;;;9296:11;;;;;;;;;;;9247:60;:113;;;;;9347:13;;9319:9;:24;9337:4;9319:24;;;;;;;;;;;;;;;;:41;;9247:113;9240:120;;9175:192;:::o;9373:1501::-;5109:4;5100:6;;:13;;;;;;;;;;;;;;;;;;9421:28:::1;9452:13;;9421:44;;9475:23;9501:59;9558:1;9501:52;9544:8;;9501:38;9526:12;;9501:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9475:85;;9570:20;9593:41;9618:15;9593:20;:24;;:41;;;;:::i;:::-;9570:64;;9645:21;9683:1;9669:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9645:40;;9713:4;9695;9700:1;9695:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9738:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9728:4;9733:1;9728:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9762:21;9786;9762:45;;9818:6;;;;;;;;;;;:57;;;9889:12;9915:1;9930:4;9956;9975:15;9818:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10010:17;10030:40;10056:13;10030:21;:25;;:40;;;;:::i;:::-;10010:60;;10080:19;10102:33;10115:19;10132:1;10115:12;;:16;;:19;;;;:::i;:::-;10102:8;;:12;;:33;;;;:::i;:::-;10080:55;;10145:26;10174:51;10223:1;10174:44;10206:11;10174:27;10188:12;;10174:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10145:80;;10235:26;10264:44;10296:11;10264:27;10278:12;;10264:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10235:73;;10321:21;10379:20;;;;;;;;;;;10371:34;;10414:18;10440:5;10371:79;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10320:130;;;10468:16;10460:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10552:1;10534:15;:19;10530:338;;;10569:6;;;;;;;;;;;:22;;;10600:18;10645:4;10668:15;10701:1;10720::::0;10739:4:::1;;;;;;;;;;;10761:15;10569:221;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10809:48;10821:18;10841:15;10809:48;;;;;;;:::i;:::-;;;;;;;;10530:338;9411:1463;;;;;;;;;;5143:5:::0;5134:6;;:14;;;;;;;;;;;;;;;;;;9373:1501::o;8727:112::-;8789:4;8813:11;:19;8825:6;8813:19;;;;;;;;;;;;;;;;;;;;;;;;;8812:20;8805:27;;8727:112;;;:::o;8845:324::-;8912:7;8931:17;8951:40;8976:14;;8951:20;8962:8;;8951:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;8931:60;;9028:39;9057:9;9028;:24;9046:4;9028:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9001:9;:24;9019:4;9001:24;;;;;;;;;;;;;;;:66;;;;9107:4;9082:42;;9091:6;9082:42;;;9114:9;9082:42;;;;;;:::i;:::-;;;;;;;;9141:21;9152:9;9141:6;:10;;:21;;;;:::i;:::-;9134:28;;;8845:324;;;;:::o;80:175:5:-;138:7;157:9;173:1;169;:5;;;;:::i;:::-;157:17;;197:1;192;:6;;184:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;247:1;240:8;;;80:175;;;;:::o;590:239::-;648:7;676:1;671;:6;667:45;;;700:1;693:8;;;;667:45;721:9;737:1;733;:5;;;;:::i;:::-;721:17;;765:1;760;756;:5;;;;:::i;:::-;:10;748:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;821:1;814:8;;;590:239;;;;;:::o;834:130::-;892:7;918:39;922:1;925;918:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;911:46;;834:130;;;;:::o;260:134::-;318:7;344:43;348:1;351;344:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;337:50;;260:134;;;;:::o;969:185::-;1055:7;1086:1;1082;:5;1089:12;1074:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1112:9;1128:1;1124;:5;;;;:::i;:::-;1112:17;;1146:1;1139:8;;;969:185;;;;;:::o;7:139:6:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;585:143;;;;:::o;734:135::-;778:5;816:6;803:20;794:29;;832:31;857:5;832:31;:::i;:::-;734:135;;;;:::o;875:329::-;934:6;983:2;971:9;962:7;958:23;954:32;951:119;;;989:79;;:::i;:::-;951:119;1109:1;1134:53;1179:7;1170:6;1159:9;1155:22;1134:53;:::i;:::-;1124:63;;1080:117;875:329;;;;:::o;1210:351::-;1280:6;1329:2;1317:9;1308:7;1304:23;1300:32;1297:119;;;1335:79;;:::i;:::-;1297:119;1455:1;1480:64;1536:7;1527:6;1516:9;1512:22;1480:64;:::i;:::-;1470:74;;1426:128;1210:351;;;;:::o;1567:474::-;1635:6;1643;1692:2;1680:9;1671:7;1667:23;1663:32;1660:119;;;1698:79;;:::i;:::-;1660:119;1818:1;1843:53;1888:7;1879:6;1868:9;1864:22;1843:53;:::i;:::-;1833:63;;1789:117;1945:2;1971:53;2016:7;2007:6;1996:9;1992:22;1971:53;:::i;:::-;1961:63;;1916:118;1567:474;;;;;:::o;2047:619::-;2124:6;2132;2140;2189:2;2177:9;2168:7;2164:23;2160:32;2157:119;;;2195:79;;:::i;:::-;2157:119;2315:1;2340:53;2385:7;2376:6;2365:9;2361:22;2340:53;:::i;:::-;2330:63;;2286:117;2442:2;2468:53;2513:7;2504:6;2493:9;2489:22;2468:53;:::i;:::-;2458:63;;2413:118;2570:2;2596:53;2641:7;2632:6;2621:9;2617:22;2596:53;:::i;:::-;2586:63;;2541:118;2047:619;;;;;:::o;2672:474::-;2740:6;2748;2797:2;2785:9;2776:7;2772:23;2768:32;2765:119;;;2803:79;;:::i;:::-;2765:119;2923:1;2948:53;2993:7;2984:6;2973:9;2969:22;2948:53;:::i;:::-;2938:63;;2894:117;3050:2;3076:53;3121:7;3112:6;3101:9;3097:22;3076:53;:::i;:::-;3066:63;;3021:118;2672:474;;;;;:::o;3152:323::-;3208:6;3257:2;3245:9;3236:7;3232:23;3228:32;3225:119;;;3263:79;;:::i;:::-;3225:119;3383:1;3408:50;3450:7;3441:6;3430:9;3426:22;3408:50;:::i;:::-;3398:60;;3354:114;3152:323;;;;:::o;3481:329::-;3540:6;3589:2;3577:9;3568:7;3564:23;3560:32;3557:119;;;3595:79;;:::i;:::-;3557:119;3715:1;3740:53;3785:7;3776:6;3765:9;3761:22;3740:53;:::i;:::-;3730:63;;3686:117;3481:329;;;;:::o;3816:663::-;3904:6;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:64;4176:7;4167:6;4156:9;4152:22;4120:64;:::i;:::-;4110:74;;4066:128;4233:2;4259:64;4315:7;4306:6;4295:9;4291:22;4259:64;:::i;:::-;4249:74;;4204:129;4372:2;4398:64;4454:7;4445:6;4434:9;4430:22;4398:64;:::i;:::-;4388:74;;4343:129;3816:663;;;;;:::o;4485:325::-;4542:6;4591:2;4579:9;4570:7;4566:23;4562:32;4559:119;;;4597:79;;:::i;:::-;4559:119;4717:1;4742:51;4785:7;4776:6;4765:9;4761:22;4742:51;:::i;:::-;4732:61;;4688:115;4485:325;;;;:::o;4816:179::-;4885:10;4906:46;4948:3;4940:6;4906:46;:::i;:::-;4984:4;4979:3;4975:14;4961:28;;4816:179;;;;:::o;5001:108::-;5078:24;5096:5;5078:24;:::i;:::-;5073:3;5066:37;5001:108;;:::o;5115:118::-;5202:24;5220:5;5202:24;:::i;:::-;5197:3;5190:37;5115:118;;:::o;5269:732::-;5388:3;5417:54;5465:5;5417:54;:::i;:::-;5487:86;5566:6;5561:3;5487:86;:::i;:::-;5480:93;;5597:56;5647:5;5597:56;:::i;:::-;5676:7;5707:1;5692:284;5717:6;5714:1;5711:13;5692:284;;;5793:6;5787:13;5820:63;5879:3;5864:13;5820:63;:::i;:::-;5813:70;;5906:60;5959:6;5906:60;:::i;:::-;5896:70;;5752:224;5739:1;5736;5732:9;5727:14;;5692:284;;;5696:14;5992:3;5985:10;;5393:608;;;5269:732;;;;:::o;6007:109::-;6088:21;6103:5;6088:21;:::i;:::-;6083:3;6076:34;6007:109;;:::o;6122:169::-;6228:56;6278:5;6228:56;:::i;:::-;6223:3;6216:69;6122:169;;:::o;6297:147::-;6392:45;6431:5;6392:45;:::i;:::-;6387:3;6380:58;6297:147;;:::o;6450:364::-;6538:3;6566:39;6599:5;6566:39;:::i;:::-;6621:71;6685:6;6680:3;6621:71;:::i;:::-;6614:78;;6701:52;6746:6;6741:3;6734:4;6727:5;6723:16;6701:52;:::i;:::-;6778:29;6800:6;6778:29;:::i;:::-;6773:3;6769:39;6762:46;;6542:272;6450:364;;;;:::o;6820:366::-;6962:3;6983:67;7047:2;7042:3;6983:67;:::i;:::-;6976:74;;7059:93;7148:3;7059:93;:::i;:::-;7177:2;7172:3;7168:12;7161:19;;6820:366;;;:::o;7192:::-;7334:3;7355:67;7419:2;7414:3;7355:67;:::i;:::-;7348:74;;7431:93;7520:3;7431:93;:::i;:::-;7549:2;7544:3;7540:12;7533:19;;7192:366;;;:::o;7564:::-;7706:3;7727:67;7791:2;7786:3;7727:67;:::i;:::-;7720:74;;7803:93;7892:3;7803:93;:::i;:::-;7921:2;7916:3;7912:12;7905:19;;7564:366;;;:::o;7936:::-;8078:3;8099:67;8163:2;8158:3;8099:67;:::i;:::-;8092:74;;8175:93;8264:3;8175:93;:::i;:::-;8293:2;8288:3;8284:12;8277:19;;7936:366;;;:::o;8308:::-;8450:3;8471:67;8535:2;8530:3;8471:67;:::i;:::-;8464:74;;8547:93;8636:3;8547:93;:::i;:::-;8665:2;8660:3;8656:12;8649:19;;8308:366;;;:::o;8680:::-;8822:3;8843:67;8907:2;8902:3;8843:67;:::i;:::-;8836:74;;8919:93;9008:3;8919:93;:::i;:::-;9037:2;9032:3;9028:12;9021:19;;8680:366;;;:::o;9052:::-;9194:3;9215:67;9279:2;9274:3;9215:67;:::i;:::-;9208:74;;9291:93;9380:3;9291:93;:::i;:::-;9409:2;9404:3;9400:12;9393:19;;9052:366;;;:::o;9424:::-;9566:3;9587:67;9651:2;9646:3;9587:67;:::i;:::-;9580:74;;9663:93;9752:3;9663:93;:::i;:::-;9781:2;9776:3;9772:12;9765:19;;9424:366;;;:::o;9796:365::-;9938:3;9959:66;10023:1;10018:3;9959:66;:::i;:::-;9952:73;;10034:93;10123:3;10034:93;:::i;:::-;10152:2;10147:3;10143:12;10136:19;;9796:365;;;:::o;10167:398::-;10326:3;10347:83;10428:1;10423:3;10347:83;:::i;:::-;10340:90;;10439:93;10528:3;10439:93;:::i;:::-;10557:1;10552:3;10548:11;10541:18;;10167:398;;;:::o;10571:366::-;10713:3;10734:67;10798:2;10793:3;10734:67;:::i;:::-;10727:74;;10810:93;10899:3;10810:93;:::i;:::-;10928:2;10923:3;10919:12;10912:19;;10571:366;;;:::o;10943:::-;11085:3;11106:67;11170:2;11165:3;11106:67;:::i;:::-;11099:74;;11182:93;11271:3;11182:93;:::i;:::-;11300:2;11295:3;11291:12;11284:19;;10943:366;;;:::o;11315:118::-;11402:24;11420:5;11402:24;:::i;:::-;11397:3;11390:37;11315:118;;:::o;11439:112::-;11522:22;11538:5;11522:22;:::i;:::-;11517:3;11510:35;11439:112;;:::o;11557:379::-;11741:3;11763:147;11906:3;11763:147;:::i;:::-;11756:154;;11927:3;11920:10;;11557:379;;;:::o;11942:222::-;12035:4;12073:2;12062:9;12058:18;12050:26;;12086:71;12154:1;12143:9;12139:17;12130:6;12086:71;:::i;:::-;11942:222;;;;:::o;12170:807::-;12419:4;12457:3;12446:9;12442:19;12434:27;;12471:71;12539:1;12528:9;12524:17;12515:6;12471:71;:::i;:::-;12552:72;12620:2;12609:9;12605:18;12596:6;12552:72;:::i;:::-;12634:80;12710:2;12699:9;12695:18;12686:6;12634:80;:::i;:::-;12724;12800:2;12789:9;12785:18;12776:6;12724:80;:::i;:::-;12814:73;12882:3;12871:9;12867:19;12858:6;12814:73;:::i;:::-;12897;12965:3;12954:9;12950:19;12941:6;12897:73;:::i;:::-;12170:807;;;;;;;;;:::o;12983:210::-;13070:4;13108:2;13097:9;13093:18;13085:26;;13121:65;13183:1;13172:9;13168:17;13159:6;13121:65;:::i;:::-;12983:210;;;;:::o;13199:260::-;13311:4;13349:2;13338:9;13334:18;13326:26;;13362:90;13449:1;13438:9;13434:17;13425:6;13362:90;:::i;:::-;13199:260;;;;:::o;13465:313::-;13578:4;13616:2;13605:9;13601:18;13593:26;;13665:9;13659:4;13655:20;13651:1;13640:9;13636:17;13629:47;13693:78;13766:4;13757:6;13693:78;:::i;:::-;13685:86;;13465:313;;;;:::o;13784:419::-;13950:4;13988:2;13977:9;13973:18;13965:26;;14037:9;14031:4;14027:20;14023:1;14012:9;14008:17;14001:47;14065:131;14191:4;14065:131;:::i;:::-;14057:139;;13784:419;;;:::o;14209:::-;14375:4;14413:2;14402:9;14398:18;14390:26;;14462:9;14456:4;14452:20;14448:1;14437:9;14433:17;14426:47;14490:131;14616:4;14490:131;:::i;:::-;14482:139;;14209:419;;;:::o;14634:::-;14800:4;14838:2;14827:9;14823:18;14815:26;;14887:9;14881:4;14877:20;14873:1;14862:9;14858:17;14851:47;14915:131;15041:4;14915:131;:::i;:::-;14907:139;;14634:419;;;:::o;15059:::-;15225:4;15263:2;15252:9;15248:18;15240:26;;15312:9;15306:4;15302:20;15298:1;15287:9;15283:17;15276:47;15340:131;15466:4;15340:131;:::i;:::-;15332:139;;15059:419;;;:::o;15484:::-;15650:4;15688:2;15677:9;15673:18;15665:26;;15737:9;15731:4;15727:20;15723:1;15712:9;15708:17;15701:47;15765:131;15891:4;15765:131;:::i;:::-;15757:139;;15484:419;;;:::o;15909:::-;16075:4;16113:2;16102:9;16098:18;16090:26;;16162:9;16156:4;16152:20;16148:1;16137:9;16133:17;16126:47;16190:131;16316:4;16190:131;:::i;:::-;16182:139;;15909:419;;;:::o;16334:::-;16500:4;16538:2;16527:9;16523:18;16515:26;;16587:9;16581:4;16577:20;16573:1;16562:9;16558:17;16551:47;16615:131;16741:4;16615:131;:::i;:::-;16607:139;;16334:419;;;:::o;16759:::-;16925:4;16963:2;16952:9;16948:18;16940:26;;17012:9;17006:4;17002:20;16998:1;16987:9;16983:17;16976:47;17040:131;17166:4;17040:131;:::i;:::-;17032:139;;16759:419;;;:::o;17184:::-;17350:4;17388:2;17377:9;17373:18;17365:26;;17437:9;17431:4;17427:20;17423:1;17412:9;17408:17;17401:47;17465:131;17591:4;17465:131;:::i;:::-;17457:139;;17184:419;;;:::o;17609:::-;17775:4;17813:2;17802:9;17798:18;17790:26;;17862:9;17856:4;17852:20;17848:1;17837:9;17833:17;17826:47;17890:131;18016:4;17890:131;:::i;:::-;17882:139;;17609:419;;;:::o;18034:::-;18200:4;18238:2;18227:9;18223:18;18215:26;;18287:9;18281:4;18277:20;18273:1;18262:9;18258:17;18251:47;18315:131;18441:4;18315:131;:::i;:::-;18307:139;;18034:419;;;:::o;18459:222::-;18552:4;18590:2;18579:9;18575:18;18567:26;;18603:71;18671:1;18660:9;18656:17;18647:6;18603:71;:::i;:::-;18459:222;;;;:::o;18687:831::-;18950:4;18988:3;18977:9;18973:19;18965:27;;19002:71;19070:1;19059:9;19055:17;19046:6;19002:71;:::i;:::-;19083:80;19159:2;19148:9;19144:18;19135:6;19083:80;:::i;:::-;19210:9;19204:4;19200:20;19195:2;19184:9;19180:18;19173:48;19238:108;19341:4;19332:6;19238:108;:::i;:::-;19230:116;;19356:72;19424:2;19413:9;19409:18;19400:6;19356:72;:::i;:::-;19438:73;19506:3;19495:9;19491:19;19482:6;19438:73;:::i;:::-;18687:831;;;;;;;;:::o;19524:332::-;19645:4;19683:2;19672:9;19668:18;19660:26;;19696:71;19764:1;19753:9;19749:17;19740:6;19696:71;:::i;:::-;19777:72;19845:2;19834:9;19830:18;19821:6;19777:72;:::i;:::-;19524:332;;;;;:::o;19862:214::-;19951:4;19989:2;19978:9;19974:18;19966:26;;20002:67;20066:1;20055:9;20051:17;20042:6;20002:67;:::i;:::-;19862:214;;;;:::o;20163:132::-;20230:4;20253:3;20245:11;;20283:4;20278:3;20274:14;20266:22;;20163:132;;;:::o;20301:114::-;20368:6;20402:5;20396:12;20386:22;;20301:114;;;:::o;20421:99::-;20473:6;20507:5;20501:12;20491:22;;20421:99;;;:::o;20526:113::-;20596:4;20628;20623:3;20619:14;20611:22;;20526:113;;;:::o;20645:184::-;20744:11;20778:6;20773:3;20766:19;20818:4;20813:3;20809:14;20794:29;;20645:184;;;;:::o;20835:147::-;20936:11;20973:3;20958:18;;20835:147;;;;:::o;20988:169::-;21072:11;21106:6;21101:3;21094:19;21146:4;21141:3;21137:14;21122:29;;20988:169;;;;:::o;21163:305::-;21203:3;21222:20;21240:1;21222:20;:::i;:::-;21217:25;;21256:20;21274:1;21256:20;:::i;:::-;21251:25;;21410:1;21342:66;21338:74;21335:1;21332:81;21329:107;;;21416:18;;:::i;:::-;21329:107;21460:1;21457;21453:9;21446:16;;21163:305;;;;:::o;21474:185::-;21514:1;21531:20;21549:1;21531:20;:::i;:::-;21526:25;;21565:20;21583:1;21565:20;:::i;:::-;21560:25;;21604:1;21594:35;;21609:18;;:::i;:::-;21594:35;21651:1;21648;21644:9;21639:14;;21474:185;;;;:::o;21665:848::-;21726:5;21733:4;21757:6;21748:15;;21781:5;21772:14;;21795:712;21816:1;21806:8;21803:15;21795:712;;;21911:4;21906:3;21902:14;21896:4;21893:24;21890:50;;;21920:18;;:::i;:::-;21890:50;21970:1;21960:8;21956:16;21953:451;;;22385:4;22378:5;22374:16;22365:25;;21953:451;22435:4;22429;22425:15;22417:23;;22465:32;22488:8;22465:32;:::i;:::-;22453:44;;21795:712;;;21665:848;;;;;;;:::o;22519:281::-;22577:5;22601:23;22619:4;22601:23;:::i;:::-;22593:31;;22645:25;22661:8;22645:25;:::i;:::-;22633:37;;22689:104;22726:66;22716:8;22710:4;22689:104;:::i;:::-;22680:113;;22519:281;;;;:::o;22806:1073::-;22860:5;23051:8;23041:40;;23072:1;23063:10;;23074:5;;23041:40;23100:4;23090:36;;23117:1;23108:10;;23119:5;;23090:36;23186:4;23234:1;23229:27;;;;23270:1;23265:191;;;;23179:277;;23229:27;23247:1;23238:10;;23249:5;;;23265:191;23310:3;23300:8;23297:17;23294:43;;;23317:18;;:::i;:::-;23294:43;23366:8;23363:1;23359:16;23350:25;;23401:3;23394:5;23391:14;23388:40;;;23408:18;;:::i;:::-;23388:40;23441:5;;;23179:277;;23565:2;23555:8;23552:16;23546:3;23540:4;23537:13;23533:36;23515:2;23505:8;23502:16;23497:2;23491:4;23488:12;23484:35;23468:111;23465:246;;;23621:8;23615:4;23611:19;23602:28;;23656:3;23649:5;23646:14;23643:40;;;23663:18;;:::i;:::-;23643:40;23696:5;;23465:246;23736:42;23774:3;23764:8;23758:4;23755:1;23736:42;:::i;:::-;23721:57;;;;23810:4;23805:3;23801:14;23794:5;23791:25;23788:51;;;23819:18;;:::i;:::-;23788:51;23868:4;23861:5;23857:16;23848:25;;22806:1073;;;;;;:::o;23885:348::-;23925:7;23948:20;23966:1;23948:20;:::i;:::-;23943:25;;23982:20;24000:1;23982:20;:::i;:::-;23977:25;;24170:1;24102:66;24098:74;24095:1;24092:81;24087:1;24080:9;24073:17;24069:105;24066:131;;;24177:18;;:::i;:::-;24066:131;24225:1;24222;24218:9;24207:20;;23885:348;;;;:::o;24239:191::-;24279:4;24299:20;24317:1;24299:20;:::i;:::-;24294:25;;24333:20;24351:1;24333:20;:::i;:::-;24328:25;;24372:1;24369;24366:8;24363:34;;;24377:18;;:::i;:::-;24363:34;24422:1;24419;24415:9;24407:17;;24239:191;;;;:::o;24436:96::-;24473:7;24502:24;24520:5;24502:24;:::i;:::-;24491:35;;24436:96;;;:::o;24538:90::-;24572:7;24615:5;24608:13;24601:21;24590:32;;24538:90;;;:::o;24634:126::-;24671:7;24711:42;24704:5;24700:54;24689:65;;24634:126;;;:::o;24766:77::-;24803:7;24832:5;24821:16;;24766:77;;;:::o;24849:86::-;24884:7;24924:4;24917:5;24913:16;24902:27;;24849:86;;;:::o;24941:145::-;25010:9;25043:37;25074:5;25043:37;:::i;:::-;25030:50;;24941:145;;;:::o;25092:121::-;25150:9;25183:24;25201:5;25183:24;:::i;:::-;25170:37;;25092:121;;;:::o;25219:126::-;25269:9;25302:37;25333:5;25302:37;:::i;:::-;25289:50;;25219:126;;;:::o;25351:113::-;25401:9;25434:24;25452:5;25434:24;:::i;:::-;25421:37;;25351:113;;;:::o;25470:307::-;25538:1;25548:113;25562:6;25559:1;25556:13;25548:113;;;25647:1;25642:3;25638:11;25632:18;25628:1;25623:3;25619:11;25612:39;25584:2;25581:1;25577:10;25572:15;;25548:113;;;25679:6;25676:1;25673:13;25670:101;;;25759:1;25750:6;25745:3;25741:16;25734:27;25670:101;25519:258;25470:307;;;:::o;25783:180::-;25831:77;25828:1;25821:88;25928:4;25925:1;25918:15;25952:4;25949:1;25942:15;25969:180;26017:77;26014:1;26007:88;26114:4;26111:1;26104:15;26138:4;26135:1;26128:15;26155:180;26203:77;26200:1;26193:88;26300:4;26297:1;26290:15;26324:4;26321:1;26314:15;26341:180;26389:77;26386:1;26379:88;26486:4;26483:1;26476:15;26510:4;26507:1;26500:15;26650:117;26759:1;26756;26749:12;26773:102;26814:6;26865:2;26861:7;26856:2;26849:5;26845:14;26841:28;26831:38;;26773:102;;;:::o;26881:::-;26923:8;26970:5;26967:1;26963:13;26942:34;;26881:102;;;:::o;26989:224::-;27129:34;27125:1;27117:6;27113:14;27106:58;27198:7;27193:2;27185:6;27181:15;27174:32;26989:224;:::o;27219:177::-;27359:29;27355:1;27347:6;27343:14;27336:53;27219:177;:::o;27402:180::-;27542:32;27538:1;27530:6;27526:14;27519:56;27402:180;:::o;27588:182::-;27728:34;27724:1;27716:6;27712:14;27705:58;27588:182;:::o;27776:220::-;27916:34;27912:1;27904:6;27900:14;27893:58;27985:3;27980:2;27972:6;27968:15;27961:28;27776:220;:::o;28002:224::-;28142:34;28138:1;28130:6;28126:14;28119:58;28211:7;28206:2;28198:6;28194:15;28187:32;28002:224;:::o;28232:230::-;28372:34;28368:1;28360:6;28356:14;28349:58;28441:13;28436:2;28428:6;28424:15;28417:38;28232:230;:::o;28468:174::-;28608:26;28604:1;28596:6;28592:14;28585:50;28468:174;:::o;28648:156::-;28788:8;28784:1;28776:6;28772:14;28765:32;28648:156;:::o;28810:114::-;;:::o;28930:177::-;29070:29;29066:1;29058:6;29054:14;29047:53;28930:177;:::o;29113:226::-;29253:34;29249:1;29241:6;29237:14;29230:58;29322:9;29317:2;29309:6;29305:15;29298:34;29113:226;:::o;29345:122::-;29418:24;29436:5;29418:24;:::i;:::-;29411:5;29408:35;29398:63;;29457:1;29454;29447:12;29398:63;29345:122;:::o;29473:116::-;29543:21;29558:5;29543:21;:::i;:::-;29536:5;29533:32;29523:60;;29579:1;29576;29569:12;29523:60;29473:116;:::o;29595:122::-;29668:24;29686:5;29668:24;:::i;:::-;29661:5;29658:35;29648:63;;29707:1;29704;29697:12;29648:63;29595:122;:::o;29723:118::-;29794:22;29810:5;29794:22;:::i;:::-;29787:5;29784:33;29774:61;;29831:1;29828;29821:12;29774:61;29723:118;:::o

Swarm Source

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