ETH Price: $3,387.84 (-1.72%)
Gas: 4 Gwei

Token

SHIB MASTER (SHIBM)
 

Overview

Max Total Supply

1,000,000,000 SHIBM

Holders

169

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.829428110263133313 SHIBM

Value
$0.00
0x3654a4692786b915cacc53fc41c2660378f0c46e
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:
SHIBM

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-04
*/

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

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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    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);
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


/**
 * Allows for contract ownership along with multi-address authorization
 */


interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}


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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

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

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

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

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

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

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract SHIBM is IBEP20, Ownable {
    using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "SHIB MASTER";
    string constant _symbol = "SHIBM";
    uint8 constant _decimals = 18;

    uint256 _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100;  // 1% max tx
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100;  // 1% max wallet


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

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 liquidityFee = 0;
    uint256 teamFee = 1;
    uint256 marketingFee = 3;
    uint256 devFee = 1;
    uint256 totalFee = 5;
    uint256 feeDenominator = 100;
    
    address private marketingFeeReceiver = 0x3415b92A5ad2f9ee49e30D6E4412dCCE4Fe50d2B;
    address private devFeeReceiver = 0x3415b92A5ad2f9ee49e30D6E4412dCCE4Fe50d2B;
    address private teamFeeReceiver = 0x3415b92A5ad2f9ee49e30D6E4412dCCE4Fe50d2B;

    IUniswapV2Router02 public router;
    address public pair;

    uint256 public launchedAt;

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

    uint256 public swapThreshold = _totalSupply / 1000 * 1; // .1%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor ()  {
        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner();
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[address(router)] = true;
        isTxLimitExempt[address(pair)] = 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 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 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(!tradingActive){
            require(isFeeExempt[sender] || isFeeExempt[recipient], "Trading is not active yet.");
        }
        
        checkTxLimit(sender, amount);
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); }

        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }

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

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, 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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !(isFeeExempt[sender] || isFeeExempt[recipient]);
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling) { return totalFee.add(1); }
        return totalFee;
    }

    function enableTrading() external onlyOwner() {
        tradingActive = true;
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).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 = balanceOf(address(this));
        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] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountBNB = address(this).balance.sub(balanceBefore);
        uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2));
        //uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBdevelopment = amountBNB.mul(teamFee).div(totalBNBFee);
        uint256 amountBNBmarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);



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

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

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


    }

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

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

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function setTxLimit(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }

   function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }    

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

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

    function setFees( uint256 _teamFee, uint256 _marketingFee, uint256 _devFee , uint256 _feeDenominator) external onlyOwner() {
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        devFee = _devFee ;
        totalFee = _devFee.add(_teamFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
    }

    function setFeeReceiver(address _marketingFeeReceiver, address _teamFeeReceiver) external onlyOwner() {
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner() {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function manualSend() external onlyOwner() {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }

    function transferForeignToken(address _token) public onlyOwner() {
        require(_token != address(this), "Can't let you take all native token");
        uint256 _contractBalance = IBEP20(_token).balanceOf(address(this));
        payable(marketingFeeReceiver).transfer(_contractBalance);
    }
        
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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 IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","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":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"transferForeignToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee919062000a78565b633b9aca00620000ff919062000ac9565b6004556064600260045462000115919062000ac9565b62000121919062000b59565b6005556064600260045462000137919062000ac9565b62000143919062000b59565b6006556000600b556001600c556003600d556001600e556005600f556064601055733415b92a5ad2f9ee49e30d6e4412dcce4fe50d2b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733415b92a5ad2f9ee49e30d6e4412dcce4fe50d2b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733415b92a5ad2f9ee49e30d6e4412dcce4fe50d2b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760006101000a81548160ff0219169083151502179055506000601760016101000a81548160ff02191690831515021790555060016103e8600454620002ad919062000b59565b620002b9919062000ac9565b601855348015620002c957600080fd5b50620002ea620002de620007e960201b60201c565b620007f160201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d3919062000bfb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200043192919062000c3e565b6020604051808303816000875af115801562000451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000477919062000bfb565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006200058c620008b560201b60201c565b90506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620007da919062000c7c565b60405180910390a35062000c99565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200096c57808604811115620009445762000943620008de565b5b6001851615620009545780820291505b808102905062000964856200090d565b945062000924565b94509492505050565b60008262000987576001905062000a5a565b8162000997576000905062000a5a565b8160018114620009b05760028114620009bb57620009f1565b600191505062000a5a565b60ff841115620009d057620009cf620008de565b5b8360020a915084821115620009ea57620009e9620008de565b5b5062000a5a565b5060208310610133831016604e8410600b841016171562000a2b5782820a90508381111562000a255762000a24620008de565b5b62000a5a565b62000a3a84848460016200091a565b9250905081840481111562000a545762000a53620008de565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a858262000a61565b915062000a928362000a6b565b925062000ac17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000975565b905092915050565b600062000ad68262000a61565b915062000ae38362000a61565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b1f5762000b1e620008de565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b668262000a61565b915062000b738362000a61565b92508262000b865762000b8562000b2a565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bc38262000b96565b9050919050565b62000bd58162000bb6565b811462000be157600080fd5b50565b60008151905062000bf58162000bca565b92915050565b60006020828403121562000c145762000c1362000b91565b5b600062000c248482850162000be4565b91505092915050565b62000c388162000bb6565b82525050565b600060408201905062000c55600083018562000c2d565b62000c64602083018462000c2d565b9392505050565b62000c768162000a61565b82525050565b600060208201905062000c93600083018462000c6b565b92915050565b6136988062000ca96000396000f3fe6080604052600436106102295760003560e01c80638a8c523c11610123578063d51ed1c8116100ab578063f1f3bca31161006f578063f1f3bca31461083e578063f2fde38b1461087b578063f4293890146108a4578063f84ba65d146108bb578063f887ea40146108e457610230565b8063d51ed1c814610749578063dc93cf7014610786578063dd62ed3e146107af578063df20fd49146107ec578063e66db25e1461081557610230565b806395d89b41116100f257806395d89b4114610660578063a8aa1b311461068b578063a9059cbb146106b6578063bbc0c742146106f3578063bf56b3711461071e57610230565b80638a8c523c146105b65780638b42507f146105cd5780638da5cb5b1461060a5780638f9a55c01461063557610230565b8063571ac8b0116101b15780636fcba377116101755780636fcba377146104e357806370a082311461050c578063715018a6146105495780637d1db4a514610560578063893d20e81461058b57610230565b8063571ac8b0146104005780635c85974f1461043d5780635d0044ca14610466578063658d4b7f1461048f5780636ddd1713146104b857610230565b806318160ddd116101f857806318160ddd1461030557806323b872dd146103305780632b112e491461036d578063313ce567146103985780633f4218e0146103c357610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780631161ae39146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61090f565b604051610257919061292f565b60405180910390f35b34801561026c57600080fd5b50610275610915565b60405161028291906129e3565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612a94565b610952565b6040516102bf9190612aef565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612b0a565b610a44565b6040516102fc9190612aef565b60405180910390f35b34801561031157600080fd5b5061031a610a59565b604051610327919061292f565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612b4a565b610a63565b6040516103649190612aef565b60405180910390f35b34801561037957600080fd5b50610382610c63565b60405161038f919061292f565b60405180910390f35b3480156103a457600080fd5b506103ad610ce5565b6040516103ba9190612bb9565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190612bd4565b610cee565b6040516103f79190612aef565b60405180910390f35b34801561040c57600080fd5b5061042760048036038101906104229190612bd4565b610d0e565b6040516104349190612aef565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612c01565b610d41565b005b34801561047257600080fd5b5061048d60048036038101906104889190612c01565b610d6f565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612c5a565b610d9d565b005b3480156104c457600080fd5b506104cd610e00565b6040516104da9190612aef565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612c9a565b610e13565b005b34801561051857600080fd5b50610533600480360381019061052e9190612bd4565b610e68565b604051610540919061292f565b60405180910390f35b34801561055557600080fd5b5061055e610eb1565b005b34801561056c57600080fd5b50610575610ec5565b604051610582919061292f565b60405180910390f35b34801561059757600080fd5b506105a0610ecb565b6040516105ad9190612d10565b60405180910390f35b3480156105c257600080fd5b506105cb610eda565b005b3480156105d957600080fd5b506105f460048036038101906105ef9190612bd4565b610eff565b6040516106019190612aef565b60405180910390f35b34801561061657600080fd5b5061061f610f1f565b60405161062c9190612d10565b60405180910390f35b34801561064157600080fd5b5061064a610f48565b604051610657919061292f565b60405180910390f35b34801561066c57600080fd5b50610675610f4e565b60405161068291906129e3565b60405180910390f35b34801561069757600080fd5b506106a0610f8b565b6040516106ad9190612d10565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d89190612a94565b610fb1565b6040516106ea9190612aef565b60405180910390f35b3480156106ff57600080fd5b50610708610fc6565b6040516107159190612aef565b60405180910390f35b34801561072a57600080fd5b50610733610fd9565b604051610740919061292f565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190612c01565b610fdf565b60405161077d919061292f565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a89190612bd4565b611051565b005b3480156107bb57600080fd5b506107d660048036038101906107d19190612d2b565b6111b3565b6040516107e3919061292f565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612d6b565b61123a565b005b34801561082157600080fd5b5061083c60048036038101906108379190612d2b565b611267565b005b34801561084a57600080fd5b5061086560048036038101906108609190612dab565b6112f5565b604051610872919061292f565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190612bd4565b611357565b005b3480156108b057600080fd5b506108b96113db565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190612c5a565b611454565b005b3480156108f057600080fd5b506108f96114b7565b6040516109069190612e37565b60405180910390f35b60185481565b60606040518060400160405280600b81526020017f53484942204d4153544552000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a32919061292f565b60405180910390a36001905092915050565b600082610a5083610fdf565b11905092915050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c4f57610bce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dd9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c5a848484611541565b90509392505050565b6000610ce0610c93600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e68565b610cd2610cc1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e68565b600454611ac790919063ffffffff16565b611ac790919063ffffffff16565b905090565b60006012905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610d3a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610952565b9050919050565b610d49611b11565b6103e8600454610d599190612eb0565b811015610d6557600080fd5b8060058190555050565b610d77611b11565b6103e8600454610d879190612eb0565b811015610d9357600080fd5b8060068190555050565b610da5611b11565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760009054906101000a900460ff1681565b610e1b611b11565b83600c8190555082600d8190555081600e81905550610e5583610e478685611b8f90919063ffffffff16565b611b8f90919063ffffffff16565b600f819055508060108190555050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610eb9611b11565b610ec36000611bed565b565b60055481565b6000610ed5610f1f565b905090565b610ee2611b11565b6001601760016101000a81548160ff021916908315150217905550565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f534849424d000000000000000000000000000000000000000000000000000000815250905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fbe338484611541565b905092915050565b601760019054906101000a900460ff1681565b60165481565b600061104a610fec610c63565b61103c61102d600261101f601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e68565b611cb190919063ffffffff16565b85611cb190919063ffffffff16565b611d2c90919063ffffffff16565b9050919050565b611059611b11565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612f53565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111039190612d10565b602060405180830381865afa158015611120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111449190612f88565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111ae573d6000803e3d6000fd5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611242611b11565b81601760006101000a81548160ff021916908315150217905550806018819055505050565b61126f611b11565b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60004360016016546113079190612fb5565b10611329576113226001601054611ac790919063ffffffff16565b9050611352565b811561134c576113456001600f54611b8f90919063ffffffff16565b9050611352565b600f5490505b919050565b61135f611b11565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c69061307d565b60405180910390fd5b6113d881611bed565b50565b6113e3611b11565b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611450573d6000803e3d6000fd5b5050565b61145c611b11565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c91906129e3565b60405180910390fd5b5060008385611534919061309d565b9050809150509392505050565b6000601960009054906101000a900460ff161561156a57611563848484611d76565b9050611ac0565b601760019054906101000a900460ff1661165f57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161f5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61165e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116559061311d565b60405180910390fd5b5b6116698483611f49565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117155750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117fe57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117be575060065482600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117bb9190612fb5565b11155b6117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f4906131af565b60405180910390fd5b5b611806611fe6565b15611814576118136120bd565b5b61181c61264e565b1580156118765750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156118d0576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116118c757600080fd5b6118cf61265b565b5b611959826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dd9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006119a88585612664565b6119b257826119be565b6119bd858585612710565b5b9050611a1281600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ab2919061292f565b60405180910390a360019150505b9392505050565b6000611b0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114dd565b905092915050565b611b196128ab565b73ffffffffffffffffffffffffffffffffffffffff16611b37610f1f565b73ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b849061321b565b60405180910390fd5b565b6000808284611b9e9190612fb5565b905083811015611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90613287565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831415611cc45760009050611d26565b60008284611cd291906132a7565b9050828482611ce19190612eb0565b14611d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1890613373565b60405180910390fd5b809150505b92915050565b6000611d6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128b3565b905092915050565b6000611e01826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dd9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9682600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f36919061292f565b60405180910390a3600190509392505050565b60055481111580611fa35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd9906133df565b60405180910390fd5b5050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120535750601960009054906101000a900460ff16155b801561206b5750601760009054906101000a900460ff165b80156120b85750601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601960006101000a81548160ff02191690831515021790555060006120e330610e68565b905060006121236002612115600f54612107600b5487611cb190919063ffffffff16565b611d2c90919063ffffffff16565b611d2c90919063ffffffff16565b9050600061213a8284611ac790919063ffffffff16565b90506000600267ffffffffffffffff811115612159576121586133ff565b5b6040519080825280602002602001820160405280156121875781602001602082028036833780820191505090505b509050308160008151811061219f5761219e61342e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122105761220f61342e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016122b3959493929190613556565b600060405180830381600087803b1580156122cd57600080fd5b505af11580156122e1573d6000803e3d6000fd5b5050505060006122fa8247611ac790919063ffffffff16565b905060006123286123176002600b54611d2c90919063ffffffff16565b600f54611ac790919063ffffffff16565b9050600061235382612345600c5486611cb190919063ffffffff16565b611d2c90919063ffffffff16565b9050600061237e83612370600d5487611cb190919063ffffffff16565b611d2c90919063ffffffff16565b905060006123a98461239b600e5488611cb190919063ffffffff16565b611d2c90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516123f7906135e1565b600060405180830381858888f193505050503d8060008114612435576040519150601f19603f3d011682016040523d82523d6000602084013e61243a565b606091505b505090508061247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247590613642565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516124ca906135e1565b600060405180830381858888f193505050503d8060008114612508576040519150601f19603f3d011682016040523d82523d6000602084013e61250d565b606091505b5050905080612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890613642565b60405180910390fd5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16866175309060405161259d906135e1565b600060405180830381858888f193505050503d80600081146125db576040519150601f19603f3d011682016040523d82523d6000602084013e6125e0565b606091505b5050905080612624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261b90613642565b60405180910390fd5b505050505050505050505050506000601960006101000a81548160ff021916908315150217905550565b6000806016541415905090565b43601681905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127075750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b600080612792601054612784612775601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146112f5565b86611cb190919063ffffffff16565b611d2c90919063ffffffff16565b90506127e681600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612886919061292f565b60405180910390a36128a18184611ac790919063ffffffff16565b9150509392505050565b600033905090565b600080831182906128fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f191906129e3565b60405180910390fd5b50600083856129099190612eb0565b9050809150509392505050565b6000819050919050565b61292981612916565b82525050565b60006020820190506129446000830184612920565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612984578082015181840152602081019050612969565b83811115612993576000848401525b50505050565b6000601f19601f8301169050919050565b60006129b58261294a565b6129bf8185612955565b93506129cf818560208601612966565b6129d881612999565b840191505092915050565b600060208201905081810360008301526129fd81846129aa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3582612a0a565b9050919050565b612a4581612a2a565b8114612a5057600080fd5b50565b600081359050612a6281612a3c565b92915050565b612a7181612916565b8114612a7c57600080fd5b50565b600081359050612a8e81612a68565b92915050565b60008060408385031215612aab57612aaa612a05565b5b6000612ab985828601612a53565b9250506020612aca85828601612a7f565b9150509250929050565b60008115159050919050565b612ae981612ad4565b82525050565b6000602082019050612b046000830184612ae0565b92915050565b60008060408385031215612b2157612b20612a05565b5b6000612b2f85828601612a7f565b9250506020612b4085828601612a7f565b9150509250929050565b600080600060608486031215612b6357612b62612a05565b5b6000612b7186828701612a53565b9350506020612b8286828701612a53565b9250506040612b9386828701612a7f565b9150509250925092565b600060ff82169050919050565b612bb381612b9d565b82525050565b6000602082019050612bce6000830184612baa565b92915050565b600060208284031215612bea57612be9612a05565b5b6000612bf884828501612a53565b91505092915050565b600060208284031215612c1757612c16612a05565b5b6000612c2584828501612a7f565b91505092915050565b612c3781612ad4565b8114612c4257600080fd5b50565b600081359050612c5481612c2e565b92915050565b60008060408385031215612c7157612c70612a05565b5b6000612c7f85828601612a53565b9250506020612c9085828601612c45565b9150509250929050565b60008060008060808587031215612cb457612cb3612a05565b5b6000612cc287828801612a7f565b9450506020612cd387828801612a7f565b9350506040612ce487828801612a7f565b9250506060612cf587828801612a7f565b91505092959194509250565b612d0a81612a2a565b82525050565b6000602082019050612d256000830184612d01565b92915050565b60008060408385031215612d4257612d41612a05565b5b6000612d5085828601612a53565b9250506020612d6185828601612a53565b9150509250929050565b60008060408385031215612d8257612d81612a05565b5b6000612d9085828601612c45565b9250506020612da185828601612a7f565b9150509250929050565b600060208284031215612dc157612dc0612a05565b5b6000612dcf84828501612c45565b91505092915050565b6000819050919050565b6000612dfd612df8612df384612a0a565b612dd8565b612a0a565b9050919050565b6000612e0f82612de2565b9050919050565b6000612e2182612e04565b9050919050565b612e3181612e16565b82525050565b6000602082019050612e4c6000830184612e28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ebb82612916565b9150612ec683612916565b925082612ed657612ed5612e52565b5b828204905092915050565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6000612f3d602383612955565b9150612f4882612ee1565b604082019050919050565b60006020820190508181036000830152612f6c81612f30565b9050919050565b600081519050612f8281612a68565b92915050565b600060208284031215612f9e57612f9d612a05565b5b6000612fac84828501612f73565b91505092915050565b6000612fc082612916565b9150612fcb83612916565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561300057612fff612e81565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613067602683612955565b91506130728261300b565b604082019050919050565b600060208201905081810360008301526130968161305a565b9050919050565b60006130a882612916565b91506130b383612916565b9250828210156130c6576130c5612e81565b5b828203905092915050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000613107601a83612955565b9150613112826130d1565b602082019050919050565b60006020820190508181036000830152613136816130fa565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000613199602583612955565b91506131a48261313d565b604082019050919050565b600060208201905081810360008301526131c88161318c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613205602083612955565b9150613210826131cf565b602082019050919050565b60006020820190508181036000830152613234816131f8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613271601b83612955565b915061327c8261323b565b602082019050919050565b600060208201905081810360008301526132a081613264565b9050919050565b60006132b282612916565b91506132bd83612916565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132f6576132f5612e81565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061335d602183612955565b915061336882613301565b604082019050919050565b6000602082019050818103600083015261338c81613350565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006133c9601183612955565b91506133d482613393565b602082019050919050565b600060208201905081810360008301526133f8816133bc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061348261347d6134788461345d565b612dd8565b612916565b9050919050565b61349281613467565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134cd81612a2a565b82525050565b60006134df83836134c4565b60208301905092915050565b6000602082019050919050565b600061350382613498565b61350d81856134a3565b9350613518836134b4565b8060005b8381101561354957815161353088826134d3565b975061353b836134eb565b92505060018101905061351c565b5085935050505092915050565b600060a08201905061356b6000830188612920565b6135786020830187613489565b818103604083015261358a81866134f8565b90506135996060830185612d01565b6135a66080830184612920565b9695505050505050565b600081905092915050565b50565b60006135cb6000836135b0565b91506135d6826135bb565b600082019050919050565b60006135ec826135be565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061362c601e83612955565b9150613637826135f6565b602082019050919050565b6000602082019050818103600083015261365b8161361f565b905091905056fea26469706673582212202f1b4dd7e3abe151b83e89d9f3cf222d6284afe67d0309148d5cb36144186e7c64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638a8c523c11610123578063d51ed1c8116100ab578063f1f3bca31161006f578063f1f3bca31461083e578063f2fde38b1461087b578063f4293890146108a4578063f84ba65d146108bb578063f887ea40146108e457610230565b8063d51ed1c814610749578063dc93cf7014610786578063dd62ed3e146107af578063df20fd49146107ec578063e66db25e1461081557610230565b806395d89b41116100f257806395d89b4114610660578063a8aa1b311461068b578063a9059cbb146106b6578063bbc0c742146106f3578063bf56b3711461071e57610230565b80638a8c523c146105b65780638b42507f146105cd5780638da5cb5b1461060a5780638f9a55c01461063557610230565b8063571ac8b0116101b15780636fcba377116101755780636fcba377146104e357806370a082311461050c578063715018a6146105495780637d1db4a514610560578063893d20e81461058b57610230565b8063571ac8b0146104005780635c85974f1461043d5780635d0044ca14610466578063658d4b7f1461048f5780636ddd1713146104b857610230565b806318160ddd116101f857806318160ddd1461030557806323b872dd146103305780632b112e491461036d578063313ce567146103985780633f4218e0146103c357610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780631161ae39146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61090f565b604051610257919061292f565b60405180910390f35b34801561026c57600080fd5b50610275610915565b60405161028291906129e3565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612a94565b610952565b6040516102bf9190612aef565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612b0a565b610a44565b6040516102fc9190612aef565b60405180910390f35b34801561031157600080fd5b5061031a610a59565b604051610327919061292f565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612b4a565b610a63565b6040516103649190612aef565b60405180910390f35b34801561037957600080fd5b50610382610c63565b60405161038f919061292f565b60405180910390f35b3480156103a457600080fd5b506103ad610ce5565b6040516103ba9190612bb9565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190612bd4565b610cee565b6040516103f79190612aef565b60405180910390f35b34801561040c57600080fd5b5061042760048036038101906104229190612bd4565b610d0e565b6040516104349190612aef565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612c01565b610d41565b005b34801561047257600080fd5b5061048d60048036038101906104889190612c01565b610d6f565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612c5a565b610d9d565b005b3480156104c457600080fd5b506104cd610e00565b6040516104da9190612aef565b60405180910390f35b3480156104ef57600080fd5b5061050a60048036038101906105059190612c9a565b610e13565b005b34801561051857600080fd5b50610533600480360381019061052e9190612bd4565b610e68565b604051610540919061292f565b60405180910390f35b34801561055557600080fd5b5061055e610eb1565b005b34801561056c57600080fd5b50610575610ec5565b604051610582919061292f565b60405180910390f35b34801561059757600080fd5b506105a0610ecb565b6040516105ad9190612d10565b60405180910390f35b3480156105c257600080fd5b506105cb610eda565b005b3480156105d957600080fd5b506105f460048036038101906105ef9190612bd4565b610eff565b6040516106019190612aef565b60405180910390f35b34801561061657600080fd5b5061061f610f1f565b60405161062c9190612d10565b60405180910390f35b34801561064157600080fd5b5061064a610f48565b604051610657919061292f565b60405180910390f35b34801561066c57600080fd5b50610675610f4e565b60405161068291906129e3565b60405180910390f35b34801561069757600080fd5b506106a0610f8b565b6040516106ad9190612d10565b60405180910390f35b3480156106c257600080fd5b506106dd60048036038101906106d89190612a94565b610fb1565b6040516106ea9190612aef565b60405180910390f35b3480156106ff57600080fd5b50610708610fc6565b6040516107159190612aef565b60405180910390f35b34801561072a57600080fd5b50610733610fd9565b604051610740919061292f565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190612c01565b610fdf565b60405161077d919061292f565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a89190612bd4565b611051565b005b3480156107bb57600080fd5b506107d660048036038101906107d19190612d2b565b6111b3565b6040516107e3919061292f565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e9190612d6b565b61123a565b005b34801561082157600080fd5b5061083c60048036038101906108379190612d2b565b611267565b005b34801561084a57600080fd5b5061086560048036038101906108609190612dab565b6112f5565b604051610872919061292f565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190612bd4565b611357565b005b3480156108b057600080fd5b506108b96113db565b005b3480156108c757600080fd5b506108e260048036038101906108dd9190612c5a565b611454565b005b3480156108f057600080fd5b506108f96114b7565b6040516109069190612e37565b60405180910390f35b60185481565b60606040518060400160405280600b81526020017f53484942204d4153544552000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a32919061292f565b60405180910390a36001905092915050565b600082610a5083610fdf565b11905092915050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c4f57610bce826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dd9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c5a848484611541565b90509392505050565b6000610ce0610c93600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e68565b610cd2610cc1600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e68565b600454611ac790919063ffffffff16565b611ac790919063ffffffff16565b905090565b60006012905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000610d3a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610952565b9050919050565b610d49611b11565b6103e8600454610d599190612eb0565b811015610d6557600080fd5b8060058190555050565b610d77611b11565b6103e8600454610d879190612eb0565b811015610d9357600080fd5b8060068190555050565b610da5611b11565b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601760009054906101000a900460ff1681565b610e1b611b11565b83600c8190555082600d8190555081600e81905550610e5583610e478685611b8f90919063ffffffff16565b611b8f90919063ffffffff16565b600f819055508060108190555050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610eb9611b11565b610ec36000611bed565b565b60055481565b6000610ed5610f1f565b905090565b610ee2611b11565b6001601760016101000a81548160ff021916908315150217905550565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f534849424d000000000000000000000000000000000000000000000000000000815250905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fbe338484611541565b905092915050565b601760019054906101000a900460ff1681565b60165481565b600061104a610fec610c63565b61103c61102d600261101f601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e68565b611cb190919063ffffffff16565b85611cb190919063ffffffff16565b611d2c90919063ffffffff16565b9050919050565b611059611b11565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90612f53565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111039190612d10565b602060405180830381865afa158015611120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111449190612f88565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111ae573d6000803e3d6000fd5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611242611b11565b81601760006101000a81548160ff021916908315150217905550806018819055505050565b61126f611b11565b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60004360016016546113079190612fb5565b10611329576113226001601054611ac790919063ffffffff16565b9050611352565b811561134c576113456001600f54611b8f90919063ffffffff16565b9050611352565b600f5490505b919050565b61135f611b11565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c69061307d565b60405180910390fd5b6113d881611bed565b50565b6113e3611b11565b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611450573d6000803e3d6000fd5b5050565b61145c611b11565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c91906129e3565b60405180910390fd5b5060008385611534919061309d565b9050809150509392505050565b6000601960009054906101000a900460ff161561156a57611563848484611d76565b9050611ac0565b601760019054906101000a900460ff1661165f57600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161f5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61165e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116559061311d565b60405180910390fd5b5b6116698483611f49565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117155750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117fe57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117be575060065482600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117bb9190612fb5565b11155b6117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f4906131af565b60405180910390fd5b5b611806611fe6565b15611814576118136120bd565b5b61181c61264e565b1580156118765750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156118d0576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116118c757600080fd5b6118cf61265b565b5b611959826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dd9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006119a88585612664565b6119b257826119be565b6119bd858585612710565b5b9050611a1281600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ab2919061292f565b60405180910390a360019150505b9392505050565b6000611b0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114dd565b905092915050565b611b196128ab565b73ffffffffffffffffffffffffffffffffffffffff16611b37610f1f565b73ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b849061321b565b60405180910390fd5b565b6000808284611b9e9190612fb5565b905083811015611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90613287565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831415611cc45760009050611d26565b60008284611cd291906132a7565b9050828482611ce19190612eb0565b14611d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1890613373565b60405180910390fd5b809150505b92915050565b6000611d6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128b3565b905092915050565b6000611e01826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dd9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9682600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f36919061292f565b60405180910390a3600190509392505050565b60055481111580611fa35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd9906133df565b60405180910390fd5b5050565b6000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156120535750601960009054906101000a900460ff16155b801561206b5750601760009054906101000a900460ff165b80156120b85750601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601960006101000a81548160ff02191690831515021790555060006120e330610e68565b905060006121236002612115600f54612107600b5487611cb190919063ffffffff16565b611d2c90919063ffffffff16565b611d2c90919063ffffffff16565b9050600061213a8284611ac790919063ffffffff16565b90506000600267ffffffffffffffff811115612159576121586133ff565b5b6040519080825280602002602001820160405280156121875781602001602082028036833780820191505090505b509050308160008151811061219f5761219e61342e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106122105761220f61342e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016122b3959493929190613556565b600060405180830381600087803b1580156122cd57600080fd5b505af11580156122e1573d6000803e3d6000fd5b5050505060006122fa8247611ac790919063ffffffff16565b905060006123286123176002600b54611d2c90919063ffffffff16565b600f54611ac790919063ffffffff16565b9050600061235382612345600c5486611cb190919063ffffffff16565b611d2c90919063ffffffff16565b9050600061237e83612370600d5487611cb190919063ffffffff16565b611d2c90919063ffffffff16565b905060006123a98461239b600e5488611cb190919063ffffffff16565b611d2c90919063ffffffff16565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516123f7906135e1565b600060405180830381858888f193505050503d8060008114612435576040519150601f19603f3d011682016040523d82523d6000602084013e61243a565b606091505b505090508061247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247590613642565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516124ca906135e1565b600060405180830381858888f193505050503d8060008114612508576040519150601f19603f3d011682016040523d82523d6000602084013e61250d565b606091505b5050905080612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254890613642565b60405180910390fd5b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16866175309060405161259d906135e1565b600060405180830381858888f193505050503d80600081146125db576040519150601f19603f3d011682016040523d82523d6000602084013e6125e0565b606091505b5050905080612624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261b90613642565b60405180910390fd5b505050505050505050505050506000601960006101000a81548160ff021916908315150217905550565b6000806016541415905090565b43601681905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127075750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b600080612792601054612784612775601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146112f5565b86611cb190919063ffffffff16565b611d2c90919063ffffffff16565b90506127e681600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8f90919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612886919061292f565b60405180910390a36128a18184611ac790919063ffffffff16565b9150509392505050565b600033905090565b600080831182906128fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f191906129e3565b60405180910390fd5b50600083856129099190612eb0565b9050809150509392505050565b6000819050919050565b61292981612916565b82525050565b60006020820190506129446000830184612920565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612984578082015181840152602081019050612969565b83811115612993576000848401525b50505050565b6000601f19601f8301169050919050565b60006129b58261294a565b6129bf8185612955565b93506129cf818560208601612966565b6129d881612999565b840191505092915050565b600060208201905081810360008301526129fd81846129aa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3582612a0a565b9050919050565b612a4581612a2a565b8114612a5057600080fd5b50565b600081359050612a6281612a3c565b92915050565b612a7181612916565b8114612a7c57600080fd5b50565b600081359050612a8e81612a68565b92915050565b60008060408385031215612aab57612aaa612a05565b5b6000612ab985828601612a53565b9250506020612aca85828601612a7f565b9150509250929050565b60008115159050919050565b612ae981612ad4565b82525050565b6000602082019050612b046000830184612ae0565b92915050565b60008060408385031215612b2157612b20612a05565b5b6000612b2f85828601612a7f565b9250506020612b4085828601612a7f565b9150509250929050565b600080600060608486031215612b6357612b62612a05565b5b6000612b7186828701612a53565b9350506020612b8286828701612a53565b9250506040612b9386828701612a7f565b9150509250925092565b600060ff82169050919050565b612bb381612b9d565b82525050565b6000602082019050612bce6000830184612baa565b92915050565b600060208284031215612bea57612be9612a05565b5b6000612bf884828501612a53565b91505092915050565b600060208284031215612c1757612c16612a05565b5b6000612c2584828501612a7f565b91505092915050565b612c3781612ad4565b8114612c4257600080fd5b50565b600081359050612c5481612c2e565b92915050565b60008060408385031215612c7157612c70612a05565b5b6000612c7f85828601612a53565b9250506020612c9085828601612c45565b9150509250929050565b60008060008060808587031215612cb457612cb3612a05565b5b6000612cc287828801612a7f565b9450506020612cd387828801612a7f565b9350506040612ce487828801612a7f565b9250506060612cf587828801612a7f565b91505092959194509250565b612d0a81612a2a565b82525050565b6000602082019050612d256000830184612d01565b92915050565b60008060408385031215612d4257612d41612a05565b5b6000612d5085828601612a53565b9250506020612d6185828601612a53565b9150509250929050565b60008060408385031215612d8257612d81612a05565b5b6000612d9085828601612c45565b9250506020612da185828601612a7f565b9150509250929050565b600060208284031215612dc157612dc0612a05565b5b6000612dcf84828501612c45565b91505092915050565b6000819050919050565b6000612dfd612df8612df384612a0a565b612dd8565b612a0a565b9050919050565b6000612e0f82612de2565b9050919050565b6000612e2182612e04565b9050919050565b612e3181612e16565b82525050565b6000602082019050612e4c6000830184612e28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ebb82612916565b9150612ec683612916565b925082612ed657612ed5612e52565b5b828204905092915050565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b6000612f3d602383612955565b9150612f4882612ee1565b604082019050919050565b60006020820190508181036000830152612f6c81612f30565b9050919050565b600081519050612f8281612a68565b92915050565b600060208284031215612f9e57612f9d612a05565b5b6000612fac84828501612f73565b91505092915050565b6000612fc082612916565b9150612fcb83612916565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561300057612fff612e81565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613067602683612955565b91506130728261300b565b604082019050919050565b600060208201905081810360008301526130968161305a565b9050919050565b60006130a882612916565b91506130b383612916565b9250828210156130c6576130c5612e81565b5b828203905092915050565b7f54726164696e67206973206e6f7420616374697665207965742e000000000000600082015250565b6000613107601a83612955565b9150613112826130d1565b602082019050919050565b60006020820190508181036000830152613136816130fa565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000613199602583612955565b91506131a48261313d565b604082019050919050565b600060208201905081810360008301526131c88161318c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613205602083612955565b9150613210826131cf565b602082019050919050565b60006020820190508181036000830152613234816131f8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613271601b83612955565b915061327c8261323b565b602082019050919050565b600060208201905081810360008301526132a081613264565b9050919050565b60006132b282612916565b91506132bd83612916565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132f6576132f5612e81565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061335d602183612955565b915061336882613301565b604082019050919050565b6000602082019050818103600083015261338c81613350565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006133c9601183612955565b91506133d482613393565b602082019050919050565b600060208201905081810360008301526133f8816133bc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061348261347d6134788461345d565b612dd8565b612916565b9050919050565b61349281613467565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134cd81612a2a565b82525050565b60006134df83836134c4565b60208301905092915050565b6000602082019050919050565b600061350382613498565b61350d81856134a3565b9350613518836134b4565b8060005b8381101561354957815161353088826134d3565b975061353b836134eb565b92505060018101905061351c565b5085935050505092915050565b600060a08201905061356b6000830188612920565b6135786020830187613489565b818103604083015261358a81866134f8565b90506135996060830185612d01565b6135a66080830184612920565b9695505050505050565b600081905092915050565b50565b60006135cb6000836135b0565b91506135d6826135bb565b600082019050919050565b60006135ec826135be565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061362c601e83612955565b9150613637826135f6565b602082019050919050565b6000602082019050818103600083015261365b8161361f565b905091905056fea26469706673582212202f1b4dd7e3abe151b83e89d9f3cf222d6284afe67d0309148d5cb36144186e7c64736f6c634300080a0033

Deployed Bytecode Sourcemap

13880:11168:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15331:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16379:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16802:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24827:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16109:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17320:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24502:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16203:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14607:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17026:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22693:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22846:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23009:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15252:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23275:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16550:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3775:103;;;;;;;;;;;;;:::i;:::-;;14332:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16473:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19722:85;;;;;;;;;;;;;:::i;:::-;;14658:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3127:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14407:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16289:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15190:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17156:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15289:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15218:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24652:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24187:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16661:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23833:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23615:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19489:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4033:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23998:181;;;;;;;;;;;;;:::i;:::-;;23138:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15151:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15331:54;;;;:::o;16379:80::-;16427:13;16451:5;;;;;;;;;;;;;;;;;16444:12;;16379:80;:::o;16802:216::-;16877:4;16929:6;16894:11;:23;16906:10;16894:23;;;;;;;;;;;;;;;:32;16918:7;16894:32;;;;;;;;;;;;;;;:41;;;;16972:7;16951:37;;16960:10;16951:37;;;16981:6;16951:37;;;;;;:::i;:::-;;;;;;;;17006:4;16999:11;;16802:216;;;;:::o;24827:150::-;24907:4;24963:6;24931:29;24951:8;24931:19;:29::i;:::-;:38;24924:45;;24827:150;;;;:::o;16109:88::-;16164:7;16182:12;;16175:19;;16109:88;:::o;17320:370::-;17420:4;17475:17;17440:11;:19;17452:6;17440:19;;;;;;;;;;;;;;;:31;17460:10;17440:31;;;;;;;;;;;;;;;;:52;17437:186;;17542:69;17578:6;17542:69;;;;;;;;;;;;;;;;;:11;:19;17554:6;17542:19;;;;;;;;;;;;;;;:31;17562:10;17542:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;17508:11;:19;17520:6;17508:19;;;;;;;;;;;;;;;:31;17528:10;17508:31;;;;;;;;;;;;;;;:103;;;;17437:186;17642:40;17656:6;17664:9;17675:6;17642:13;:40::i;:::-;17635:47;;17320:370;;;;;:::o;24502:142::-;24555:7;24582:54;24620:15;24630:4;;;;;;;;;;;24620:9;:15::i;:::-;24582:33;24599:15;24609:4;;;;;;;;;;;24599:9;:15::i;:::-;24582:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;24575:61;;24502:142;:::o;16203:80::-;16255:5;14261:2;16264:16;;16203:80;:::o;14607:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;17026:122::-;17081:4;17105:35;17113:7;17122:17;17105:7;:35::i;:::-;17098:42;;17026:122;;;:::o;22693:146::-;3013:13;:11;:13::i;:::-;22794:4:::1;22779:12;;:19;;;;:::i;:::-;22769:6;:29;;22761:38;;;::::0;::::1;;22825:6;22810:12;:21;;;;22693:146:::0;:::o;22846:151::-;3013:13;:11;:13::i;:::-;22949:4:::1;22934:12;;:19;;;;:::i;:::-;22924:6;:29;;22916:39;;;::::0;::::1;;22983:6;22966:14;:23;;;;22846:151:::0;:::o;23009:121::-;3013:13;:11;:13::i;:::-;23116:6:::1;23094:11;:19;23106:6;23094:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23009:121:::0;;:::o;15252:30::-;;;;;;;;;;;;;:::o;23275:332::-;3013:13;:11;:13::i;:::-;23419:8:::1;23409:7;:18;;;;23453:13;23438:12;:28;;;;23486:7;23477:6;:16;;;;23516:40;23542:13;23516:21;23528:8;23516:7;:11;;:21;;;;:::i;:::-;:25;;:40;;;;:::i;:::-;23505:8;:51;;;;23584:15;23567:14;:32;;;;23275:332:::0;;;;:::o;16550:105::-;16616:7;16634:9;:18;16644:7;16634:18;;;;;;;;;;;;;;;;16627:25;;16550:105;;;:::o;3775:103::-;3013:13;:11;:13::i;:::-;3840:30:::1;3867:1;3840:18;:30::i;:::-;3775:103::o:0;14332:54::-;;;;:::o;16473:71::-;16516:7;16534;:5;:7::i;:::-;16527:14;;16473:71;:::o;19722:85::-;3013:13;:11;:13::i;:::-;19795:4:::1;19779:13;;:20;;;;;;;;;;;;;;;;;;19722:85::o:0;14658:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3127:87::-;3173:7;3200:6;;;;;;;;;;;3193:13;;3127:87;:::o;14407:56::-;;;;:::o;16289:84::-;16339:13;16363:7;;;;;;;;;;;;;;;;;16356:14;;16289:84;:::o;15190:19::-;;;;;;;;;;;;;:::o;17156:156::-;17236:4;17260:44;17274:10;17286:9;17297:6;17260:13;:44::i;:::-;17253:51;;17156:156;;;;:::o;15289:33::-;;;;;;;;;;;;;:::o;15218:25::-;;;;:::o;24652:167::-;24720:7;24747:64;24788:22;:20;:22::i;:::-;24747:36;24760:22;24780:1;24760:15;24770:4;;;;;;;;;;;24760:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;24747:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;24740:71;;24652:167;;;:::o;24187:299::-;3013:13;:11;:13::i;:::-;24289:4:::1;24271:23;;:6;:23;;;;24263:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24345:24;24379:6;24372:24;;;24405:4;24372:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24345:66;;24430:20;;;;;;;;;;;24422:38;;:56;24461:16;24422:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24252:234;24187:299:::0;:::o;16661:133::-;16745:7;16763:11;:19;16775:6;16763:19;;;;;;;;;;;;;;;:28;16783:7;16763:28;;;;;;;;;;;;;;;;16756:35;;16661:133;;;;:::o;23833:157::-;3013:13;:11;:13::i;:::-;23940:8:::1;23926:11;;:22;;;;;;;;;;;;;;;;;;23975:7;23959:13;:23;;;;23833:157:::0;;:::o;23615:210::-;3013:13;:11;:13::i;:::-;23751:21:::1;23728:20;;:44;;;;;;;;;;;;;;;;;;23801:16;23783:15;;:34;;;;;;;;;;;;;;;;;;23615:210:::0;;:::o;19489:225::-;19545:7;19586:12;19581:1;19568:10;;:14;;;;:::i;:::-;:30;19565:67;;19608:21;19627:1;19608:14;;:18;;:21;;;;:::i;:::-;19601:28;;;;19565:67;19645:7;19642:39;;;19663:15;19676:1;19663:8;;:12;;:15;;;;:::i;:::-;19656:22;;;;19642:39;19698:8;;19691:15;;19489:225;;;;:::o;4033:201::-;3013:13;:11;:13::i;:::-;4142:1:::1;4122:22;;:8;:22;;;;4114:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4198:28;4217:8;4198:18;:28::i;:::-;4033:201:::0;:::o;23998:181::-;3013:13;:11;:13::i;:::-;24052:26:::1;24081:21;24052:50;;24121:20;;;;;;;;;;;24113:38;;:58;24152:18;24113:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24041:138;23998:181::o:0;23138:129::-;3013:13;:11;:13::i;:::-;23253:6:::1;23227:15;:23;23243:6;23227:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;23138:129:::0;;:::o;15151:32::-;;;;;;;;;;;;;:::o;412:192::-;498:7;531:1;526;:6;;534:12;518:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;558:9;574:1;570;:5;;;;:::i;:::-;558:17;;595:1;588:8;;;412:192;;;;;:::o;17698:1094::-;17790:4;17810:6;;;;;;;;;;;17807:63;;;17826:41;17841:6;17849:9;17860:6;17826:14;:41::i;:::-;17819:48;;;;17807:63;17886:13;;;;;;;;;;;17882:129;;17923:11;:19;17935:6;17923:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;17946:11;:22;17958:9;17946:22;;;;;;;;;;;;;;;;;;;;;;;;;17923:45;17915:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17882:129;18031:28;18044:6;18052;18031:12;:28::i;:::-;18097:4;;;;;;;;;;;18084:17;;:9;:17;;;;:38;;;;;18118:4;;;;;;;;;;;18105:17;;:9;:17;;;;18084:38;18080:198;;;18147:15;:26;18163:9;18147:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;18210:14;;18200:6;18177:9;:20;18187:9;18177:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;18147:77;18139:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;18080:198;18301:16;:14;:16::i;:::-;18298:35;;;18320:10;:8;:10::i;:::-;18298:35;18349:10;:8;:10::i;:::-;18348:11;:32;;;;;18376:4;;;;;;;;;;;18363:17;;:9;:17;;;18348:32;18345:81;;;18411:1;18391:9;:17;18401:6;18391:17;;;;;;;;;;;;;;;;:21;18383:30;;;;;;18415:8;:6;:8::i;:::-;18345:81;18458:53;18480:6;18458:53;;;;;;;;;;;;;;;;;:9;:17;18468:6;18458:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18438:9;:17;18448:6;18438:17;;;;;;;;;;;;;;;:73;;;;18524:22;18549:32;18563:6;18571:9;18549:13;:32::i;:::-;:78;;18621:6;18549:78;;;18584:34;18592:6;18600:9;18611:6;18584:7;:34::i;:::-;18549:78;18524:103;;18661:40;18686:14;18661:9;:20;18671:9;18661:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;18638:9;:20;18648:9;18638:20;;;;;;;;;;;;;;;:63;;;;18736:9;18719:43;;18728:6;18719:43;;;18747:14;18719:43;;;;;;:::i;:::-;;;;;;;;18780:4;18773:11;;;17698:1094;;;;;;:::o;270:136::-;328:7;355:43;359:1;362;355:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;348:50;;270:136;;;;:::o;3292:132::-;3367:12;:10;:12::i;:::-;3356:23;;:7;:5;:7::i;:::-;:23;;;3348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3292:132::o;83:181::-;141:7;161:9;177:1;173;:5;;;;:::i;:::-;161:17;;202:1;197;:6;;189:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;255:1;248:8;;;83:181;;;;:::o;4394:191::-;4468:16;4487:6;;;;;;;;;;;4468:25;;4513:8;4504:6;;:17;;;;;;;;;;;;;;;;;;4568:8;4537:40;;4558:8;4537:40;;;;;;;;;;;;4457:128;4394:191;:::o;610:250::-;668:7;697:1;692;:6;688:47;;;722:1;715:8;;;;688:47;747:9;763:1;759;:5;;;;:::i;:::-;747:17;;792:1;787;783;:5;;;;:::i;:::-;:10;775:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;851:1;844:8;;;610:250;;;;;:::o;866:132::-;924:7;951:39;955:1;958;951:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;944:46;;866:132;;;;:::o;18804:330::-;18897:4;18934:53;18956:6;18934:53;;;;;;;;;;;;;;;;;:9;:17;18944:6;18934:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18914:9;:17;18924:6;18914:17;;;;;;;;;;;;;;;:73;;;;19021:32;19046:6;19021:9;:20;19031:9;19021:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18998:9;:20;19008:9;18998:20;;;;;;;;;;;;;;;:55;;;;19086:9;19069:35;;19078:6;19069:35;;;19097:6;19069:35;;;;;;:::i;:::-;;;;;;;;19122:4;19115:11;;18804:330;;;;;:::o;19142:166::-;19239:12;;19229:6;:22;;:49;;;;19255:15;:23;19271:6;19255:23;;;;;;;;;;;;;;;;;;;;;;;;;19229:49;19221:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;19142:166;;:::o;20195:197::-;20244:4;20282;;;;;;;;;;;20268:18;;:10;:18;;;;:38;;;;;20300:6;;;;;;;;;;;20299:7;20268:38;:62;;;;;20319:11;;;;;;;;;;;20268:62;:116;;;;;20371:13;;20343:9;:24;20361:4;20343:24;;;;;;;;;;;;;;;;:41;;20268:116;20261:123;;20195:197;:::o;20400:1739::-;15448:4;15439:6;;:13;;;;;;;;;;;;;;;;;;20449:28:::1;20480:24;20498:4;20480:9;:24::i;:::-;20449:55;;20515:23;20541:59;20598:1;20541:52;20584:8;;20541:38;20566:12;;20541:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;20515:85;;20611:20;20634:41;20659:15;20634:20;:24;;:41;;;;:::i;:::-;20611:64;;20688:21;20726:1;20712:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20688:40;;20757:4;20739;20744:1;20739:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;20783:4;;;;;;;;;;;20773;20778:1;20773:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;20800:21;20824;20800:45;;20858:6;;;;;;;;;;;:57;;;20930:12;20957:1;20973:4;21000;21020:15;20858:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21057:17;21077:40;21103:13;21077:21;:25;;:40;;;;:::i;:::-;21057:60;;21128:19;21150:33;21163:19;21180:1;21163:12;;:16;;:19;;;;:::i;:::-;21150:8;;:12;;:33;;;;:::i;:::-;21128:55;;21287:28;21318:39;21345:11;21318:22;21332:7;;21318:9;:13;;:22;;;;:::i;:::-;:26;;:39;;;;:::i;:::-;21287:70;;21368:26;21397:44;21429:11;21397:27;21411:12;;21397:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;21368:73;;21452:20;21475:38;21501:11;21475:21;21489:6;;21475:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;21452:61;;21531:21;21589:20;;;;;;;;;;;21581:34;;21623:18;21648:5;21581:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21530:128;;;21677:16;21669:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;21742:15;21794:14;;;;;;;;;;;21786:28;;21822:12;21841:5;21786:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21741:110;;;21870:10;21862:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;21929:23;21989:15;;;;;;;;;;;21981:29;;22018:20;22045:5;21981:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21928:127;;;22074:18;22066:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;20438:1701;;;;;;;;;;;;;15466:5:::0;15457:6;;:14;;;;;;;;;;;;;;;;;;20400:1739::o;22516:90::-;22559:4;22597:1;22583:10;;:15;;22576:22;;22516:90;:::o;22614:71::-;22665:12;22652:10;:25;;;;22614:71::o;19320:161::-;19401:4;19427:11;:19;19439:6;19427:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;19450:11;:22;19462:9;19450:22;;;;;;;;;;;;;;;;;;;;;;;;;19427:45;19425:48;19418:55;;19320:161;;;;:::o;19815:372::-;19900:7;19920:17;19940:61;19986:14;;19940:41;19951:29;19975:4;;;;;;;;;;;19963:16;;:8;:16;;;19951:11;:29::i;:::-;19940:6;:10;;:41;;;;:::i;:::-;:45;;:61;;;;:::i;:::-;19920:81;;20041:39;20070:9;20041;:24;20059:4;20041:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;20014:9;:24;20032:4;20014:24;;;;;;;;;;;;;;;:66;;;;20121:4;20096:42;;20105:6;20096:42;;;20128:9;20096:42;;;;;;:::i;:::-;;;;;;;;20158:21;20169:9;20158:6;:10;;:21;;;;:::i;:::-;20151:28;;;19815:372;;;;;:::o;2343:98::-;2396:7;2423:10;2416:17;;2343:98;:::o;1004:345::-;1090:7;1189:1;1185;:5;1192:12;1177:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1216:9;1232:1;1228;:5;;;;:::i;:::-;1216:17;;1340:1;1333:8;;;1004:345;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:619::-;4403:6;4411;4419;4468:2;4456:9;4447:7;4443:23;4439:32;4436:119;;;4474:79;;:::i;:::-;4436:119;4594:1;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4565:117;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4849:2;4875:53;4920:7;4911:6;4900:9;4896:22;4875:53;:::i;:::-;4865:63;;4820:118;4326:619;;;;;:::o;4951:86::-;4986:7;5026:4;5019:5;5015:16;5004:27;;4951:86;;;:::o;5043:112::-;5126:22;5142:5;5126:22;:::i;:::-;5121:3;5114:35;5043:112;;:::o;5161:214::-;5250:4;5288:2;5277:9;5273:18;5265:26;;5301:67;5365:1;5354:9;5350:17;5341:6;5301:67;:::i;:::-;5161:214;;;;:::o;5381:329::-;5440:6;5489:2;5477:9;5468:7;5464:23;5460:32;5457:119;;;5495:79;;:::i;:::-;5457:119;5615:1;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5586:117;5381:329;;;;:::o;5716:::-;5775:6;5824:2;5812:9;5803:7;5799:23;5795:32;5792:119;;;5830:79;;:::i;:::-;5792:119;5950:1;5975:53;6020:7;6011:6;6000:9;5996:22;5975:53;:::i;:::-;5965:63;;5921:117;5716:329;;;;:::o;6051:116::-;6121:21;6136:5;6121:21;:::i;:::-;6114:5;6111:32;6101:60;;6157:1;6154;6147:12;6101:60;6051:116;:::o;6173:133::-;6216:5;6254:6;6241:20;6232:29;;6270:30;6294:5;6270:30;:::i;:::-;6173:133;;;;:::o;6312:468::-;6377:6;6385;6434:2;6422:9;6413:7;6409:23;6405:32;6402:119;;;6440:79;;:::i;:::-;6402:119;6560:1;6585:53;6630:7;6621:6;6610:9;6606:22;6585:53;:::i;:::-;6575:63;;6531:117;6687:2;6713:50;6755:7;6746:6;6735:9;6731:22;6713:50;:::i;:::-;6703:60;;6658:115;6312:468;;;;;:::o;6786:765::-;6872:6;6880;6888;6896;6945:3;6933:9;6924:7;6920:23;6916:33;6913:120;;;6952:79;;:::i;:::-;6913:120;7072:1;7097:53;7142:7;7133:6;7122:9;7118:22;7097:53;:::i;:::-;7087:63;;7043:117;7199:2;7225:53;7270:7;7261:6;7250:9;7246:22;7225:53;:::i;:::-;7215:63;;7170:118;7327:2;7353:53;7398:7;7389:6;7378:9;7374:22;7353:53;:::i;:::-;7343:63;;7298:118;7455:2;7481:53;7526:7;7517:6;7506:9;7502:22;7481:53;:::i;:::-;7471:63;;7426:118;6786:765;;;;;;;:::o;7557:118::-;7644:24;7662:5;7644:24;:::i;:::-;7639:3;7632:37;7557:118;;:::o;7681:222::-;7774:4;7812:2;7801:9;7797:18;7789:26;;7825:71;7893:1;7882:9;7878:17;7869:6;7825:71;:::i;:::-;7681:222;;;;:::o;7909:474::-;7977:6;7985;8034:2;8022:9;8013:7;8009:23;8005:32;8002:119;;;8040:79;;:::i;:::-;8002:119;8160:1;8185:53;8230:7;8221:6;8210:9;8206:22;8185:53;:::i;:::-;8175:63;;8131:117;8287:2;8313:53;8358:7;8349:6;8338:9;8334:22;8313:53;:::i;:::-;8303:63;;8258:118;7909:474;;;;;:::o;8389:468::-;8454:6;8462;8511:2;8499:9;8490:7;8486:23;8482:32;8479:119;;;8517:79;;:::i;:::-;8479:119;8637:1;8662:50;8704:7;8695:6;8684:9;8680:22;8662:50;:::i;:::-;8652:60;;8608:114;8761:2;8787:53;8832:7;8823:6;8812:9;8808:22;8787:53;:::i;:::-;8777:63;;8732:118;8389:468;;;;;:::o;8863:323::-;8919:6;8968:2;8956:9;8947:7;8943:23;8939:32;8936:119;;;8974:79;;:::i;:::-;8936:119;9094:1;9119:50;9161:7;9152:6;9141:9;9137:22;9119:50;:::i;:::-;9109:60;;9065:114;8863:323;;;;:::o;9192:60::-;9220:3;9241:5;9234:12;;9192:60;;;:::o;9258:142::-;9308:9;9341:53;9359:34;9368:24;9386:5;9368:24;:::i;:::-;9359:34;:::i;:::-;9341:53;:::i;:::-;9328:66;;9258:142;;;:::o;9406:126::-;9456:9;9489:37;9520:5;9489:37;:::i;:::-;9476:50;;9406:126;;;:::o;9538:153::-;9615:9;9648:37;9679:5;9648:37;:::i;:::-;9635:50;;9538:153;;;:::o;9697:185::-;9811:64;9869:5;9811:64;:::i;:::-;9806:3;9799:77;9697:185;;:::o;9888:276::-;10008:4;10046:2;10035:9;10031:18;10023:26;;10059:98;10154:1;10143:9;10139:17;10130:6;10059:98;:::i;:::-;9888:276;;;;:::o;10170:180::-;10218:77;10215:1;10208:88;10315:4;10312:1;10305:15;10339:4;10336:1;10329:15;10356:180;10404:77;10401:1;10394:88;10501:4;10498:1;10491:15;10525:4;10522:1;10515:15;10542:185;10582:1;10599:20;10617:1;10599:20;:::i;:::-;10594:25;;10633:20;10651:1;10633:20;:::i;:::-;10628:25;;10672:1;10662:35;;10677:18;;:::i;:::-;10662:35;10719:1;10716;10712:9;10707:14;;10542:185;;;;:::o;10733:222::-;10873:34;10869:1;10861:6;10857:14;10850:58;10942:5;10937:2;10929:6;10925:15;10918:30;10733:222;:::o;10961:366::-;11103:3;11124:67;11188:2;11183:3;11124:67;:::i;:::-;11117:74;;11200:93;11289:3;11200:93;:::i;:::-;11318:2;11313:3;11309:12;11302:19;;10961:366;;;:::o;11333:419::-;11499:4;11537:2;11526:9;11522:18;11514:26;;11586:9;11580:4;11576:20;11572:1;11561:9;11557:17;11550:47;11614:131;11740:4;11614:131;:::i;:::-;11606:139;;11333:419;;;:::o;11758:143::-;11815:5;11846:6;11840:13;11831:22;;11862:33;11889:5;11862:33;:::i;:::-;11758:143;;;;:::o;11907:351::-;11977:6;12026:2;12014:9;12005:7;12001:23;11997:32;11994:119;;;12032:79;;:::i;:::-;11994:119;12152:1;12177:64;12233:7;12224:6;12213:9;12209:22;12177:64;:::i;:::-;12167:74;;12123:128;11907:351;;;;:::o;12264:305::-;12304:3;12323:20;12341:1;12323:20;:::i;:::-;12318:25;;12357:20;12375:1;12357:20;:::i;:::-;12352:25;;12511:1;12443:66;12439:74;12436:1;12433:81;12430:107;;;12517:18;;:::i;:::-;12430:107;12561:1;12558;12554:9;12547:16;;12264:305;;;;:::o;12575:225::-;12715:34;12711:1;12703:6;12699:14;12692:58;12784:8;12779:2;12771:6;12767:15;12760:33;12575:225;:::o;12806:366::-;12948:3;12969:67;13033:2;13028:3;12969:67;:::i;:::-;12962:74;;13045:93;13134:3;13045:93;:::i;:::-;13163:2;13158:3;13154:12;13147:19;;12806:366;;;:::o;13178:419::-;13344:4;13382:2;13371:9;13367:18;13359:26;;13431:9;13425:4;13421:20;13417:1;13406:9;13402:17;13395:47;13459:131;13585:4;13459:131;:::i;:::-;13451:139;;13178:419;;;:::o;13603:191::-;13643:4;13663:20;13681:1;13663:20;:::i;:::-;13658:25;;13697:20;13715:1;13697:20;:::i;:::-;13692:25;;13736:1;13733;13730:8;13727:34;;;13741:18;;:::i;:::-;13727:34;13786:1;13783;13779:9;13771:17;;13603:191;;;;:::o;13800:176::-;13940:28;13936:1;13928:6;13924:14;13917:52;13800:176;:::o;13982:366::-;14124:3;14145:67;14209:2;14204:3;14145:67;:::i;:::-;14138:74;;14221:93;14310:3;14221:93;:::i;:::-;14339:2;14334:3;14330:12;14323:19;;13982:366;;;:::o;14354:419::-;14520:4;14558:2;14547:9;14543:18;14535:26;;14607:9;14601:4;14597:20;14593:1;14582:9;14578:17;14571:47;14635:131;14761:4;14635:131;:::i;:::-;14627:139;;14354:419;;;:::o;14779:224::-;14919:34;14915:1;14907:6;14903:14;14896:58;14988:7;14983:2;14975:6;14971:15;14964:32;14779:224;:::o;15009:366::-;15151:3;15172:67;15236:2;15231:3;15172:67;:::i;:::-;15165:74;;15248:93;15337:3;15248:93;:::i;:::-;15366:2;15361:3;15357:12;15350:19;;15009:366;;;:::o;15381:419::-;15547:4;15585:2;15574:9;15570:18;15562:26;;15634:9;15628:4;15624:20;15620:1;15609:9;15605:17;15598:47;15662:131;15788:4;15662:131;:::i;:::-;15654:139;;15381:419;;;:::o;15806:182::-;15946:34;15942:1;15934:6;15930:14;15923:58;15806:182;:::o;15994:366::-;16136:3;16157:67;16221:2;16216:3;16157:67;:::i;:::-;16150:74;;16233:93;16322:3;16233:93;:::i;:::-;16351:2;16346:3;16342:12;16335:19;;15994:366;;;:::o;16366:419::-;16532:4;16570:2;16559:9;16555:18;16547:26;;16619:9;16613:4;16609:20;16605:1;16594:9;16590:17;16583:47;16647:131;16773:4;16647:131;:::i;:::-;16639:139;;16366:419;;;:::o;16791:177::-;16931:29;16927:1;16919:6;16915:14;16908:53;16791:177;:::o;16974:366::-;17116:3;17137:67;17201:2;17196:3;17137:67;:::i;:::-;17130:74;;17213:93;17302:3;17213:93;:::i;:::-;17331:2;17326:3;17322:12;17315:19;;16974:366;;;:::o;17346:419::-;17512:4;17550:2;17539:9;17535:18;17527:26;;17599:9;17593:4;17589:20;17585:1;17574:9;17570:17;17563:47;17627:131;17753:4;17627:131;:::i;:::-;17619:139;;17346:419;;;:::o;17771:348::-;17811:7;17834:20;17852:1;17834:20;:::i;:::-;17829:25;;17868:20;17886:1;17868:20;:::i;:::-;17863:25;;18056:1;17988:66;17984:74;17981:1;17978:81;17973:1;17966:9;17959:17;17955:105;17952:131;;;18063:18;;:::i;:::-;17952:131;18111:1;18108;18104:9;18093:20;;17771:348;;;;:::o;18125:220::-;18265:34;18261:1;18253:6;18249:14;18242:58;18334:3;18329:2;18321:6;18317:15;18310:28;18125:220;:::o;18351:366::-;18493:3;18514:67;18578:2;18573:3;18514:67;:::i;:::-;18507:74;;18590:93;18679:3;18590:93;:::i;:::-;18708:2;18703:3;18699:12;18692:19;;18351:366;;;:::o;18723:419::-;18889:4;18927:2;18916:9;18912:18;18904:26;;18976:9;18970:4;18966:20;18962:1;18951:9;18947:17;18940:47;19004:131;19130:4;19004:131;:::i;:::-;18996:139;;18723:419;;;:::o;19148:167::-;19288:19;19284:1;19276:6;19272:14;19265:43;19148:167;:::o;19321:366::-;19463:3;19484:67;19548:2;19543:3;19484:67;:::i;:::-;19477:74;;19560:93;19649:3;19560:93;:::i;:::-;19678:2;19673:3;19669:12;19662:19;;19321:366;;;:::o;19693:419::-;19859:4;19897:2;19886:9;19882:18;19874:26;;19946:9;19940:4;19936:20;19932:1;19921:9;19917:17;19910:47;19974:131;20100:4;19974:131;:::i;:::-;19966:139;;19693:419;;;:::o;20118:180::-;20166:77;20163:1;20156:88;20263:4;20260:1;20253:15;20287:4;20284:1;20277:15;20304:180;20352:77;20349:1;20342:88;20449:4;20446:1;20439:15;20473:4;20470:1;20463:15;20490:85;20535:7;20564:5;20553:16;;20490:85;;;:::o;20581:158::-;20639:9;20672:61;20690:42;20699:32;20725:5;20699:32;:::i;:::-;20690:42;:::i;:::-;20672:61;:::i;:::-;20659:74;;20581:158;;;:::o;20745:147::-;20840:45;20879:5;20840:45;:::i;:::-;20835:3;20828:58;20745:147;;:::o;20898:114::-;20965:6;20999:5;20993:12;20983:22;;20898:114;;;:::o;21018:184::-;21117:11;21151:6;21146:3;21139:19;21191:4;21186:3;21182:14;21167:29;;21018:184;;;;:::o;21208:132::-;21275:4;21298:3;21290:11;;21328:4;21323:3;21319:14;21311:22;;21208:132;;;:::o;21346:108::-;21423:24;21441:5;21423:24;:::i;:::-;21418:3;21411:37;21346:108;;:::o;21460:179::-;21529:10;21550:46;21592:3;21584:6;21550:46;:::i;:::-;21628:4;21623:3;21619:14;21605:28;;21460:179;;;;:::o;21645:113::-;21715:4;21747;21742:3;21738:14;21730:22;;21645:113;;;:::o;21794:732::-;21913:3;21942:54;21990:5;21942:54;:::i;:::-;22012:86;22091:6;22086:3;22012:86;:::i;:::-;22005:93;;22122:56;22172:5;22122:56;:::i;:::-;22201:7;22232:1;22217:284;22242:6;22239:1;22236:13;22217:284;;;22318:6;22312:13;22345:63;22404:3;22389:13;22345:63;:::i;:::-;22338:70;;22431:60;22484:6;22431:60;:::i;:::-;22421:70;;22277:224;22264:1;22261;22257:9;22252:14;;22217:284;;;22221:14;22517:3;22510:10;;21918:608;;;21794:732;;;;:::o;22532:831::-;22795:4;22833:3;22822:9;22818:19;22810:27;;22847:71;22915:1;22904:9;22900:17;22891:6;22847:71;:::i;:::-;22928:80;23004:2;22993:9;22989:18;22980:6;22928:80;:::i;:::-;23055:9;23049:4;23045:20;23040:2;23029:9;23025:18;23018:48;23083:108;23186:4;23177:6;23083:108;:::i;:::-;23075:116;;23201:72;23269:2;23258:9;23254:18;23245:6;23201:72;:::i;:::-;23283:73;23351:3;23340:9;23336:19;23327:6;23283:73;:::i;:::-;22532:831;;;;;;;;:::o;23369:147::-;23470:11;23507:3;23492:18;;23369:147;;;;:::o;23522:114::-;;:::o;23642:398::-;23801:3;23822:83;23903:1;23898:3;23822:83;:::i;:::-;23815:90;;23914:93;24003:3;23914:93;:::i;:::-;24032:1;24027:3;24023:11;24016:18;;23642:398;;;:::o;24046:379::-;24230:3;24252:147;24395:3;24252:147;:::i;:::-;24245:154;;24416:3;24409:10;;24046:379;;;:::o;24431:180::-;24571:32;24567:1;24559:6;24555:14;24548:56;24431:180;:::o;24617:366::-;24759:3;24780:67;24844:2;24839:3;24780:67;:::i;:::-;24773:74;;24856:93;24945:3;24856:93;:::i;:::-;24974:2;24969:3;24965:12;24958:19;;24617:366;;;:::o;24989:419::-;25155:4;25193:2;25182:9;25178:18;25170:26;;25242:9;25236:4;25232:20;25228:1;25217:9;25213:17;25206:47;25270:131;25396:4;25270:131;:::i;:::-;25262:139;;24989:419;;;:::o

Swarm Source

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