ETH Price: $2,940.27 (-4.15%)
Gas: 1 Gwei

Token

Ichimoku Inu (MOKU)
 

Overview

Max Total Supply

2,000,000,000 MOKU

Holders

209

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,000,000 MOKU

Value
$0.00
0x8cb6d46adb980e59934da2be57f8ee5d1ab3836f
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x217F97a2...9525bD27e
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
IchimokuInu

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-02
*/

/* 月が綺麗ですね | tsuki ga kirei desu ne

☁️ Telegram: https://t.me/IchimokuInu
☁️ Twitter: https://twitter.com/IchiMokuCC
☁️ Website: https://ichimokuinu.com/
☁️ Whitepaper: https://ichimoku-inu-crosschain-ecosyste.gitbook.io/whitepaper/
☁️ Medium: https://medium.com/@IchimokuInuTeam
☁️ Discord: https://discord.gg/vZHUu8588J
*/


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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

    function WETH() external pure returns (address);

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

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

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

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

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

library SafeMath {

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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


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

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

contract IchimokuInu is Ownable, IERC20 {
    using SafeMath for uint256;

    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 2000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 20 / 1000;
    uint256 public _walletMax = _totalSupply * 20 / 1000;

    address private constant DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant private _name = "Ichimoku Inu";
    string constant private _symbol = "MOKU";

    bool public restrictWhales = true;

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

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

    uint256 public liquidityFee = 2;
    uint256 public marketingFee = 7;
    uint256 public devFee = 0;
    uint256 public utilityFee = 0;
    uint256 public nativeFee = 0;

    uint256 public totalFee = 0;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private autoLiquidityReceiver;
    address private marketingWallet;
    address private devWallet;
    address private utilityWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;


    uint256 public launchedAt;

    bool public tradingOpen = false;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    mapping (address => bool) public isInternal;


    uint256 public swapThreshold = _totalSupply * 2 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = msg.sender;
        marketingWallet = msg.sender;
        devWallet = msg.sender;
        utilityWallet = msg.sender;

        isFeeExempt[marketingWallet] = true;
        totalFee = liquidityFee.add(marketingFee).add(utilityFee).add(nativeFee).add(devFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

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

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

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

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

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

    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 launched() internal view returns (bool) {
        return launchedAt != 0;
    }

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    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 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 (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit");
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling.sub(nativeFee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(nativeFee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = totalFeeIfSelling.sub(nativeFee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && nativeFee >0){
            nativeAmount = amount.mul(nativeFee).div(100);
            _balances[DEAD_WALLET] = _balances[DEAD_WALLET].add(nativeAmount);
            emit Transfer(sender, DEAD_WALLET, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(nativeFee)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(nativeFee).sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHUtility = amountETH.mul(utilityFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(marketingWallet).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(utilityWallet).call{value : amountETHUtility, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(devWallet).call{value : amountETHDev, gas : 30000}("");
        tmpSuccess1 = false;

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

    function setisInternal(bool _bool, address _address) external onlyOwner {
        isInternal[_address] = _bool;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _walletMax = _totalSupply * newLimit / 1000;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner {
        require(newLimit >= 5, "Wallet Limit needs to be at least 0.5%");
        _maxTxAmount = _totalSupply * newLimit / 1000;
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

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

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

    function fullWhitelist(address target) public onlyOwner{
        authorizations[target] = true;
        isFeeExempt[target] = true;
        isTxLimitExempt[target] = true;
        isInternal[target] = true;
    }

    function setFees(uint256 newLiqFee, uint256 newMarketingFee, uint256 newDevFee, uint256 newUtilityFee, uint256 newNativeFee, uint256 extraSellFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newDevFee;
        utilityFee = newUtilityFee;
        nativeFee = newNativeFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee).add(utilityFee).add(nativeFee);
        totalFeeIfSelling = totalFee + extraSellFee;
        require (totalFeeIfSelling + totalFee < 25);
    }

    function isAuth(address _address, bool status) public onlyOwner{
        authorizations[_address] = status;
    }

    function setPair(address _address, bool status) public onlyOwner{
        isPair[_address] = status;
    }

    function setTakeBuyfee(bool status) public onlyOwner{
        takeBuyFee = status;
    }

    function setTakeSellfee(bool status) public onlyOwner{
        takeSellFee = status;
    }

    function setTakeTransferfee(bool status) public onlyOwner{
        takeTransferFee = status;
    }

    function setSwapbackSettings(bool status, uint256 newAmount) public onlyOwner{
        swapAndLiquifyEnabled = status;
        swapThreshold = newAmount;
    }

    function setFeeReceivers(address newMktWallet, address newUtilityWallet, address newDevWallet, address newLpWallet) public onlyOwner{
        autoLiquidityReceiver = newLpWallet;
        marketingWallet = newMktWallet;
        devWallet = newDevWallet;
        utilityWallet = newUtilityWallet;
    }

    function changeRouter(address newRouter) public onlyOwner{
        router = DexRouter(newRouter);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
    }

    function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function clearStuckETH(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"changeRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"fullWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isInternal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"nativeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMktWallet","type":"address"},{"internalType":"address","name":"newUtilityWallet","type":"address"},{"internalType":"address","name":"newDevWallet","type":"address"},{"internalType":"address","name":"newLpWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"newUtilityFee","type":"uint256"},{"internalType":"uint256","name":"newNativeFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","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":"address","name":"_address","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeBuyfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeSellfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTakeTransferfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"utilityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000e34565b637735940062000025919062000e85565b6002556103e860146002546200003c919062000e85565b62000048919062000f15565b6003556103e860146002546200005f919062000e85565b6200006b919062000f15565b600455737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560146101000a81548160ff0219169083151502179055506002600a556007600b556000600c556000600d556000600e556000600f5560006010556001601160006101000a81548160ff0219169083151502179055506001601160016101000a81548160ff0219169083151502179055506001601160026101000a81548160ff0219169083151502179055506000601960006101000a81548160ff0219169083151502179055506001601960026101000a81548160ff0219169083151502179055506000601960036101000a81548160ff0219169083151502179055506107d060028054620001b6919062000e85565b620001c2919062000f15565b601b55348015620001d257600080fd5b506000620001e562000c2f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000fb7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200047b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a1919062000fb7565b306040518363ffffffff1660e01b8152600401620004c192919062000ffa565b6020604051808303816000875af1158015620004e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000507919062000fb7565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000b6a600c5462000b56600e5462000b42600d5462000b2e600b54600a5462000c3760201b62002c0f1790919060201c565b62000c3760201b62002c0f1790919060201c565b62000c3760201b62002c0f1790919060201c565b62000c3760201b62002c0f1790919060201c565b600f81905550600f54601081905550600254600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000c21919062001038565b60405180910390a362001113565b600033905090565b600080828462000c48919062001055565b90508381101562000c90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c8790620010f1565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d285780860481111562000d005762000cff62000c9a565b5b600185161562000d105780820291505b808102905062000d208562000cc9565b945062000ce0565b94509492505050565b60008262000d43576001905062000e16565b8162000d53576000905062000e16565b816001811462000d6c576002811462000d775762000dad565b600191505062000e16565b60ff84111562000d8c5762000d8b62000c9a565b5b8360020a91508482111562000da65762000da562000c9a565b5b5062000e16565b5060208310610133831016604e8410600b841016171562000de75782820a90508381111562000de15762000de062000c9a565b5b62000e16565b62000df6848484600162000cd6565b9250905081840481111562000e105762000e0f62000c9a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e418262000e1d565b915062000e4e8362000e27565b925062000e7d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d31565b905092915050565b600062000e928262000e1d565b915062000e9f8362000e1d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000edb5762000eda62000c9a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f228262000e1d565b915062000f2f8362000e1d565b92508262000f425762000f4162000ee6565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f7f8262000f52565b9050919050565b62000f918162000f72565b811462000f9d57600080fd5b50565b60008151905062000fb18162000f86565b92915050565b60006020828403121562000fd05762000fcf62000f4d565b5b600062000fe08482850162000fa0565b91505092915050565b62000ff48162000f72565b82525050565b600060408201905062001011600083018562000fe9565b62001020602083018462000fe9565b9392505050565b620010328162000e1d565b82525050565b60006020820190506200104f600083018462001027565b92915050565b6000620010628262000e1d565b91506200106f8362000e1d565b92508282019050808211156200108a576200108962000c9a565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620010d9601b8362001090565b9150620010e682620010a1565b602082019050919050565b600060208201905081810360008301526200110c81620010ca565b9050919050565b61513c80620011236000396000f3fe60806040526004361061037a5760003560e01c806386a22eff116101d1578063bf56b37111610102578063e5e31b13116100a0578063f84ba65d1161006f578063f84ba65d14610ced578063f887ea4014610d16578063fbdec15314610d41578063ffb54a9914610d6a57610381565b8063e5e31b1314610c33578063f0ef821f14610c70578063f1d5f51714610c9b578063f2fde38b14610cc457610381565b8063d78e139d116100dc578063d78e139d14610b77578063da00097d14610ba0578063dccd8bd214610bcb578063dd62ed3e14610bf657610381565b8063bf56b37114610b0a578063c9567bf914610b35578063ca987b0e14610b4c57610381565b806395d89b411161016f578063a535598911610149578063a535598914610a4e578063a8aa1b3114610a79578063a9059cbb14610aa4578063aba1193d14610ae157610381565b806395d89b41146109cd57806398118cb4146109f8578063996f79c014610a2357610381565b80638b42507f116101ab5780638b42507f146108ff5780638da5cb5b1461093c5780638f16c41c146109675780639153eb6c146109a457610381565b806386a22eff1461088257806386f6c3c1146108ab578063893d20e8146108d457610381565b80634a74bb02116102ab57806370540933116102495780637cc5d7eb116102235780637cc5d7eb146107da5780637d1db4a5146108035780637fa442ff1461082e578063807c2d9c1461085757610381565b8063705409331461075b57806370a0823114610786578063715018a6146107c357610381565b80635def85e4116102855780635def85e4146106b3578063658d4b7f146106dc5780636827e764146107055780636b67c4df1461073057610381565b80634a74bb0214610622578063571ac8b01461064d5780635c85974f1461068a57610381565b80632b112e4911610318578063340ac20f116102f2578063340ac20f146105685780633c8e556d146105915780633f4218e0146105ba57806344de2e4c146105f757610381565b80632b112e49146104d5578063313ce5671461050057806333f3d6281461052b57610381565b806318160ddd1161035457806318160ddd146104195780631df4ccfc1461044457806323b872dd1461046f57806329977491146104ac57610381565b80630445b6671461038657806306fdde03146103b1578063095ea7b3146103dc57610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610d95565b6040516103a891906142a6565b60405180910390f35b3480156103bd57600080fd5b506103c6610d9b565b6040516103d39190614351565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe9190614402565b610dd8565b604051610410919061445d565b60405180910390f35b34801561042557600080fd5b5061042e610eca565b60405161043b91906142a6565b60405180910390f35b34801561045057600080fd5b50610459610ed4565b60405161046691906142a6565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190614478565b610eda565b6040516104a3919061445d565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce91906144f7565b6110da565b005b3480156104e157600080fd5b506104ea61118c565b6040516104f791906142a6565b60405180910390f35b34801561050c57600080fd5b506105156111cd565b6040516105229190614540565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190614402565b6111d6565b60405161055f919061445d565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a919061455b565b611361565b005b34801561059d57600080fd5b506105b860048036038101906105b39190614588565b611692565b005b3480156105c657600080fd5b506105e160048036038101906105dc919061455b565b611831565b6040516105ee919061445d565b60405180910390f35b34801561060357600080fd5b5061060c611851565b604051610619919061445d565b60405180910390f35b34801561062e57600080fd5b50610637611864565b604051610644919061445d565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f919061455b565b611877565b604051610681919061445d565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac91906145ef565b6118aa565b005b3480156106bf57600080fd5b506106da60048036038101906106d5919061461c565b6119a7565b005b3480156106e857600080fd5b5061070360048036038101906106fe919061465c565b611a97565b005b34801561071157600080fd5b5061071a611b87565b60405161072791906142a6565b60405180910390f35b34801561073c57600080fd5b50610745611b8d565b60405161075291906142a6565b60405180910390f35b34801561076757600080fd5b50610770611b93565b60405161077d919061445d565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a8919061455b565b611ba6565b6040516107ba91906142a6565b60405180910390f35b3480156107cf57600080fd5b506107d8611bef565b005b3480156107e657600080fd5b5061080160048036038101906107fc919061465c565b611d42565b005b34801561080f57600080fd5b50610818611e32565b60405161082591906142a6565b60405180910390f35b34801561083a57600080fd5b50610855600480360381019061085091906144f7565b611e38565b005b34801561086357600080fd5b5061086c611eea565b60405161087991906142a6565b60405180910390f35b34801561088e57600080fd5b506108a960048036038101906108a4919061465c565b611ef0565b005b3480156108b757600080fd5b506108d260048036038101906108cd919061469c565b611fe0565b005b3480156108e057600080fd5b506108e9612129565b6040516108f69190614738565b60405180910390f35b34801561090b57600080fd5b506109266004803603810190610921919061455b565b612138565b604051610933919061445d565b60405180910390f35b34801561094857600080fd5b50610951612158565b60405161095e9190614738565b60405180910390f35b34801561097357600080fd5b5061098e6004803603810190610989919061455b565b612181565b60405161099b919061445d565b60405180910390f35b3480156109b057600080fd5b506109cb60048036038101906109c6919061455b565b6121a1565b005b3480156109d957600080fd5b506109e2612398565b6040516109ef9190614351565b60405180910390f35b348015610a0457600080fd5b50610a0d6123d5565b604051610a1a91906142a6565b60405180910390f35b348015610a2f57600080fd5b50610a386123db565b604051610a4591906142a6565b60405180910390f35b348015610a5a57600080fd5b50610a636123e1565b604051610a70919061445d565b60405180910390f35b348015610a8557600080fd5b50610a8e6123f4565b604051610a9b9190614738565b60405180910390f35b348015610ab057600080fd5b50610acb6004803603810190610ac69190614402565b61241a565b604051610ad8919061445d565b60405180910390f35b348015610aed57600080fd5b50610b086004803603810190610b039190614753565b61242f565b005b348015610b1657600080fd5b50610b1f6124e9565b604051610b2c91906142a6565b60405180910390f35b348015610b4157600080fd5b50610b4a6124ef565b005b348015610b5857600080fd5b50610b616125a1565b604051610b6e91906142a6565b60405180910390f35b348015610b8357600080fd5b50610b9e6004803603810190610b9991906145ef565b6125a7565b005b348015610bac57600080fd5b50610bb56126a3565b604051610bc2919061445d565b60405180910390f35b348015610bd757600080fd5b50610be06126b6565b604051610bed91906142a6565b60405180910390f35b348015610c0257600080fd5b50610c1d6004803603810190610c189190614793565b6126bc565b604051610c2a91906142a6565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c55919061455b565b612743565b604051610c67919061445d565b60405180910390f35b348015610c7c57600080fd5b50610c85612763565b604051610c92919061445d565b60405180910390f35b348015610ca757600080fd5b50610cc26004803603810190610cbd91906145ef565b612776565b005b348015610cd057600080fd5b50610ceb6004803603810190610ce6919061455b565b612873565b005b348015610cf957600080fd5b50610d146004803603810190610d0f919061465c565b612a34565b005b348015610d2257600080fd5b50610d2b612b24565b604051610d389190614832565b60405180910390f35b348015610d4d57600080fd5b50610d686004803603810190610d6391906144f7565b612b4a565b005b348015610d7657600080fd5b50610d7f612bfc565b604051610d8c919061445d565b60405180910390f35b601b5481565b60606040518060400160405280600c81526020017f496368696d6f6b7520496e750000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eb891906142a6565b60405180910390a36001905092915050565b6000600254905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110c657611045826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110d1848484612cd1565b90509392505050565b6110e26133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690614899565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60006111c861119b6000611ba6565b6111ba6111a961dead611ba6565b6002546133c890919063ffffffff16565b6133c890919063ffffffff16565b905090565b60006012905090565b60006111e06133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126490614899565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290614905565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611316929190614925565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190614963565b905092915050565b6113696133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90614899565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c891906149a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157491906149a5565b306040518363ffffffff1660e01b81526004016115929291906149d2565b6020604051808303816000875af11580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d591906149a5565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61169a6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90614899565b60405180910390fd5b80601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601960029054906101000a900460ff1681565b60006118a3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610dd8565b9050919050565b6118b26133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690614899565b60405180910390fd5b6005811015611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a90614a6d565b60405180910390fd5b6103e8816002546119949190614abc565b61199e9190614b45565b60038190555050565b6119af6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390614899565b60405180910390fd5b81601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a9f6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2390614899565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b600b5481565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611bf76133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b90614899565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611d4a6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90614899565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611e406133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec490614899565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b611ef86133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c90614899565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611fe86133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90614899565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e819055506120eb600e546120dd600d546120cf600c546120c1600b54600a54612c0f90919063ffffffff16565b612c0f90919063ffffffff16565b612c0f90919063ffffffff16565b612c0f90919063ffffffff16565b600f8190555080600f546120ff9190614b76565b6010819055506019600f546010546121179190614b76565b1061212157600080fd5b505050505050565b6000612133612158565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a6020528060005260406000206000915054906101000a900460ff1681565b6121a96133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90614899565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4d4f4b5500000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b600e5481565b601160029054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612427338484612cd1565b905092915050565b6124376133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb90614899565b60405180910390fd5b81601960026101000a81548160ff02191690831515021790555080601b819055505050565b60185481565b6124f76133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90614899565b60405180910390fd5b6001601960006101000a81548160ff021916908315150217905550565b60105481565b6125af6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263390614899565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846126699190614abc565b6126739190614b45565b9081150290604051600060405180830381858888f1935050505015801561269e573d6000803e3d6000fd5b505050565b601960039054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b61277e6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461280b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280290614899565b60405180910390fd5b600581101561284f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284690614a6d565b60405180910390fd5b6103e8816002546128609190614abc565b61286a9190614b45565b60048190555050565b61287b6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ff90614899565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90614c1c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a3c6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac090614899565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612b526133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd690614899565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601960009054906101000a900460ff1681565b6000808284612c1e9190614b76565b905083811015612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a90614c88565b60405180910390fd5b8091505092915050565b6000838311158290612cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cac9190614351565b60405180910390fd5b5060008385612cc49190614ca8565b9050809150509392505050565b6000601960019054906101000a900460ff1615612cfa57612cf3848484613412565b90506133b9565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d9e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612df357601960009054906101000a900460ff16612df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de990614d02565b60405180910390fd5b5b60035482111580612e4d5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8390614d6e565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ef25750601960019054906101000a900460ff16155b8015612f0a5750601960029054906101000a900460ff165b8015612f575750601b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612f6557612f646135e5565b5b612f6d613cc6565b158015612fc35750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613053576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161304a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304190614d02565b60405180910390fd5b613052613cd3565b5b6130b68260405180602001604052806000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561315f5750600560149054906101000a900460ff165b156131fb576004546131b983600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b11156131fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f190614d02565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132a15750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6132ab57826132b7565b6132b6858585613cdc565b5b905061330b81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133ab91906142a6565b60405180910390a360019150505b9392505050565b600033905090565b600061340a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c6d565b905092915050565b600061349d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061353282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135d291906142a6565b60405180910390a3600190509392505050565b6001601960016101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006136966002613688613665600e54600f546133c890919063ffffffff16565b61367a600a548761416690919063ffffffff16565b6141e090919063ffffffff16565b6141e090919063ffffffff16565b905060006136ad82846133c890919063ffffffff16565b90506000600267ffffffffffffffff8111156136cc576136cb614d8e565b5b6040519080825280602002602001820160405280156136fa5781602001602082028036833780820191505090505b509050308160008151811061371257613711614dbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137dd91906149a5565b816001815181106137f1576137f0614dbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161388f959493929190614ee5565b600060405180830381600087803b1580156138a957600080fd5b505af11580156138bd573d6000803e3d6000fd5b50505050600047905060006139066138e16002600a546141e090919063ffffffff16565b6138f8600e54600f546133c890919063ffffffff16565b6133c890919063ffffffff16565b90506000613944600261393684613928600a548861416690919063ffffffff16565b6141e090919063ffffffff16565b6141e090919063ffffffff16565b9050600061396f83613961600b548761416690919063ffffffff16565b6141e090919063ffffffff16565b9050600061399a8461398c600d548861416690919063ffffffff16565b6141e090919063ffffffff16565b905060006139c5856139b7600c548961416690919063ffffffff16565b6141e090919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613a1390614f6d565b600060405180830381858888f193505050503d8060008114613a51576040519150601f19603f3d011682016040523d82523d6000602084013e613a56565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613aa890614f6d565b600060405180830381858888f193505050503d8060008114613ae6576040519150601f19603f3d011682016040523d82523d6000602084013e613aeb565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613b3f90614f6d565b600060405180830381858888f193505050503d8060008114613b7d576040519150601f19603f3d011682016040523d82523d6000602084013e613b82565b606091505b5050809150506000905060008a1115613c9e57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613c1e96959493929190614f82565b60606040518083038185885af1158015613c3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c619190614ff8565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613c9592919061504b565b60405180910390a15b50505050505050505050506000601960016101000a81548160ff021916908315150217905550565b6000806018541415905090565b43601881905550565b600080600090506000601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613d4a5750601160019054906101000a900460ff165b15613d6957613d66600e546010546133c890919063ffffffff16565b91505b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613dce5750601160009054906101000a900460ff165b15613ded57613dea600e54600f546133c890919063ffffffff16565b91505b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613e915750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613ecf57601160029054906101000a900460ff1615613ec957613ec2600e546010546133c890919063ffffffff16565b9150613ece565b600091505b5b600082118015613ee157506000600e54115b1561401157613f0e6064613f00600e548761416690919063ffffffff16565b6141e090919063ffffffff16565b9050613f64816006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b6006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161400891906142a6565b60405180910390a35b6000614039606461402b858861416690919063ffffffff16565b6141e090919063ffffffff16565b905061408d81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161412d91906142a6565b60405180910390a361415a8261414c83886133c890919063ffffffff16565b6133c890919063ffffffff16565b93505050509392505050565b600080830361417857600090506141da565b600082846141869190614abc565b90508284826141959190614b45565b146141d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141cc906150e6565b60405180910390fd5b809150505b92915050565b600061422283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061422a565b905092915050565b60008083118290614271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142689190614351565b60405180910390fd5b50600083856142809190614b45565b9050809150509392505050565b6000819050919050565b6142a08161428d565b82525050565b60006020820190506142bb6000830184614297565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142fb5780820151818401526020810190506142e0565b60008484015250505050565b6000601f19601f8301169050919050565b6000614323826142c1565b61432d81856142cc565b935061433d8185602086016142dd565b61434681614307565b840191505092915050565b6000602082019050818103600083015261436b8184614318565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143a382614378565b9050919050565b6143b381614398565b81146143be57600080fd5b50565b6000813590506143d0816143aa565b92915050565b6143df8161428d565b81146143ea57600080fd5b50565b6000813590506143fc816143d6565b92915050565b6000806040838503121561441957614418614373565b5b6000614427858286016143c1565b9250506020614438858286016143ed565b9150509250929050565b60008115159050919050565b61445781614442565b82525050565b6000602082019050614472600083018461444e565b92915050565b60008060006060848603121561449157614490614373565b5b600061449f868287016143c1565b93505060206144b0868287016143c1565b92505060406144c1868287016143ed565b9150509250925092565b6144d481614442565b81146144df57600080fd5b50565b6000813590506144f1816144cb565b92915050565b60006020828403121561450d5761450c614373565b5b600061451b848285016144e2565b91505092915050565b600060ff82169050919050565b61453a81614524565b82525050565b60006020820190506145556000830184614531565b92915050565b60006020828403121561457157614570614373565b5b600061457f848285016143c1565b91505092915050565b600080600080608085870312156145a2576145a1614373565b5b60006145b0878288016143c1565b94505060206145c1878288016143c1565b93505060406145d2878288016143c1565b92505060606145e3878288016143c1565b91505092959194509250565b60006020828403121561460557614604614373565b5b6000614613848285016143ed565b91505092915050565b6000806040838503121561463357614632614373565b5b6000614641858286016144e2565b9250506020614652858286016143c1565b9150509250929050565b6000806040838503121561467357614672614373565b5b6000614681858286016143c1565b9250506020614692858286016144e2565b9150509250929050565b60008060008060008060c087890312156146b9576146b8614373565b5b60006146c789828a016143ed565b96505060206146d889828a016143ed565b95505060406146e989828a016143ed565b94505060606146fa89828a016143ed565b935050608061470b89828a016143ed565b92505060a061471c89828a016143ed565b9150509295509295509295565b61473281614398565b82525050565b600060208201905061474d6000830184614729565b92915050565b6000806040838503121561476a57614769614373565b5b6000614778858286016144e2565b9250506020614789858286016143ed565b9150509250929050565b600080604083850312156147aa576147a9614373565b5b60006147b8858286016143c1565b92505060206147c9858286016143c1565b9150509250929050565b6000819050919050565b60006147f86147f36147ee84614378565b6147d3565b614378565b9050919050565b600061480a826147dd565b9050919050565b600061481c826147ff565b9050919050565b61482c81614811565b82525050565b60006020820190506148476000830184614823565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006148836020836142cc565b915061488e8261484d565b602082019050919050565b600060208201905081810360008301526148b281614876565b9050919050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b60006148ef601c836142cc565b91506148fa826148b9565b602082019050919050565b6000602082019050818103600083015261491e816148e2565b9050919050565b600060408201905061493a6000830185614729565b6149476020830184614297565b9392505050565b60008151905061495d816144cb565b92915050565b60006020828403121561497957614978614373565b5b60006149878482850161494e565b91505092915050565b60008151905061499f816143aa565b92915050565b6000602082840312156149bb576149ba614373565b5b60006149c984828501614990565b91505092915050565b60006040820190506149e76000830185614729565b6149f46020830184614729565b9392505050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614a576026836142cc565b9150614a62826149fb565b604082019050919050565b60006020820190508181036000830152614a8681614a4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ac78261428d565b9150614ad28361428d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b0b57614b0a614a8d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b508261428d565b9150614b5b8361428d565b925082614b6b57614b6a614b16565b5b828204905092915050565b6000614b818261428d565b9150614b8c8361428d565b9250828201905080821115614ba457614ba3614a8d565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614c066026836142cc565b9150614c1182614baa565b604082019050919050565b60006020820190508181036000830152614c3581614bf9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614c72601b836142cc565b9150614c7d82614c3c565b602082019050919050565b60006020820190508181036000830152614ca181614c65565b9050919050565b6000614cb38261428d565b9150614cbe8361428d565b9250828203905081811115614cd657614cd5614a8d565b5b92915050565b50565b6000614cec6000836142cc565b9150614cf782614cdc565b600082019050919050565b60006020820190508181036000830152614d1b81614cdf565b9050919050565b7f5458204c696d6974000000000000000000000000000000000000000000000000600082015250565b6000614d586008836142cc565b9150614d6382614d22565b602082019050919050565b60006020820190508181036000830152614d8781614d4b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614e11614e0c614e0784614dec565b6147d3565b61428d565b9050919050565b614e2181614df6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e5c81614398565b82525050565b6000614e6e8383614e53565b60208301905092915050565b6000602082019050919050565b6000614e9282614e27565b614e9c8185614e32565b9350614ea783614e43565b8060005b83811015614ed8578151614ebf8882614e62565b9750614eca83614e7a565b925050600181019050614eab565b5085935050505092915050565b600060a082019050614efa6000830188614297565b614f076020830187614e18565b8181036040830152614f198186614e87565b9050614f286060830185614729565b614f356080830184614297565b9695505050505050565b600081905092915050565b6000614f57600083614f3f565b9150614f6282614cdc565b600082019050919050565b6000614f7882614f4a565b9150819050919050565b600060c082019050614f976000830189614729565b614fa46020830188614297565b614fb16040830187614e18565b614fbe6060830186614e18565b614fcb6080830185614729565b614fd860a0830184614297565b979650505050505050565b600081519050614ff2816143d6565b92915050565b60008060006060848603121561501157615010614373565b5b600061501f86828701614fe3565b935050602061503086828701614fe3565b925050604061504186828701614fe3565b9150509250925092565b60006040820190506150606000830185614297565b61506d6020830184614297565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006150d06021836142cc565b91506150db82615074565b604082019050919050565b600060208201905081810360008301526150ff816150c3565b905091905056fea2646970667358221220817d638d466f934a76d776f4b9a020e5f9e1274d5a7686f608e7d12e57290f0764736f6c63430008100033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c806386a22eff116101d1578063bf56b37111610102578063e5e31b13116100a0578063f84ba65d1161006f578063f84ba65d14610ced578063f887ea4014610d16578063fbdec15314610d41578063ffb54a9914610d6a57610381565b8063e5e31b1314610c33578063f0ef821f14610c70578063f1d5f51714610c9b578063f2fde38b14610cc457610381565b8063d78e139d116100dc578063d78e139d14610b77578063da00097d14610ba0578063dccd8bd214610bcb578063dd62ed3e14610bf657610381565b8063bf56b37114610b0a578063c9567bf914610b35578063ca987b0e14610b4c57610381565b806395d89b411161016f578063a535598911610149578063a535598914610a4e578063a8aa1b3114610a79578063a9059cbb14610aa4578063aba1193d14610ae157610381565b806395d89b41146109cd57806398118cb4146109f8578063996f79c014610a2357610381565b80638b42507f116101ab5780638b42507f146108ff5780638da5cb5b1461093c5780638f16c41c146109675780639153eb6c146109a457610381565b806386a22eff1461088257806386f6c3c1146108ab578063893d20e8146108d457610381565b80634a74bb02116102ab57806370540933116102495780637cc5d7eb116102235780637cc5d7eb146107da5780637d1db4a5146108035780637fa442ff1461082e578063807c2d9c1461085757610381565b8063705409331461075b57806370a0823114610786578063715018a6146107c357610381565b80635def85e4116102855780635def85e4146106b3578063658d4b7f146106dc5780636827e764146107055780636b67c4df1461073057610381565b80634a74bb0214610622578063571ac8b01461064d5780635c85974f1461068a57610381565b80632b112e4911610318578063340ac20f116102f2578063340ac20f146105685780633c8e556d146105915780633f4218e0146105ba57806344de2e4c146105f757610381565b80632b112e49146104d5578063313ce5671461050057806333f3d6281461052b57610381565b806318160ddd1161035457806318160ddd146104195780631df4ccfc1461044457806323b872dd1461046f57806329977491146104ac57610381565b80630445b6671461038657806306fdde03146103b1578063095ea7b3146103dc57610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610d95565b6040516103a891906142a6565b60405180910390f35b3480156103bd57600080fd5b506103c6610d9b565b6040516103d39190614351565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe9190614402565b610dd8565b604051610410919061445d565b60405180910390f35b34801561042557600080fd5b5061042e610eca565b60405161043b91906142a6565b60405180910390f35b34801561045057600080fd5b50610459610ed4565b60405161046691906142a6565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190614478565b610eda565b6040516104a3919061445d565b60405180910390f35b3480156104b857600080fd5b506104d360048036038101906104ce91906144f7565b6110da565b005b3480156104e157600080fd5b506104ea61118c565b6040516104f791906142a6565b60405180910390f35b34801561050c57600080fd5b506105156111cd565b6040516105229190614540565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190614402565b6111d6565b60405161055f919061445d565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a919061455b565b611361565b005b34801561059d57600080fd5b506105b860048036038101906105b39190614588565b611692565b005b3480156105c657600080fd5b506105e160048036038101906105dc919061455b565b611831565b6040516105ee919061445d565b60405180910390f35b34801561060357600080fd5b5061060c611851565b604051610619919061445d565b60405180910390f35b34801561062e57600080fd5b50610637611864565b604051610644919061445d565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f919061455b565b611877565b604051610681919061445d565b60405180910390f35b34801561069657600080fd5b506106b160048036038101906106ac91906145ef565b6118aa565b005b3480156106bf57600080fd5b506106da60048036038101906106d5919061461c565b6119a7565b005b3480156106e857600080fd5b5061070360048036038101906106fe919061465c565b611a97565b005b34801561071157600080fd5b5061071a611b87565b60405161072791906142a6565b60405180910390f35b34801561073c57600080fd5b50610745611b8d565b60405161075291906142a6565b60405180910390f35b34801561076757600080fd5b50610770611b93565b60405161077d919061445d565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a8919061455b565b611ba6565b6040516107ba91906142a6565b60405180910390f35b3480156107cf57600080fd5b506107d8611bef565b005b3480156107e657600080fd5b5061080160048036038101906107fc919061465c565b611d42565b005b34801561080f57600080fd5b50610818611e32565b60405161082591906142a6565b60405180910390f35b34801561083a57600080fd5b50610855600480360381019061085091906144f7565b611e38565b005b34801561086357600080fd5b5061086c611eea565b60405161087991906142a6565b60405180910390f35b34801561088e57600080fd5b506108a960048036038101906108a4919061465c565b611ef0565b005b3480156108b757600080fd5b506108d260048036038101906108cd919061469c565b611fe0565b005b3480156108e057600080fd5b506108e9612129565b6040516108f69190614738565b60405180910390f35b34801561090b57600080fd5b506109266004803603810190610921919061455b565b612138565b604051610933919061445d565b60405180910390f35b34801561094857600080fd5b50610951612158565b60405161095e9190614738565b60405180910390f35b34801561097357600080fd5b5061098e6004803603810190610989919061455b565b612181565b60405161099b919061445d565b60405180910390f35b3480156109b057600080fd5b506109cb60048036038101906109c6919061455b565b6121a1565b005b3480156109d957600080fd5b506109e2612398565b6040516109ef9190614351565b60405180910390f35b348015610a0457600080fd5b50610a0d6123d5565b604051610a1a91906142a6565b60405180910390f35b348015610a2f57600080fd5b50610a386123db565b604051610a4591906142a6565b60405180910390f35b348015610a5a57600080fd5b50610a636123e1565b604051610a70919061445d565b60405180910390f35b348015610a8557600080fd5b50610a8e6123f4565b604051610a9b9190614738565b60405180910390f35b348015610ab057600080fd5b50610acb6004803603810190610ac69190614402565b61241a565b604051610ad8919061445d565b60405180910390f35b348015610aed57600080fd5b50610b086004803603810190610b039190614753565b61242f565b005b348015610b1657600080fd5b50610b1f6124e9565b604051610b2c91906142a6565b60405180910390f35b348015610b4157600080fd5b50610b4a6124ef565b005b348015610b5857600080fd5b50610b616125a1565b604051610b6e91906142a6565b60405180910390f35b348015610b8357600080fd5b50610b9e6004803603810190610b9991906145ef565b6125a7565b005b348015610bac57600080fd5b50610bb56126a3565b604051610bc2919061445d565b60405180910390f35b348015610bd757600080fd5b50610be06126b6565b604051610bed91906142a6565b60405180910390f35b348015610c0257600080fd5b50610c1d6004803603810190610c189190614793565b6126bc565b604051610c2a91906142a6565b60405180910390f35b348015610c3f57600080fd5b50610c5a6004803603810190610c55919061455b565b612743565b604051610c67919061445d565b60405180910390f35b348015610c7c57600080fd5b50610c85612763565b604051610c92919061445d565b60405180910390f35b348015610ca757600080fd5b50610cc26004803603810190610cbd91906145ef565b612776565b005b348015610cd057600080fd5b50610ceb6004803603810190610ce6919061455b565b612873565b005b348015610cf957600080fd5b50610d146004803603810190610d0f919061465c565b612a34565b005b348015610d2257600080fd5b50610d2b612b24565b604051610d389190614832565b60405180910390f35b348015610d4d57600080fd5b50610d686004803603810190610d6391906144f7565b612b4a565b005b348015610d7657600080fd5b50610d7f612bfc565b604051610d8c919061445d565b60405180910390f35b601b5481565b60606040518060400160405280600c81526020017f496368696d6f6b7520496e750000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610eb891906142a6565b60405180910390a36001905092915050565b6000600254905090565b600f5481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146110c657611045826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6d9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6110d1848484612cd1565b90509392505050565b6110e26133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690614899565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60006111c861119b6000611ba6565b6111ba6111a961dead611ba6565b6002546133c890919063ffffffff16565b6133c890919063ffffffff16565b905090565b60006012905090565b60006111e06133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126490614899565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290614905565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611316929190614925565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113599190614963565b905092915050565b6113696133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90614899565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c891906149a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157491906149a5565b306040518363ffffffff1660e01b81526004016115929291906149d2565b6020604051808303816000875af11580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d591906149a5565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61169a6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90614899565b60405180910390fd5b80601160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b600560149054906101000a900460ff1681565b601960029054906101000a900460ff1681565b60006118a3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610dd8565b9050919050565b6118b26133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690614899565b60405180910390fd5b6005811015611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a90614a6d565b60405180910390fd5b6103e8816002546119949190614abc565b61199e9190614b45565b60038190555050565b6119af6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390614899565b60405180910390fd5b81601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a9f6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2390614899565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600c5481565b600b5481565b601160019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611bf76133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b90614899565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611d4a6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90614899565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60035481565b611e406133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec490614899565b60405180910390fd5b80601160026101000a81548160ff02191690831515021790555050565b60045481565b611ef86133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7c90614899565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611fe86133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90614899565b60405180910390fd5b85600a8190555084600b8190555083600c8190555082600d8190555081600e819055506120eb600e546120dd600d546120cf600c546120c1600b54600a54612c0f90919063ffffffff16565b612c0f90919063ffffffff16565b612c0f90919063ffffffff16565b612c0f90919063ffffffff16565b600f8190555080600f546120ff9190614b76565b6010819055506019600f546010546121179190614b76565b1061212157600080fd5b505050505050565b6000612133612158565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601a6020528060005260406000206000915054906101000a900460ff1681565b6121a96133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222d90614899565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600481526020017f4d4f4b5500000000000000000000000000000000000000000000000000000000815250905090565b600a5481565b600e5481565b601160029054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612427338484612cd1565b905092915050565b6124376133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb90614899565b60405180910390fd5b81601960026101000a81548160ff02191690831515021790555080601b819055505050565b60185481565b6124f76133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90614899565b60405180910390fd5b6001601960006101000a81548160ff021916908315150217905550565b60105481565b6125af6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461263c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263390614899565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846126699190614abc565b6126739190614b45565b9081150290604051600060405180830381858888f1935050505015801561269e573d6000803e3d6000fd5b505050565b601960039054906101000a900460ff1681565b600d5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900460ff1681565b61277e6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461280b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280290614899565b60405180910390fd5b600581101561284f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284690614a6d565b60405180910390fd5b6103e8816002546128609190614abc565b61286a9190614b45565b60048190555050565b61287b6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ff90614899565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90614c1c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612a3c6133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac090614899565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612b526133c0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd690614899565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b601960009054906101000a900460ff1681565b6000808284612c1e9190614b76565b905083811015612c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5a90614c88565b60405180910390fd5b8091505092915050565b6000838311158290612cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cac9190614351565b60405180910390fd5b5060008385612cc49190614ca8565b9050809150509392505050565b6000601960019054906101000a900460ff1615612cfa57612cf3848484613412565b90506133b9565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612d9e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612df357601960009054906101000a900460ff16612df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de990614d02565b60405180910390fd5b5b60035482111580612e4d5750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e8390614d6e565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ef25750601960019054906101000a900460ff16155b8015612f0a5750601960029054906101000a900460ff165b8015612f575750601b54600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612f6557612f646135e5565b5b612f6d613cc6565b158015612fc35750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613053576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161304a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304190614d02565b60405180910390fd5b613052613cd3565b5b6130b68260405180602001604052806000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561315f5750600560149054906101000a900460ff165b156131fb576004546131b983600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b11156131fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f190614d02565b60405180910390fd5b5b6000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156132a15750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6132ab57826132b7565b6132b6858585613cdc565b5b905061330b81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133ab91906142a6565b60405180910390a360019150505b9392505050565b600033905090565b600061340a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c6d565b905092915050565b600061349d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6d9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061353282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135d291906142a6565b60405180910390a3600190509392505050565b6001601960016101000a81548160ff0219169083151502179055506000600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006136966002613688613665600e54600f546133c890919063ffffffff16565b61367a600a548761416690919063ffffffff16565b6141e090919063ffffffff16565b6141e090919063ffffffff16565b905060006136ad82846133c890919063ffffffff16565b90506000600267ffffffffffffffff8111156136cc576136cb614d8e565b5b6040519080825280602002602001820160405280156136fa5781602001602082028036833780820191505090505b509050308160008151811061371257613711614dbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137dd91906149a5565b816001815181106137f1576137f0614dbd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161388f959493929190614ee5565b600060405180830381600087803b1580156138a957600080fd5b505af11580156138bd573d6000803e3d6000fd5b50505050600047905060006139066138e16002600a546141e090919063ffffffff16565b6138f8600e54600f546133c890919063ffffffff16565b6133c890919063ffffffff16565b90506000613944600261393684613928600a548861416690919063ffffffff16565b6141e090919063ffffffff16565b6141e090919063ffffffff16565b9050600061396f83613961600b548761416690919063ffffffff16565b6141e090919063ffffffff16565b9050600061399a8461398c600d548861416690919063ffffffff16565b6141e090919063ffffffff16565b905060006139c5856139b7600c548961416690919063ffffffff16565b6141e090919063ffffffff16565b90506000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051613a1390614f6d565b600060405180830381858888f193505050503d8060008114613a51576040519150601f19603f3d011682016040523d82523d6000602084013e613a56565b606091505b5050905060009050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051613aa890614f6d565b600060405180830381858888f193505050503d8060008114613ae6576040519150601f19603f3d011682016040523d82523d6000602084013e613aeb565b606091505b50508091505060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051613b3f90614f6d565b600060405180830381858888f193505050503d8060008114613b7d576040519150601f19603f3d011682016040523d82523d6000602084013e613b82565b606091505b5050809150506000905060008a1115613c9e57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308d600080601160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613c1e96959493929190614f82565b60606040518083038185885af1158015613c3c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613c619190614ff8565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506858b604051613c9592919061504b565b60405180910390a15b50505050505050505050506000601960016101000a81548160ff021916908315150217905550565b6000806018541415905090565b43601881905550565b600080600090506000601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613d4a5750601160019054906101000a900460ff165b15613d6957613d66600e546010546133c890919063ffffffff16565b91505b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015613dce5750601160009054906101000a900460ff165b15613ded57613dea600e54600f546133c890919063ffffffff16565b91505b601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015613e915750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613ecf57601160029054906101000a900460ff1615613ec957613ec2600e546010546133c890919063ffffffff16565b9150613ece565b600091505b5b600082118015613ee157506000600e54115b1561401157613f0e6064613f00600e548761416690919063ffffffff16565b6141e090919063ffffffff16565b9050613f64816006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b6006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161400891906142a6565b60405180910390a35b6000614039606461402b858861416690919063ffffffff16565b6141e090919063ffffffff16565b905061408d81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c0f90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161412d91906142a6565b60405180910390a361415a8261414c83886133c890919063ffffffff16565b6133c890919063ffffffff16565b93505050509392505050565b600080830361417857600090506141da565b600082846141869190614abc565b90508284826141959190614b45565b146141d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141cc906150e6565b60405180910390fd5b809150505b92915050565b600061422283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061422a565b905092915050565b60008083118290614271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142689190614351565b60405180910390fd5b50600083856142809190614b45565b9050809150509392505050565b6000819050919050565b6142a08161428d565b82525050565b60006020820190506142bb6000830184614297565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156142fb5780820151818401526020810190506142e0565b60008484015250505050565b6000601f19601f8301169050919050565b6000614323826142c1565b61432d81856142cc565b935061433d8185602086016142dd565b61434681614307565b840191505092915050565b6000602082019050818103600083015261436b8184614318565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143a382614378565b9050919050565b6143b381614398565b81146143be57600080fd5b50565b6000813590506143d0816143aa565b92915050565b6143df8161428d565b81146143ea57600080fd5b50565b6000813590506143fc816143d6565b92915050565b6000806040838503121561441957614418614373565b5b6000614427858286016143c1565b9250506020614438858286016143ed565b9150509250929050565b60008115159050919050565b61445781614442565b82525050565b6000602082019050614472600083018461444e565b92915050565b60008060006060848603121561449157614490614373565b5b600061449f868287016143c1565b93505060206144b0868287016143c1565b92505060406144c1868287016143ed565b9150509250925092565b6144d481614442565b81146144df57600080fd5b50565b6000813590506144f1816144cb565b92915050565b60006020828403121561450d5761450c614373565b5b600061451b848285016144e2565b91505092915050565b600060ff82169050919050565b61453a81614524565b82525050565b60006020820190506145556000830184614531565b92915050565b60006020828403121561457157614570614373565b5b600061457f848285016143c1565b91505092915050565b600080600080608085870312156145a2576145a1614373565b5b60006145b0878288016143c1565b94505060206145c1878288016143c1565b93505060406145d2878288016143c1565b92505060606145e3878288016143c1565b91505092959194509250565b60006020828403121561460557614604614373565b5b6000614613848285016143ed565b91505092915050565b6000806040838503121561463357614632614373565b5b6000614641858286016144e2565b9250506020614652858286016143c1565b9150509250929050565b6000806040838503121561467357614672614373565b5b6000614681858286016143c1565b9250506020614692858286016144e2565b9150509250929050565b60008060008060008060c087890312156146b9576146b8614373565b5b60006146c789828a016143ed565b96505060206146d889828a016143ed565b95505060406146e989828a016143ed565b94505060606146fa89828a016143ed565b935050608061470b89828a016143ed565b92505060a061471c89828a016143ed565b9150509295509295509295565b61473281614398565b82525050565b600060208201905061474d6000830184614729565b92915050565b6000806040838503121561476a57614769614373565b5b6000614778858286016144e2565b9250506020614789858286016143ed565b9150509250929050565b600080604083850312156147aa576147a9614373565b5b60006147b8858286016143c1565b92505060206147c9858286016143c1565b9150509250929050565b6000819050919050565b60006147f86147f36147ee84614378565b6147d3565b614378565b9050919050565b600061480a826147dd565b9050919050565b600061481c826147ff565b9050919050565b61482c81614811565b82525050565b60006020820190506148476000830184614823565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006148836020836142cc565b915061488e8261484d565b602082019050919050565b600060208201905081810360008301526148b281614876565b9050919050565b7f43616e742072656d6f766520746865206e617469766520746f6b656e00000000600082015250565b60006148ef601c836142cc565b91506148fa826148b9565b602082019050919050565b6000602082019050818103600083015261491e816148e2565b9050919050565b600060408201905061493a6000830185614729565b6149476020830184614297565b9392505050565b60008151905061495d816144cb565b92915050565b60006020828403121561497957614978614373565b5b60006149878482850161494e565b91505092915050565b60008151905061499f816143aa565b92915050565b6000602082840312156149bb576149ba614373565b5b60006149c984828501614990565b91505092915050565b60006040820190506149e76000830185614729565b6149f46020830184614729565b9392505050565b7f57616c6c6574204c696d6974206e6565647320746f206265206174206c65617360008201527f7420302e35250000000000000000000000000000000000000000000000000000602082015250565b6000614a576026836142cc565b9150614a62826149fb565b604082019050919050565b60006020820190508181036000830152614a8681614a4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ac78261428d565b9150614ad28361428d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614b0b57614b0a614a8d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614b508261428d565b9150614b5b8361428d565b925082614b6b57614b6a614b16565b5b828204905092915050565b6000614b818261428d565b9150614b8c8361428d565b9250828201905080821115614ba457614ba3614a8d565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614c066026836142cc565b9150614c1182614baa565b604082019050919050565b60006020820190508181036000830152614c3581614bf9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614c72601b836142cc565b9150614c7d82614c3c565b602082019050919050565b60006020820190508181036000830152614ca181614c65565b9050919050565b6000614cb38261428d565b9150614cbe8361428d565b9250828203905081811115614cd657614cd5614a8d565b5b92915050565b50565b6000614cec6000836142cc565b9150614cf782614cdc565b600082019050919050565b60006020820190508181036000830152614d1b81614cdf565b9050919050565b7f5458204c696d6974000000000000000000000000000000000000000000000000600082015250565b6000614d586008836142cc565b9150614d6382614d22565b602082019050919050565b60006020820190508181036000830152614d8781614d4b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614e11614e0c614e0784614dec565b6147d3565b61428d565b9050919050565b614e2181614df6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e5c81614398565b82525050565b6000614e6e8383614e53565b60208301905092915050565b6000602082019050919050565b6000614e9282614e27565b614e9c8185614e32565b9350614ea783614e43565b8060005b83811015614ed8578151614ebf8882614e62565b9750614eca83614e7a565b925050600181019050614eab565b5085935050505092915050565b600060a082019050614efa6000830188614297565b614f076020830187614e18565b8181036040830152614f198186614e87565b9050614f286060830185614729565b614f356080830184614297565b9695505050505050565b600081905092915050565b6000614f57600083614f3f565b9150614f6282614cdc565b600082019050919050565b6000614f7882614f4a565b9150819050919050565b600060c082019050614f976000830189614729565b614fa46020830188614297565b614fb16040830187614e18565b614fbe6060830186614e18565b614fcb6080830185614729565b614fd860a0830184614297565b979650505050505050565b600081519050614ff2816143d6565b92915050565b60008060006060848603121561501157615010614373565b5b600061501f86828701614fe3565b935050602061503086828701614fe3565b925050604061504186828701614fe3565b9150509250925092565b60006040820190506150606000830185614297565b61506d6020830184614297565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006150d06021836142cc565b91506150db82615074565b604082019050919050565b600060208201905081810360008301526150ff816150c3565b905091905056fea2646970667358221220817d638d466f934a76d776f4b9a020e5f9e1274d5a7686f608e7d12e57290f0764736f6c63430008100033

Deployed Bytecode Sourcemap

5291:13306:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7144:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8475:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9331:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8737:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6429:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10538:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17205:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9167:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8651:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18126:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17896:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17583:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6142:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5972:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6989:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9555:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15528:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15195:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15817;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6324:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6286:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6544:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8917:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4884:148;;;;;;;;;;;;;:::i;:::-;;16868:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5487:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17305:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5548:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16991:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16304:556;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8831:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6192:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4668:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7090:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16079:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8561:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6248:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6392:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6581:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6806:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10036:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17413:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6881:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15732:77;;;;;;;;;;;;;:::i;:::-;;6463:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18389:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7036:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6356:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9028:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6832:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6508:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15322:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5040:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15944:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6776:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17107:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6915:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7144:54;;;;:::o;8475:78::-;8523:13;8546:5;;;;;;;;;;;;;;;;;8539:12;;8475:78;:::o;9331:216::-;9406:4;9458:6;9423:11;:23;9435:10;9423:23;;;;;;;;;;;;;;;:32;9447:7;9423:32;;;;;;;;;;;;;;;:41;;;;9501:7;9480:37;;9489:10;9480:37;;;9510:6;9480:37;;;;;;:::i;:::-;;;;;;;;9535:4;9528:11;;9331:216;;;;:::o;8737:86::-;8792:7;8809:12;;8802:19;;8737:86;:::o;6429:27::-;;;;:::o;10538:370::-;10638:4;10694:17;10659:11;:19;10671:6;10659:19;;;;;;;;;;;;;;;:31;10679:10;10659:31;;;;;;;;;;;;;;;;:52;10655:188;;10762:69;10798:6;10762:69;;;;;;;;;;;;;;;;;:11;:19;10774:6;10762:19;;;;;;;;;;;;;;;:31;10782:10;10762:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10728:11;:19;10740:6;10728:19;;;;;;;;;;;;;;;:31;10748:10;10728:31;;;;;;;;;;;;;;;:103;;;;10655:188;10860:40;10874:6;10882:9;10893:6;10860:13;:40::i;:::-;10853:47;;10538:370;;;;;:::o;17205:92::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17283:6:::1;17269:11;;:20;;;;;;;;;;;;;;;;;;17205:92:::0;:::o;9167:156::-;9220:7;9247:68;9292:22;5736:42;9292:9;:22::i;:::-;9247:40;9264:22;5648:42;9264:9;:22::i;:::-;9247:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;9240:75;;9167:156;:::o;8651:78::-;8703:5;5408:2;8711:16;;8651:78;:::o;18126:255::-;18211:12;4805;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18268:4:::1;18244:29;;:12;:29;;::::0;18236:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18331:12;18324:29;;;18354:10;18366:6;18324:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18317:56;;18126:255:::0;;;;:::o;17896:222::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17983:9:::1;17964:6;;:29;;;;;;;;;;;;;;;;;;18022:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18011:39;;;18051:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18074:4;18011:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18004:4;;:76;;;;;;;;;;;;;;;;;;18106:4;18091:6;:12;18098:4;;;;;;;;;;;18091:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;17896:222:::0;:::o;17583:305::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17750:11:::1;17726:21;;:35;;;;;;;;;;;;;;;;;;17790:12;17772:15;;:30;;;;;;;;;;;;;;;;;;17825:12;17813:9;;:24;;;;;;;;;;;;;;;;;;17864:16;17848:13;;:32;;;;;;;;;;;;;;;;;;17583:305:::0;;;;:::o;6142:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5972:33::-;;;;;;;;;;;;;:::o;6989:40::-;;;;;;;;;;;;;:::o;9555:122::-;9610:4;9634:35;9642:7;9651:17;9634:7;:35::i;:::-;9627:42;;9555:122;;;:::o;15528:196::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15616:1:::1;15604:8;:13;;15596:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15712:4;15701:8;15686:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15671:12;:45;;;;15528:196:::0;:::o;15195:119::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15301:5:::1;15278:10;:20;15289:8;15278:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15195:119:::0;;:::o;15817:::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15922:6:::1;15900:11;:19;15912:6;15900:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15817:119:::0;;:::o;6324:25::-;;;;:::o;6286:31::-;;;;:::o;6544:30::-;;;;;;;;;;;;;:::o;8917:103::-;8983:7;9000:9;:18;9010:7;9000:18;;;;;;;;;;;;;;;;8993:25;;8917:103;;;:::o;4884:148::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4991:1:::1;4954:40;;4975:6;::::0;::::1;;;;;;;;4954:40;;;;;;;;;;;;5022:1;5005:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4884:148::o:0;16868:115::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16969:6:::1;16942:14;:24;16957:8;16942:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;16868:115:::0;;:::o;5487:54::-;;;;:::o;17305:100::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17391:6:::1;17373:15;;:24;;;;;;;;;;;;;;;;;;17305:100:::0;:::o;5548:52::-;;;;:::o;16991:108::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17085:6:::1;17066;:16;17073:8;17066:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;16991:108:::0;;:::o;16304:556::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16496:9:::1;16481:12;:24;;;;16531:15;16516:12;:30;;;;16566:9;16557:6;:18;;;;16599:13;16586:10;:26;;;;16635:12;16623:9;:24;;;;16671:73;16734:9;;16671:58;16718:10;;16671:42;16706:6;;16671:30;16688:12;;16671;;:16;;:30;;;;:::i;:::-;:34;;:42;;;;:::i;:::-;:46;;:58;;;;:::i;:::-;:62;;:73;;;;:::i;:::-;16660:8;:84;;;;16786:12;16775:8;;:23;;;;:::i;:::-;16755:17;:43;;;;16849:2;16838:8;;16818:17;;:28;;;;:::i;:::-;:33;16809:43;;;::::0;::::1;;16304:556:::0;;;;;;:::o;8831:78::-;8883:7;8900;:5;:7::i;:::-;8893:14;;8831:78;:::o;6192:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4668:79::-;4706:7;4733:6;;;;;;;;;;;4726:13;;4668:79;:::o;7090:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;16079:217::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16170:4:::1;16145:14:::0;:22:::1;16160:6;16145:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;16207:4;16185:11;:19;16197:6;16185:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;16248:4;16222:15;:23;16238:6;16222:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;16284:4;16263:10;:18;16274:6;16263:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;16079:217:::0;:::o;8561:82::-;8611:13;8634:7;;;;;;;;;;;;;;;;;8627:14;;8561:82;:::o;6248:31::-;;;;:::o;6392:28::-;;;;:::o;6581:34::-;;;;;;;;;;;;;:::o;6806:19::-;;;;;;;;;;;;;:::o;10036:156::-;10116:4;10140:44;10154:10;10166:9;10177:6;10140:13;:44::i;:::-;10133:51;;10036:156;;;;:::o;17413:162::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17525:6:::1;17501:21;;:30;;;;;;;;;;;;;;;;;;17558:9;17542:13;:25;;;;17413:162:::0;;:::o;6881:25::-;;;;:::o;15732:77::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15797:4:::1;15783:11;;:18;;;;;;;;;;;;;;;;;;15732:77::o:0;6463:36::-;;;;:::o;18389:203::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18468:17:::1;18488:21;18468:41;;18528:10;18520:28;;:64;18580:3;18561:16;18549:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;18520:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18457:135;18389:203:::0;:::o;7036:45::-;;;;;;;;;;;;;:::o;6356:29::-;;;;:::o;9028:131::-;9112:7;9129:11;:19;9141:6;9129:19;;;;;;;;;;;;;;;:28;9149:7;9129:28;;;;;;;;;;;;;;;;9122:35;;9028:131;;;;:::o;6832:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;6508:29::-;;;;;;;;;;;;;:::o;15322:198::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15414:1:::1;15402:8;:13;;15394:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15508:4;15497:8;15482:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;15469:10;:43;;;;15322:198:::0;:::o;5040:244::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5149:1:::1;5129:22;;:8;:22;;::::0;5121:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5239:8;5210:38;;5231:6;::::0;::::1;;;;;;;;5210:38;;;;;;;;;;;;5268:8;5259:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5040:244:::0;:::o;15944:127::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16057:6:::1;16031:15;:23;16047:6;16031:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;15944:127:::0;;:::o;6776:23::-;;;;;;;;;;;;;:::o;17107:90::-;4805:12;:10;:12::i;:::-;4795:22;;:6;;;;;;;;;;:22;;;4787:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17183:6:::1;17170:10;;:19;;;;;;;;;;;;;;;;;;17107:90:::0;:::o;6915:31::-;;;;;;;;;;;;;:::o;2880:179::-;2938:7;2958:9;2974:1;2970;:5;;;;:::i;:::-;2958:17;;2999:1;2994;:6;;2986:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3050:1;3043:8;;;2880:179;;;;:::o;3211:190::-;3297:7;3330:1;3325;:6;;3333:12;3317:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3357:9;3373:1;3369;:5;;;;:::i;:::-;3357:17;;3392:1;3385:8;;;3211:190;;;;;:::o;10916:1197::-;11008:4;11029:16;;;;;;;;;;;11025:73;;;11055:41;11070:6;11078:9;11089:6;11055:14;:41::i;:::-;11048:48;;;;11025:73;11112:14;:22;11127:6;11112:22;;;;;;;;;;;;;;;;;;;;;;;;;11111:23;:53;;;;;11139:14;:25;11154:9;11139:25;;;;;;;;;;;;;;;;;;;;;;;;;11138:26;11111:53;11108:108;;;11188:11;;;;;;;;;;;11180:24;;;;;;;;;;;;:::i;:::-;;;;;;;;;11108:108;11246:12;;11236:6;:22;;:49;;;;11262:15;:23;11278:6;11262:23;;;;;;;;;;;;;;;;;;;;;;;;;11236:49;11228:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11313:6;:17;11320:9;11313:17;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;11335:16;;;;;;;;;;;11334:17;11313:38;:63;;;;;11355:21;;;;;;;;;;;11313:63;:108;;;;;11408:13;;11380:9;:24;11398:4;11380:24;;;;;;;;;;;;;;;;:41;;11313:108;11309:140;;;11424:23;:21;:23::i;:::-;11309:140;11464:10;:8;:10::i;:::-;11463:11;:32;;;;;11478:6;:17;11485:9;11478:17;;;;;;;;;;;;;;;;;;;;;;;;;11463:32;11459:122;;;11540:1;11520:9;:17;11530:6;11520:17;;;;;;;;;;;;;;;;:21;11512:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;11561:8;:6;:8::i;:::-;11459:122;11641:33;11663:6;11641:33;;;;;;;;;;;;:9;:17;11651:6;11641:17;;;;;;;;;;;;;;;;:21;;:33;;;;;:::i;:::-;11621:9;:17;11631:6;11621:17;;;;;;;;;;;;;;;:53;;;;11692:15;:26;11708:9;11692:26;;;;;;;;;;;;;;;;;;;;;;;;;11691:27;:45;;;;;11722:14;;;;;;;;;;;11691:45;11687:137;;;11797:10;;11761:32;11786:6;11761:9;:20;11771:9;11761:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:46;;11753:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;11687:137;11836:19;11859:11;:19;11871:6;11859:19;;;;;;;;;;;;;;;;;;;;;;;;;11858:20;:47;;;;;11883:11;:22;11895:9;11883:22;;;;;;;;;;;;;;;;;;;;;;;;;11882:23;11858:47;:96;;11948:6;11858:96;;;11908:37;11919:6;11927:9;11938:6;11908:10;:37::i;:::-;11858:96;11836:118;;11988:37;12013:11;11988:9;:20;11998:9;11988:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;11965:9;:20;11975:9;11965:20;;;;;;;;;;;;;;;:60;;;;12060:9;12043:40;;12052:6;12043:40;;;12071:11;12043:40;;;;;;:::i;:::-;;;;;;;;12101:4;12094:11;;;10916:1197;;;;;;:::o;4008:115::-;4061:15;4104:10;4089:26;;4008:115;:::o;3067:136::-;3125:7;3152:43;3156:1;3159;3152:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3145:50;;3067:136;;;;:::o;10200:330::-;10293:4;10330:53;10352:6;10330:53;;;;;;;;;;;;;;;;;:9;:17;10340:6;10330:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10310:9;:17;10320:6;10310:17;;;;;;;;;;;;;;;:73;;;;10417:32;10442:6;10417:9;:20;10427:9;10417:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10394:9;:20;10404:9;10394:20;;;;;;;;;;;;;;;:55;;;;10482:9;10465:35;;10474:6;10465:35;;;10493:6;10465:35;;;;;;:::i;:::-;;;;;;;;10518:4;10511:11;;10200:330;;;;;:::o;13324:1863::-;7322:4;7303:16;;:23;;;;;;;;;;;;;;;;;;13389::::1;13415:9;:24;13433:4;13415:24;;;;;;;;;;;;;;;;13389:50;;13450:23;13476:69;13543:1;13476:62;13514:23;13527:9;;13514:8;;:12;;:23;;;;:::i;:::-;13476:33;13496:12;;13476:15;:19;;:33;;;;:::i;:::-;:37;;:62;;;;:::i;:::-;:66;;:69;;;;:::i;:::-;13450:95;;13556:20;13579:36;13599:15;13579;:19;;:36;;;;:::i;:::-;13556:59;;13628:21;13666:1;13652:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13628:40;;13697:4;13679;13684:1;13679:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13723:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13713:4;13718:1;13713:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13749:6;;;;;;;;;;;:57;;;13821:12;13848:1;13864:4;13891;13911:15;13749:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13950:17;13970:21;13950:41;;14004:19;14026:48;14054:19;14071:1;14054:12;;:16;;:19;;;;:::i;:::-;14026:23;14039:9;;14026:8;;:12;;:23;;;;:::i;:::-;:27;;:48;;;;:::i;:::-;14004:70;;14087:26;14116:51;14165:1;14116:44;14148:11;14116:27;14130:12;;14116:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;14087:80;;14178:26;14207:44;14239:11;14207:27;14221:12;;14207:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;14178:73;;14262:24;14289:42;14319:11;14289:25;14303:10;;14289:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;14262:69;;14342:20;14365:38;14391:11;14365:21;14379:6;;14365:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;14342:61;;14425:16;14454:15;;;;;;;;;;;14446:29;;14484:18;14510:5;14446:74;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14424:96;;;14545:5;14531:19;;14588:13;;;;;;;;;;;14580:27;;14616:16;14640:5;14580:70;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14563:87;;;;;14675:5;14661:19;;14718:9;;;;;;;;;;;14710:23;;14742:12;14762:5;14710:62;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14693:79;;;;;14797:5;14783:19;;14837:1;14819:15;:19;14815:365;;;14855:6;;;;;;;;;;;:22;;;14886:18;14932:4;14956:15;14990:1;15010::::0;15030:21:::1;;;;;;;;;;;15070:15;14855:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15120:48;15132:18;15152:15;15120:48;;;;;;;:::i;:::-;;;;;;;;14815:365;13378:1809;;;;;;;;;;;7368:5:::0;7349:16;;:24;;;;;;;;;;;;;;;;;;13324:1863::o;9685:90::-;9728:4;9766:1;9752:10;;:15;;9745:22;;9685:90;:::o;9783:71::-;9834:12;9821:10;:25;;;;9783:71::o;12121:1195::-;12210:7;12230:18;12251:1;12230:22;;12263:17;12299:6;:17;12306:9;12299:17;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;;12320:11;;;;;;;;;;;12299:32;12295:121;;;12364:32;12386:9;;12364:17;;:21;;:32;;;;:::i;:::-;12348:48;;12295:121;12430:6;:14;12437:6;12430:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;12448:10;;;;;;;;;;;12430:28;12426:108;;;12491:23;12504:9;;12491:8;;:12;;:23;;;;:::i;:::-;12475:39;;12426:108;12549:6;:14;12556:6;12549:14;;;;;;;;;;;;;;;;;;;;;;;;;12548:15;:37;;;;;12568:6;:17;12575:9;12568:17;;;;;;;;;;;;;;;;;;;;;;;;;12567:18;12548:37;12544:242;;;12605:15;;;;;;;;;;;12601:174;;;12656:32;12678:9;;12656:17;;:21;;:32;;;;:::i;:::-;12640:48;;12601:174;;;12758:1;12742:17;;12601:174;12544:242;12815:1;12799:13;:17;:33;;;;;12831:1;12820:9;;:12;12799:33;12796:252;;;12863:30;12889:3;12863:21;12874:9;;12863:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;12848:45;;12933:40;12960:12;12933:9;:22;5648:42;12933:22;;;;;;;;;;;;;;;;:26;;:40;;;;:::i;:::-;12908:9;:22;5648:42;12908:22;;;;;;;;;;;;;;;:65;;;;5648:42;12993:43;;13002:6;12993:43;;;13023:12;12993:43;;;;;;:::i;:::-;;;;;;;;12796:252;13058:17;13078:34;13108:3;13078:25;13089:13;13078:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;13058:54;;13152:39;13181:9;13152;:24;13170:4;13152:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13125:9;:24;13143:4;13125:24;;;;;;;;;;;;;;;:66;;;;13232:4;13207:42;;13216:6;13207:42;;;13239:9;13207:42;;;;;;:::i;:::-;;;;;;;;13269:39;13295:12;13269:21;13280:9;13269:6;:10;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;13262:46;;;;;12121:1195;;;;;:::o;3409:222::-;3467:7;3496:1;3491;:6;3487:23;;3507:1;3500:8;;;;3487:23;3520:9;3536:1;3532;:5;;;;:::i;:::-;3520:17;;3565:1;3560;3556;:5;;;;:::i;:::-;:10;3548:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3622:1;3615:8;;;3409:222;;;;;:::o;3639:132::-;3697:7;3724:39;3728:1;3731;3724:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3717:46;;3639:132;;;;:::o;3779:189::-;3865:7;3897:1;3893;:5;3900:12;3885:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3924:9;3940:1;3936;:5;;;;:::i;:::-;3924:17;;3959:1;3952:8;;;3779:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:116::-;4493:21;4508:5;4493:21;:::i;:::-;4486:5;4483:32;4473:60;;4529:1;4526;4519:12;4473:60;4423:116;:::o;4545:133::-;4588:5;4626:6;4613:20;4604:29;;4642:30;4666:5;4642:30;:::i;:::-;4545:133;;;;:::o;4684:323::-;4740:6;4789:2;4777:9;4768:7;4764:23;4760:32;4757:119;;;4795:79;;:::i;:::-;4757:119;4915:1;4940:50;4982:7;4973:6;4962:9;4958:22;4940:50;:::i;:::-;4930:60;;4886:114;4684:323;;;;:::o;5013:86::-;5048:7;5088:4;5081:5;5077:16;5066:27;;5013:86;;;:::o;5105:112::-;5188:22;5204:5;5188:22;:::i;:::-;5183:3;5176:35;5105:112;;:::o;5223:214::-;5312:4;5350:2;5339:9;5335:18;5327:26;;5363:67;5427:1;5416:9;5412:17;5403:6;5363:67;:::i;:::-;5223:214;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:765::-;5864:6;5872;5880;5888;5937:3;5925:9;5916:7;5912:23;5908:33;5905:120;;;5944:79;;:::i;:::-;5905:120;6064:1;6089:53;6134:7;6125:6;6114:9;6110:22;6089:53;:::i;:::-;6079:63;;6035:117;6191:2;6217:53;6262:7;6253:6;6242:9;6238:22;6217:53;:::i;:::-;6207:63;;6162:118;6319:2;6345:53;6390:7;6381:6;6370:9;6366:22;6345:53;:::i;:::-;6335:63;;6290:118;6447:2;6473:53;6518:7;6509:6;6498:9;6494:22;6473:53;:::i;:::-;6463:63;;6418:118;5778:765;;;;;;;:::o;6549:329::-;6608:6;6657:2;6645:9;6636:7;6632:23;6628:32;6625:119;;;6663:79;;:::i;:::-;6625:119;6783:1;6808:53;6853:7;6844:6;6833:9;6829:22;6808:53;:::i;:::-;6798:63;;6754:117;6549:329;;;;:::o;6884:468::-;6949:6;6957;7006:2;6994:9;6985:7;6981:23;6977:32;6974:119;;;7012:79;;:::i;:::-;6974:119;7132:1;7157:50;7199:7;7190:6;7179:9;7175:22;7157:50;:::i;:::-;7147:60;;7103:114;7256:2;7282:53;7327:7;7318:6;7307:9;7303:22;7282:53;:::i;:::-;7272:63;;7227:118;6884:468;;;;;:::o;7358:::-;7423:6;7431;7480:2;7468:9;7459:7;7455:23;7451:32;7448:119;;;7486:79;;:::i;:::-;7448:119;7606:1;7631:53;7676:7;7667:6;7656:9;7652:22;7631:53;:::i;:::-;7621:63;;7577:117;7733:2;7759:50;7801:7;7792:6;7781:9;7777:22;7759:50;:::i;:::-;7749:60;;7704:115;7358:468;;;;;:::o;7832:1057::-;7936:6;7944;7952;7960;7968;7976;8025:3;8013:9;8004:7;8000:23;7996:33;7993:120;;;8032:79;;:::i;:::-;7993:120;8152:1;8177:53;8222:7;8213:6;8202:9;8198:22;8177:53;:::i;:::-;8167:63;;8123:117;8279:2;8305:53;8350:7;8341:6;8330:9;8326:22;8305:53;:::i;:::-;8295:63;;8250:118;8407:2;8433:53;8478:7;8469:6;8458:9;8454:22;8433:53;:::i;:::-;8423:63;;8378:118;8535:2;8561:53;8606:7;8597:6;8586:9;8582:22;8561:53;:::i;:::-;8551:63;;8506:118;8663:3;8690:53;8735:7;8726:6;8715:9;8711:22;8690:53;:::i;:::-;8680:63;;8634:119;8792:3;8819:53;8864:7;8855:6;8844:9;8840:22;8819:53;:::i;:::-;8809:63;;8763:119;7832:1057;;;;;;;;:::o;8895:118::-;8982:24;9000:5;8982:24;:::i;:::-;8977:3;8970:37;8895:118;;:::o;9019:222::-;9112:4;9150:2;9139:9;9135:18;9127:26;;9163:71;9231:1;9220:9;9216:17;9207:6;9163:71;:::i;:::-;9019:222;;;;:::o;9247:468::-;9312:6;9320;9369:2;9357:9;9348:7;9344:23;9340:32;9337:119;;;9375:79;;:::i;:::-;9337:119;9495:1;9520:50;9562:7;9553:6;9542:9;9538:22;9520:50;:::i;:::-;9510:60;;9466:114;9619:2;9645:53;9690:7;9681:6;9670:9;9666:22;9645:53;:::i;:::-;9635:63;;9590:118;9247:468;;;;;:::o;9721:474::-;9789:6;9797;9846:2;9834:9;9825:7;9821:23;9817:32;9814:119;;;9852:79;;:::i;:::-;9814:119;9972:1;9997:53;10042:7;10033:6;10022:9;10018:22;9997:53;:::i;:::-;9987:63;;9943:117;10099:2;10125:53;10170:7;10161:6;10150:9;10146:22;10125:53;:::i;:::-;10115:63;;10070:118;9721:474;;;;;:::o;10201:60::-;10229:3;10250:5;10243:12;;10201:60;;;:::o;10267:142::-;10317:9;10350:53;10368:34;10377:24;10395:5;10377:24;:::i;:::-;10368:34;:::i;:::-;10350:53;:::i;:::-;10337:66;;10267:142;;;:::o;10415:126::-;10465:9;10498:37;10529:5;10498:37;:::i;:::-;10485:50;;10415:126;;;:::o;10547:143::-;10614:9;10647:37;10678:5;10647:37;:::i;:::-;10634:50;;10547:143;;;:::o;10696:165::-;10800:54;10848:5;10800:54;:::i;:::-;10795:3;10788:67;10696:165;;:::o;10867:256::-;10977:4;11015:2;11004:9;11000:18;10992:26;;11028:88;11113:1;11102:9;11098:17;11089:6;11028:88;:::i;:::-;10867:256;;;;:::o;11129:182::-;11269:34;11265:1;11257:6;11253:14;11246:58;11129:182;:::o;11317:366::-;11459:3;11480:67;11544:2;11539:3;11480:67;:::i;:::-;11473:74;;11556:93;11645:3;11556:93;:::i;:::-;11674:2;11669:3;11665:12;11658:19;;11317:366;;;:::o;11689:419::-;11855:4;11893:2;11882:9;11878:18;11870:26;;11942:9;11936:4;11932:20;11928:1;11917:9;11913:17;11906:47;11970:131;12096:4;11970:131;:::i;:::-;11962:139;;11689:419;;;:::o;12114:178::-;12254:30;12250:1;12242:6;12238:14;12231:54;12114:178;:::o;12298:366::-;12440:3;12461:67;12525:2;12520:3;12461:67;:::i;:::-;12454:74;;12537:93;12626:3;12537:93;:::i;:::-;12655:2;12650:3;12646:12;12639:19;;12298:366;;;:::o;12670:419::-;12836:4;12874:2;12863:9;12859:18;12851:26;;12923:9;12917:4;12913:20;12909:1;12898:9;12894:17;12887:47;12951:131;13077:4;12951:131;:::i;:::-;12943:139;;12670:419;;;:::o;13095:332::-;13216:4;13254:2;13243:9;13239:18;13231:26;;13267:71;13335:1;13324:9;13320:17;13311:6;13267:71;:::i;:::-;13348:72;13416:2;13405:9;13401:18;13392:6;13348:72;:::i;:::-;13095:332;;;;;:::o;13433:137::-;13487:5;13518:6;13512:13;13503:22;;13534:30;13558:5;13534:30;:::i;:::-;13433:137;;;;:::o;13576:345::-;13643:6;13692:2;13680:9;13671:7;13667:23;13663:32;13660:119;;;13698:79;;:::i;:::-;13660:119;13818:1;13843:61;13896:7;13887:6;13876:9;13872:22;13843:61;:::i;:::-;13833:71;;13789:125;13576:345;;;;:::o;13927:143::-;13984:5;14015:6;14009:13;14000:22;;14031:33;14058:5;14031:33;:::i;:::-;13927:143;;;;:::o;14076:351::-;14146:6;14195:2;14183:9;14174:7;14170:23;14166:32;14163:119;;;14201:79;;:::i;:::-;14163:119;14321:1;14346:64;14402:7;14393:6;14382:9;14378:22;14346:64;:::i;:::-;14336:74;;14292:128;14076:351;;;;:::o;14433:332::-;14554:4;14592:2;14581:9;14577:18;14569:26;;14605:71;14673:1;14662:9;14658:17;14649:6;14605:71;:::i;:::-;14686:72;14754:2;14743:9;14739:18;14730:6;14686:72;:::i;:::-;14433:332;;;;;:::o;14771:225::-;14911:34;14907:1;14899:6;14895:14;14888:58;14980:8;14975:2;14967:6;14963:15;14956:33;14771:225;:::o;15002:366::-;15144:3;15165:67;15229:2;15224:3;15165:67;:::i;:::-;15158:74;;15241:93;15330:3;15241:93;:::i;:::-;15359:2;15354:3;15350:12;15343:19;;15002:366;;;:::o;15374:419::-;15540:4;15578:2;15567:9;15563:18;15555:26;;15627:9;15621:4;15617:20;15613:1;15602:9;15598:17;15591:47;15655:131;15781:4;15655:131;:::i;:::-;15647:139;;15374:419;;;:::o;15799:180::-;15847:77;15844:1;15837:88;15944:4;15941:1;15934:15;15968:4;15965:1;15958:15;15985:348;16025:7;16048:20;16066:1;16048:20;:::i;:::-;16043:25;;16082:20;16100:1;16082:20;:::i;:::-;16077:25;;16270:1;16202:66;16198:74;16195:1;16192:81;16187:1;16180:9;16173:17;16169:105;16166:131;;;16277:18;;:::i;:::-;16166:131;16325:1;16322;16318:9;16307:20;;15985:348;;;;:::o;16339:180::-;16387:77;16384:1;16377:88;16484:4;16481:1;16474:15;16508:4;16505:1;16498:15;16525:185;16565:1;16582:20;16600:1;16582:20;:::i;:::-;16577:25;;16616:20;16634:1;16616:20;:::i;:::-;16611:25;;16655:1;16645:35;;16660:18;;:::i;:::-;16645:35;16702:1;16699;16695:9;16690:14;;16525:185;;;;:::o;16716:191::-;16756:3;16775:20;16793:1;16775:20;:::i;:::-;16770:25;;16809:20;16827:1;16809:20;:::i;:::-;16804:25;;16852:1;16849;16845:9;16838:16;;16873:3;16870:1;16867:10;16864:36;;;16880:18;;:::i;:::-;16864:36;16716:191;;;;:::o;16913:225::-;17053:34;17049:1;17041:6;17037:14;17030:58;17122:8;17117:2;17109:6;17105:15;17098:33;16913:225;:::o;17144:366::-;17286:3;17307:67;17371:2;17366:3;17307:67;:::i;:::-;17300:74;;17383:93;17472:3;17383:93;:::i;:::-;17501:2;17496:3;17492:12;17485:19;;17144:366;;;:::o;17516:419::-;17682:4;17720:2;17709:9;17705:18;17697:26;;17769:9;17763:4;17759:20;17755:1;17744:9;17740:17;17733:47;17797:131;17923:4;17797:131;:::i;:::-;17789:139;;17516:419;;;:::o;17941:177::-;18081:29;18077:1;18069:6;18065:14;18058:53;17941:177;:::o;18124:366::-;18266:3;18287:67;18351:2;18346:3;18287:67;:::i;:::-;18280:74;;18363:93;18452:3;18363:93;:::i;:::-;18481:2;18476:3;18472:12;18465:19;;18124:366;;;:::o;18496:419::-;18662:4;18700:2;18689:9;18685:18;18677:26;;18749:9;18743:4;18739:20;18735:1;18724:9;18720:17;18713:47;18777:131;18903:4;18777:131;:::i;:::-;18769:139;;18496:419;;;:::o;18921:194::-;18961:4;18981:20;18999:1;18981:20;:::i;:::-;18976:25;;19015:20;19033:1;19015:20;:::i;:::-;19010:25;;19059:1;19056;19052:9;19044:17;;19083:1;19077:4;19074:11;19071:37;;;19088:18;;:::i;:::-;19071:37;18921:194;;;;:::o;19121:114::-;;:::o;19241:364::-;19383:3;19404:66;19468:1;19463:3;19404:66;:::i;:::-;19397:73;;19479:93;19568:3;19479:93;:::i;:::-;19597:1;19592:3;19588:11;19581:18;;19241:364;;;:::o;19611:419::-;19777:4;19815:2;19804:9;19800:18;19792:26;;19864:9;19858:4;19854:20;19850:1;19839:9;19835:17;19828:47;19892:131;20018:4;19892:131;:::i;:::-;19884:139;;19611:419;;;:::o;20036:158::-;20176:10;20172:1;20164:6;20160:14;20153:34;20036:158;:::o;20200:365::-;20342:3;20363:66;20427:1;20422:3;20363:66;:::i;:::-;20356:73;;20438:93;20527:3;20438:93;:::i;:::-;20556:2;20551:3;20547:12;20540:19;;20200:365;;;:::o;20571:419::-;20737:4;20775:2;20764:9;20760:18;20752:26;;20824:9;20818:4;20814:20;20810:1;20799:9;20795:17;20788:47;20852:131;20978:4;20852:131;:::i;:::-;20844:139;;20571:419;;;:::o;20996:180::-;21044:77;21041:1;21034:88;21141:4;21138:1;21131:15;21165:4;21162:1;21155:15;21182:180;21230:77;21227:1;21220:88;21327:4;21324:1;21317:15;21351:4;21348:1;21341:15;21368:85;21413:7;21442:5;21431:16;;21368:85;;;:::o;21459:158::-;21517:9;21550:61;21568:42;21577:32;21603:5;21577:32;:::i;:::-;21568:42;:::i;:::-;21550:61;:::i;:::-;21537:74;;21459:158;;;:::o;21623:147::-;21718:45;21757:5;21718:45;:::i;:::-;21713:3;21706:58;21623:147;;:::o;21776:114::-;21843:6;21877:5;21871:12;21861:22;;21776:114;;;:::o;21896:184::-;21995:11;22029:6;22024:3;22017:19;22069:4;22064:3;22060:14;22045:29;;21896:184;;;;:::o;22086:132::-;22153:4;22176:3;22168:11;;22206:4;22201:3;22197:14;22189:22;;22086:132;;;:::o;22224:108::-;22301:24;22319:5;22301:24;:::i;:::-;22296:3;22289:37;22224:108;;:::o;22338:179::-;22407:10;22428:46;22470:3;22462:6;22428:46;:::i;:::-;22506:4;22501:3;22497:14;22483:28;;22338:179;;;;:::o;22523:113::-;22593:4;22625;22620:3;22616:14;22608:22;;22523:113;;;:::o;22672:732::-;22791:3;22820:54;22868:5;22820:54;:::i;:::-;22890:86;22969:6;22964:3;22890:86;:::i;:::-;22883:93;;23000:56;23050:5;23000:56;:::i;:::-;23079:7;23110:1;23095:284;23120:6;23117:1;23114:13;23095:284;;;23196:6;23190:13;23223:63;23282:3;23267:13;23223:63;:::i;:::-;23216:70;;23309:60;23362:6;23309:60;:::i;:::-;23299:70;;23155:224;23142:1;23139;23135:9;23130:14;;23095:284;;;23099:14;23395:3;23388:10;;22796:608;;;22672:732;;;;:::o;23410:831::-;23673:4;23711:3;23700:9;23696:19;23688:27;;23725:71;23793:1;23782:9;23778:17;23769:6;23725:71;:::i;:::-;23806:80;23882:2;23871:9;23867:18;23858:6;23806:80;:::i;:::-;23933:9;23927:4;23923:20;23918:2;23907:9;23903:18;23896:48;23961:108;24064:4;24055:6;23961:108;:::i;:::-;23953:116;;24079:72;24147:2;24136:9;24132:18;24123:6;24079:72;:::i;:::-;24161:73;24229:3;24218:9;24214:19;24205:6;24161:73;:::i;:::-;23410:831;;;;;;;;:::o;24247:147::-;24348:11;24385:3;24370:18;;24247:147;;;;:::o;24400:398::-;24559:3;24580:83;24661:1;24656:3;24580:83;:::i;:::-;24573:90;;24672:93;24761:3;24672:93;:::i;:::-;24790:1;24785:3;24781:11;24774:18;;24400:398;;;:::o;24804:379::-;24988:3;25010:147;25153:3;25010:147;:::i;:::-;25003:154;;25174:3;25167:10;;24804:379;;;:::o;25189:807::-;25438:4;25476:3;25465:9;25461:19;25453:27;;25490:71;25558:1;25547:9;25543:17;25534:6;25490:71;:::i;:::-;25571:72;25639:2;25628:9;25624:18;25615:6;25571:72;:::i;:::-;25653:80;25729:2;25718:9;25714:18;25705:6;25653:80;:::i;:::-;25743;25819:2;25808:9;25804:18;25795:6;25743:80;:::i;:::-;25833:73;25901:3;25890:9;25886:19;25877:6;25833:73;:::i;:::-;25916;25984:3;25973:9;25969:19;25960:6;25916:73;:::i;:::-;25189:807;;;;;;;;;:::o;26002:143::-;26059:5;26090:6;26084:13;26075:22;;26106:33;26133:5;26106:33;:::i;:::-;26002:143;;;;:::o;26151:663::-;26239:6;26247;26255;26304:2;26292:9;26283:7;26279:23;26275:32;26272:119;;;26310:79;;:::i;:::-;26272:119;26430:1;26455:64;26511:7;26502:6;26491:9;26487:22;26455:64;:::i;:::-;26445:74;;26401:128;26568:2;26594:64;26650:7;26641:6;26630:9;26626:22;26594:64;:::i;:::-;26584:74;;26539:129;26707:2;26733:64;26789:7;26780:6;26769:9;26765:22;26733:64;:::i;:::-;26723:74;;26678:129;26151:663;;;;;:::o;26820:332::-;26941:4;26979:2;26968:9;26964:18;26956:26;;26992:71;27060:1;27049:9;27045:17;27036:6;26992:71;:::i;:::-;27073:72;27141:2;27130:9;27126:18;27117:6;27073:72;:::i;:::-;26820:332;;;;;:::o;27158:220::-;27298:34;27294:1;27286:6;27282:14;27275:58;27367:3;27362:2;27354:6;27350:15;27343:28;27158:220;:::o;27384:366::-;27526:3;27547:67;27611:2;27606:3;27547:67;:::i;:::-;27540:74;;27623:93;27712:3;27623:93;:::i;:::-;27741:2;27736:3;27732:12;27725:19;;27384:366;;;:::o;27756:419::-;27922:4;27960:2;27949:9;27945:18;27937:26;;28009:9;28003:4;27999:20;27995:1;27984:9;27980:17;27973:47;28037:131;28163:4;28037:131;:::i;:::-;28029:139;;27756:419;;;:::o

Swarm Source

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