ETH Price: $3,398.22 (+2.96%)

Token

MONK ERC (MONK)
 

Overview

Max Total Supply

10,000,000 MONK

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
2025whale.eth
Balance
59,713.83128406 MONK

Value
$0.00
0x7f2cd12aa7e126045610cfcc22a1241f06288c20
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:
MONK

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-17
*/

/**
 *Submitted for verification at Etherscan.io on 2023-12-16
*/

/**

                                                     
###   ##   ###   ##  ## ### ##   ##### ####     ###  
 ##  ##   #   #   ## #   #  #     #     #  #   #   # 
 ##  ##  #     #  ## #   # #      #  #  #  #  #      
 # ## #  #     #  # ##   ###      ####  ###   #      
 # ## #  #     #  # ##   # #      #  #  #  #  #      
 # ## #   #   #   # ##   #  #     #     #  #   #   # 
#### ###   ###   ##  #  ###  #   ##### ###  #   #### 
                                                     
    Missed $MONK on AVAX? Dont Miss $MONK ERC                                                 
                                                                            

Telegram https://t.me/Monkoshi_erc
X https://twitter.com/monkoshierc


*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address _account) external view returns (uint256);
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract MONK is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "MONK ERC";
    string private _symbol = "MONK";
    uint8 private _decimals = 8; 

    address private immutable deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public buyFee = 15;
    uint256 public SellFee = 35;
    
    uint256 feedenominator = 100;

    address public developmentWallet;

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 10_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(8).div(100);     // 8%
    uint256 public _walletMax = _totalSupply.mul(8).div(100);        // 8%

    uint256 public swapThreshold = _totalSupply.mul(1).div(100); 

    uint256 public launchedAt;
    bool public normalizeTrade;

    bool tradingActive;

    bool public swapEnabled = false;
    bool public swapbylimit = false;
    bool public EnableTxLimit = false;
    bool public checkWalletLimit = false;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier onlyGuard() {
        require(msg.sender == developmentWallet,"Invalid Caller");
        _;
    }

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexRouter = _dexRouter;
        
        developmentWallet = msg.sender;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);

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

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

     //to recieve ETH from Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if (!tradingActive) {
                require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not active.");
            }

            if (launchedAt != 0 && !normalizeTrade) {
                dynamicTaxSetter();
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

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

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(buyFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(SellFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function launch() public payable onlyOwner {
        require(launchedAt == 0, "Already launched!");
        launchedAt = block.timestamp;
        tradingActive = true;

        uint tokenForLp = _balances[address(this)];

        dexRouter.addLiquidityETH{ value: msg.value }(
            address(this),
            tokenForLp,
            0,
            0,
            owner(),
            block.timestamp
        );

        IDexSwapFactory factory = IDexSwapFactory(dexRouter.factory());

        IDexSwapPair pair = IDexSwapPair(factory.getPair(address(this), dexRouter.WETH()));

        dexPair = address(pair);

        isMarketPair[address(dexPair)] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        swapEnabled = true;
        EnableTxLimit = true;
        checkWalletLimit =  true;
    }

    function dynamicTaxSetter() internal {
        if (block.timestamp > launchedAt + 3 minutes) {
            buyFee = 0;
            SellFee = 0;
            normalizeTrade = true;
        }       
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;
        swapTokensForEth(contractBalance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(developmentWallet), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setBuyFee(uint _buyside, uint _sellside) external onlyOwner {    
        buyFee = _buyside;
        SellFee = _sellside;
    }

    function removeLimits() external onlyGuard {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyGuard
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","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":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"normalizeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyside","type":"uint256"},{"internalType":"uint256","name":"_sellside","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600860a0908152674d4f4e4b2045524360c01b60c052600190620000299082620004cf565b506040805180820190915260048152634d4f4e4b60e01b6020820152600290620000549082620004cf565b506003805460ff1916600890811790915561dead608052600f600455602360055560646006556200008790600a620006a8565b620000969062989680620006b8565b600e819055620000b790606490620000b0906008620002cc565b906200035f565b600f55600e54620000d290606490620000b0906008620002cc565b601055600e54620000ed90606490620000b0906001620002cc565b6011556013805465ffffffff0000191690553480156200010b575f80fd5b506200011733620003a8565b60138054600160301b600160d01b031916797a250d5630b4cf539739df2c5dacb4c659f2488d00000000000017815560078054336001600160a01b03199091168117909155305f818152600a60209081526040808320805460ff199081166001908117909255868552828520805482168317905587546001600160a01b03660100000000000091829004811687528487208054841685179055888752600c8652848720805484168517905589548290048116875284872080548416851790558787528487208054841685179055608051811687528487208054841685179055600d8652848720805484168517905588875284872080548416851790558787528487208054841685179055895482900481168752848720805484168517905560145481168752600b865284872080549093169093179091559484526009835281842096549490940490931682529384528181205f199055600e54838252600885528282208190559151918252737a250d5630b4cf539739df2c5dacb4c659f2488d9390917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000740565b5f825f03620002dd57505f62000359565b5f620002ea8385620006b8565b905082620002f98583620006d2565b14620003565760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200035683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620003f760201b60201c565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f81836200041a5760405162461bcd60e51b81526004016200034d9190620006f2565b505f620004288486620006d2565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200045a57607f821691505b6020821081036200047957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004ca57805f5260205f20601f840160051c81016020851015620004a65750805b601f840160051c820191505b81811015620004c7575f8155600101620004b2565b50505b505050565b81516001600160401b03811115620004eb57620004eb62000431565b6200050381620004fc845462000445565b846200047f565b602080601f83116001811462000539575f8415620005215750858301515b5f19600386901b1c1916600185901b17855562000593565b5f85815260208120601f198616915b82811015620005695788860151825594840194600190910190840162000548565b50858210156200058757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005ef57815f1904821115620005d357620005d36200059b565b80851615620005e157918102915b93841c9390800290620005b4565b509250929050565b5f82620006075750600162000359565b816200061557505f62000359565b81600181146200062e5760028114620006395762000659565b600191505062000359565b60ff8411156200064d576200064d6200059b565b50506001821b62000359565b5060208310610133831016604e8410600b84101617156200067e575081810a62000359565b6200068a8383620005af565b805f1904821115620006a057620006a06200059b565b029392505050565b5f6200035660ff841683620005f7565b80820281158282048414176200035957620003596200059b565b5f82620006ed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b81811015620007205785810183015185820160400152820162000702565b505f604082860101526040601f19601f8301168501019250505092915050565b608051612374620007565f395f50506123745ff3fe608060405260043610610278575f3560e01c80637d1db4a51161014a578063c867d60b116100be578063e9fd339411610078578063e9fd339414610788578063ee828db3146107a8578063f242ab41146107c7578063f2fde38b146107e6578063f872858a14610805578063fb0ecfa414610827575f80fd5b8063c867d60b146106af578063cea9d26f146106dd578063cf9522fd146106fc578063dd62ed3e14610711578063df8408fe14610755578063e6b2603b14610774575f80fd5b8063a457c2d71161010f578063a457c2d7146105ff578063a9059cbb1461061e578063ae85ade61461063d578063b94b0aef1461065c578063bf56b3711461067b578063c04a541414610690575f80fd5b80637d1db4a514610577578063807c2d9c1461058c5780638b42507f146105a15780638da5cb5b146105cf57806395d89b41146105eb575f80fd5b806347062402116101ec5780636ddd1713116101a65780636ddd1713146104be57806370a08231146104dd578063715018a614610511578063728d41c91461052557806372ac248614610544578063751039fc14610563575f80fd5b806347062402146103fd5780634974d88f146104125780635342acb4146104315780635c85974f1461045f5780635e42358c1461047e578063651a89871461049f575f80fd5b8063111a46511161023d578063111a46511461034357806318160ddd1461035c57806323b872dd14610370578063313ce5671461038f57806339509351146103b05780633ecad271146103cf575f80fd5b806301339c21146102835780630445b6671461028d57806306fdde03146102b55780630758d924146102d6578063095ea7b314610314575f80fd5b3661027f57005b5f80fd5b61028b610846565b005b348015610298575f80fd5b506102a260115481565b6040519081526020015b60405180910390f35b3480156102c0575f80fd5b506102c9610b93565b6040516102ac9190611f31565b3480156102e1575f80fd5b506013546102fc90600160301b90046001600160a01b031681565b6040516001600160a01b0390911681526020016102ac565b34801561031f575f80fd5b5061033361032e366004611f77565b610c23565b60405190151581526020016102ac565b34801561034e575f80fd5b506013546103339060ff1681565b348015610367575f80fd5b50600e546102a2565b34801561037b575f80fd5b5061033361038a366004611fa1565b610c39565b34801561039a575f80fd5b5060035460405160ff90911681526020016102ac565b3480156103bb575f80fd5b506103336103ca366004611f77565b610ce0565b3480156103da575f80fd5b506103336103e9366004611fdf565b600b6020525f908152604090205460ff1681565b348015610408575f80fd5b506102a260045481565b34801561041d575f80fd5b5061028b61042c36600461200e565b610d15565b34801561043c575f80fd5b5061033361044b366004611fdf565b600a6020525f908152604090205460ff1681565b34801561046a575f80fd5b5061028b610479366004612027565b610d60565b348015610489575f80fd5b5060135461033390640100000000900460ff1681565b3480156104aa575f80fd5b5061028b6104b936600461203e565b610d8e565b3480156104c9575f80fd5b506013546103339062010000900460ff1681565b3480156104e8575f80fd5b506102a26104f7366004611fdf565b6001600160a01b03165f9081526008602052604090205490565b34801561051c575f80fd5b5061028b610de1565b348015610530575f80fd5b5061028b61053f366004612027565b610e15565b34801561054f575f80fd5b5061028b61055e366004611fdf565b610e43565b34801561056e575f80fd5b5061028b610e8e565b348015610582575f80fd5b506102a2600f5481565b348015610597575f80fd5b506102a260105481565b3480156105ac575f80fd5b506103336105bb366004611fdf565b600d6020525f908152604090205460ff1681565b3480156105da575f80fd5b505f546001600160a01b03166102fc565b3480156105f6575f80fd5b506102c9610ec9565b34801561060a575f80fd5b50610333610619366004611f77565b610ed8565b348015610629575f80fd5b50610333610638366004611f77565b610f25565b348015610648575f80fd5b5061028b61065736600461203e565b610f31565b348015610667575f80fd5b5061028b610676366004612071565b610f84565b348015610686575f80fd5b506102a260125481565b34801561069b575f80fd5b506007546102fc906001600160a01b031681565b3480156106ba575f80fd5b506103336106c9366004611fdf565b600c6020525f908152604090205460ff1681565b3480156106e8575f80fd5b5061028b6106f7366004611fa1565b610fe3565b348015610707575f80fd5b506102a260055481565b34801561071c575f80fd5b506102a261072b3660046120aa565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610760575f80fd5b5061028b61076f36600461203e565b6110f1565b34801561077f575f80fd5b5061028b611144565b348015610793575f80fd5b50601354610333906301000000900460ff1681565b3480156107b3575f80fd5b5061028b6107c236600461200e565b6111fd565b3480156107d2575f80fd5b506014546102fc906001600160a01b031681565b3480156107f1575f80fd5b5061028b610800366004611fdf565b611246565b348015610810575f80fd5b506013546103339065010000000000900460ff1681565b348015610832575f80fd5b5061028b6108413660046120e1565b6112dd565b5f546001600160a01b031633146108785760405162461bcd60e51b815260040161086f90612101565b60405180910390fd5b601254156108bc5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b604482015260640161086f565b426012556013805461ff0019166101001790819055305f8181526008602052604081205492600160301b90046001600160a01b03169163f305d7199134919085908061090f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610975573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061099a9190612136565b5050505f601360069054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a139190612161565b90505f816001600160a01b031663e6a4390530601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612161565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b089190612161565b601480546001600160a01b0319166001600160a01b0392831690811782555f908152600b60209081526040808320805460ff199081166001908117909255855487168552600c845282852080549091169091179055308352600982528083209354909416825291909152205f19905550506013805465ffff00ff000019166501010001000017905550565b606060018054610ba29061217c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bce9061217c565b8015610c195780601f10610bf057610100808354040283529160200191610c19565b820191905f5260205f20905b815481529060010190602001808311610bfc57829003601f168201915b5050505050905090565b5f610c2f338484611311565b5060015b92915050565b5f610c45848484611434565b50610cd58433610cd0856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f610cb03390565b6001600160a01b0316815260208101919091526040015f20549190611852565b611311565b5060015b9392505050565b335f8181526009602090815260408083206001600160a01b03871684529091528120549091610c2f918590610cd0908661188a565b5f546001600160a01b03163314610d3e5760405162461bcd60e51b815260040161086f90612101565b60138054911515650100000000000265ff000000000019909216919091179055565b5f546001600160a01b03163314610d895760405162461bcd60e51b815260040161086f90612101565b600f55565b5f546001600160a01b03163314610db75760405162461bcd60e51b815260040161086f90612101565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e0a5760405162461bcd60e51b815260040161086f90612101565b610e135f6118e8565b565b5f546001600160a01b03163314610e3e5760405162461bcd60e51b815260040161086f90612101565b601055565b5f546001600160a01b03163314610e6c5760405162461bcd60e51b815260040161086f90612101565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314610eb85760405162461bcd60e51b815260040161086f906121b4565b6013805465ffff0000000019169055565b606060028054610ba29061217c565b5f610c2f3384610cd08560405180606001604052806025815260200161231a60259139335f9081526009602090815260408083206001600160a01b038d1684529091529020549190611852565b5f610cd5338484611434565b5f546001600160a01b03163314610f5a5760405162461bcd60e51b815260040161086f90612101565b6001600160a01b03919091165f908152600d60205260409020805460ff1916911515919091179055565b6007546001600160a01b03163314610fae5760405162461bcd60e51b815260040161086f906121b4565b6013805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055601155565b6007546001600160a01b0316331461100d5760405162461bcd60e51b815260040161086f906121b4565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161106591906121dc565b5f604051808303815f865af19150503d805f811461109e576040519150601f19603f3d011682016040523d82523d5f602084013e6110a3565b606091505b50509050806110eb5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b604482015260640161086f565b50505050565b5f546001600160a01b0316331461111a5760405162461bcd60e51b815260040161086f90612101565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6007546001600160a01b0316331461116e5760405162461bcd60e51b815260040161086f906121b4565b6040515f90339047908381818185875af1925050503d805f81146111ad576040519150601f19603f3d011682016040523d82523d5f602084013e6111b2565b606091505b50509050806111fa5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b604482015260640161086f565b50565b5f546001600160a01b031633146112265760405162461bcd60e51b815260040161086f90612101565b601380549115156401000000000264ff0000000019909216919091179055565b5f546001600160a01b0316331461126f5760405162461bcd60e51b815260040161086f90612101565b6001600160a01b0381166112d45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086f565b6111fa816118e8565b5f546001600160a01b031633146113065760405162461bcd60e51b815260040161086f90612101565b600491909155600555565b6001600160a01b0383166113735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086f565b6001600160a01b0382166113d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086f565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416611447575f80fd5b6001600160a01b038316611459575f80fd5b5f8211611464575f80fd5b601454600160a01b900460ff161561148857611481848484611937565b9050610cd9565b601354610100900460ff16611519576001600160a01b0384165f908152600a602052604090205460ff16806114d457506001600160a01b0383165f908152600a602052604090205460ff165b6115195760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161086f565b6012541580159061152d575060135460ff16155b1561153a5761153a611a1a565b305f90815260086020526040902054601154811080159081906115675750601454600160a01b900460ff16155b801561158b57506001600160a01b0386165f908152600b602052604090205460ff16155b801561159f575060135462010000900460ff165b80156115c357506001600160a01b0386165f908152600a602052604090205460ff16155b80156115e757506001600160a01b0385165f908152600a602052604090205460ff16155b156115f5576115f582611a47565b6001600160a01b0386165f908152600d602052604090205460ff1615801561163557506001600160a01b0385165f908152600d602052604090205460ff16155b801561164b5750601354640100000000900460ff165b1561169857600f548411156116985760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b604482015260640161086f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600890915291909120546116e9918690611852565b6001600160a01b0387165f9081526008602052604081209190915561170e8787611a8a565b6117225761171d878787611b24565b611724565b845b60135490915065010000000000900460ff16801561175a57506001600160a01b0386165f908152600c602052604090205460ff16155b156117c95760105461178a82611784896001600160a01b03165f9081526008602052604090205490565b9061188a565b11156117c95760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b604482015260640161086f565b6001600160a01b0386165f908152600860205260409020546117eb908261188a565b6001600160a01b038088165f8181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061183e9085815260200190565b60405180910390a360019350505050610cd9565b5f81848411156118755760405162461bcd60e51b815260040161086f9190611f31565b505f611881848661220b565b95945050505050565b5f80611896838561221e565b905083811015610cd95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161086f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600890915291822054611987918490611852565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546119b5908361188a565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a089086815260200190565b60405180910390a35060019392505050565b601254611a289060b461221e565b421115610e13575f60048190556005556013805460ff19166001179055565b6014805460ff60a01b1916600160a01b1790556013546301000000900460ff1615611a7157506011545b611a7a81611c2e565b506014805460ff60a01b19169055565b6001600160a01b0382165f908152600a602052604081205460ff1680611ac757506001600160a01b0382165f908152600a602052604090205460ff165b15611ad457506001610c33565b6001600160a01b0383165f908152600b602052604090205460ff1680611b1157506001600160a01b0382165f908152600b602052604090205460ff165b15611b1d57505f610c33565b505f610c33565b6001600160a01b0383165f908152600b6020526040812054819060ff1615611b6e57611b67600654611b6160045486611de390919063ffffffff16565b90611e61565b9050611bac565b6001600160a01b0384165f908152600b602052604090205460ff1615611bac57611ba9600654611b6160055486611de390919063ffffffff16565b90505b8015611c2457305f90815260086020526040902054611bcb908261188a565b305f81815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c1b9085815260200190565b60405180910390a35b6118818382611ea2565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c6157611c61612231565b60200260200101906001600160a01b031690816001600160a01b031681525050601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf69190612161565b81600181518110611d0957611d09612231565b6001600160a01b039283166020918202929092010152601354611d36913091600160301b90041684611311565b60135460075460405163791ac94760e01b81526001600160a01b03600160301b90930483169263791ac94792611d799287925f9288929116904290600401612288565b5f604051808303815f87803b158015611d90575f80fd5b505af1158015611da2573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611dd79291906122c3565b60405180910390a15050565b5f825f03611df257505f610c33565b5f611dfd83856122e3565b905082611e0a85836122fa565b14610cd95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161086f565b5f610cd983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee3565b5f610cd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611852565b5f8183611f035760405162461bcd60e51b815260040161086f9190611f31565b505f61188184866122fa565b5f5b83811015611f29578181015183820152602001611f11565b50505f910152565b602081525f8251806020840152611f4f816040850160208701611f0f565b601f01601f19169190910160400192915050565b6001600160a01b03811681146111fa575f80fd5b5f8060408385031215611f88575f80fd5b8235611f9381611f63565b946020939093013593505050565b5f805f60608486031215611fb3575f80fd5b8335611fbe81611f63565b92506020840135611fce81611f63565b929592945050506040919091013590565b5f60208284031215611fef575f80fd5b8135610cd981611f63565b80358015158114612009575f80fd5b919050565b5f6020828403121561201e575f80fd5b610cd982611ffa565b5f60208284031215612037575f80fd5b5035919050565b5f806040838503121561204f575f80fd5b823561205a81611f63565b915061206860208401611ffa565b90509250929050565b5f805f60608486031215612083575f80fd5b8335925061209360208501611ffa565b91506120a160408501611ffa565b90509250925092565b5f80604083850312156120bb575f80fd5b82356120c681611f63565b915060208301356120d681611f63565b809150509250929050565b5f80604083850312156120f2575f80fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215612148575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612171575f80fd5b8151610cd981611f63565b600181811c9082168061219057607f821691505b6020821081036121ae57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d24b73b30b634b21021b0b63632b960911b604082015260600190565b5f82516121ed818460208701611f0f565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610c3357610c336121f7565b80820180821115610c3357610c336121f7565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561227d5781516001600160a01b031687529582019590820190600101612258565b509495945050505050565b85815284602082015260a060408201525f6122a660a0830186612245565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6122db6040830184612245565b949350505050565b8082028115828204841417610c3357610c336121f7565b5f8261231457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202703f99f194758091f3340d8db39dcaa1173c56120910715a6c1341678ee720164736f6c63430008160033

Deployed Bytecode

0x608060405260043610610278575f3560e01c80637d1db4a51161014a578063c867d60b116100be578063e9fd339411610078578063e9fd339414610788578063ee828db3146107a8578063f242ab41146107c7578063f2fde38b146107e6578063f872858a14610805578063fb0ecfa414610827575f80fd5b8063c867d60b146106af578063cea9d26f146106dd578063cf9522fd146106fc578063dd62ed3e14610711578063df8408fe14610755578063e6b2603b14610774575f80fd5b8063a457c2d71161010f578063a457c2d7146105ff578063a9059cbb1461061e578063ae85ade61461063d578063b94b0aef1461065c578063bf56b3711461067b578063c04a541414610690575f80fd5b80637d1db4a514610577578063807c2d9c1461058c5780638b42507f146105a15780638da5cb5b146105cf57806395d89b41146105eb575f80fd5b806347062402116101ec5780636ddd1713116101a65780636ddd1713146104be57806370a08231146104dd578063715018a614610511578063728d41c91461052557806372ac248614610544578063751039fc14610563575f80fd5b806347062402146103fd5780634974d88f146104125780635342acb4146104315780635c85974f1461045f5780635e42358c1461047e578063651a89871461049f575f80fd5b8063111a46511161023d578063111a46511461034357806318160ddd1461035c57806323b872dd14610370578063313ce5671461038f57806339509351146103b05780633ecad271146103cf575f80fd5b806301339c21146102835780630445b6671461028d57806306fdde03146102b55780630758d924146102d6578063095ea7b314610314575f80fd5b3661027f57005b5f80fd5b61028b610846565b005b348015610298575f80fd5b506102a260115481565b6040519081526020015b60405180910390f35b3480156102c0575f80fd5b506102c9610b93565b6040516102ac9190611f31565b3480156102e1575f80fd5b506013546102fc90600160301b90046001600160a01b031681565b6040516001600160a01b0390911681526020016102ac565b34801561031f575f80fd5b5061033361032e366004611f77565b610c23565b60405190151581526020016102ac565b34801561034e575f80fd5b506013546103339060ff1681565b348015610367575f80fd5b50600e546102a2565b34801561037b575f80fd5b5061033361038a366004611fa1565b610c39565b34801561039a575f80fd5b5060035460405160ff90911681526020016102ac565b3480156103bb575f80fd5b506103336103ca366004611f77565b610ce0565b3480156103da575f80fd5b506103336103e9366004611fdf565b600b6020525f908152604090205460ff1681565b348015610408575f80fd5b506102a260045481565b34801561041d575f80fd5b5061028b61042c36600461200e565b610d15565b34801561043c575f80fd5b5061033361044b366004611fdf565b600a6020525f908152604090205460ff1681565b34801561046a575f80fd5b5061028b610479366004612027565b610d60565b348015610489575f80fd5b5060135461033390640100000000900460ff1681565b3480156104aa575f80fd5b5061028b6104b936600461203e565b610d8e565b3480156104c9575f80fd5b506013546103339062010000900460ff1681565b3480156104e8575f80fd5b506102a26104f7366004611fdf565b6001600160a01b03165f9081526008602052604090205490565b34801561051c575f80fd5b5061028b610de1565b348015610530575f80fd5b5061028b61053f366004612027565b610e15565b34801561054f575f80fd5b5061028b61055e366004611fdf565b610e43565b34801561056e575f80fd5b5061028b610e8e565b348015610582575f80fd5b506102a2600f5481565b348015610597575f80fd5b506102a260105481565b3480156105ac575f80fd5b506103336105bb366004611fdf565b600d6020525f908152604090205460ff1681565b3480156105da575f80fd5b505f546001600160a01b03166102fc565b3480156105f6575f80fd5b506102c9610ec9565b34801561060a575f80fd5b50610333610619366004611f77565b610ed8565b348015610629575f80fd5b50610333610638366004611f77565b610f25565b348015610648575f80fd5b5061028b61065736600461203e565b610f31565b348015610667575f80fd5b5061028b610676366004612071565b610f84565b348015610686575f80fd5b506102a260125481565b34801561069b575f80fd5b506007546102fc906001600160a01b031681565b3480156106ba575f80fd5b506103336106c9366004611fdf565b600c6020525f908152604090205460ff1681565b3480156106e8575f80fd5b5061028b6106f7366004611fa1565b610fe3565b348015610707575f80fd5b506102a260055481565b34801561071c575f80fd5b506102a261072b3660046120aa565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610760575f80fd5b5061028b61076f36600461203e565b6110f1565b34801561077f575f80fd5b5061028b611144565b348015610793575f80fd5b50601354610333906301000000900460ff1681565b3480156107b3575f80fd5b5061028b6107c236600461200e565b6111fd565b3480156107d2575f80fd5b506014546102fc906001600160a01b031681565b3480156107f1575f80fd5b5061028b610800366004611fdf565b611246565b348015610810575f80fd5b506013546103339065010000000000900460ff1681565b348015610832575f80fd5b5061028b6108413660046120e1565b6112dd565b5f546001600160a01b031633146108785760405162461bcd60e51b815260040161086f90612101565b60405180910390fd5b601254156108bc5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b604482015260640161086f565b426012556013805461ff0019166101001790819055305f8181526008602052604081205492600160301b90046001600160a01b03169163f305d7199134919085908061090f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610975573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061099a9190612136565b5050505f601360069054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ef573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a139190612161565b90505f816001600160a01b031663e6a4390530601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9b9190612161565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b089190612161565b601480546001600160a01b0319166001600160a01b0392831690811782555f908152600b60209081526040808320805460ff199081166001908117909255855487168552600c845282852080549091169091179055308352600982528083209354909416825291909152205f19905550506013805465ffff00ff000019166501010001000017905550565b606060018054610ba29061217c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bce9061217c565b8015610c195780601f10610bf057610100808354040283529160200191610c19565b820191905f5260205f20905b815481529060010190602001808311610bfc57829003601f168201915b5050505050905090565b5f610c2f338484611311565b5060015b92915050565b5f610c45848484611434565b50610cd58433610cd0856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f610cb03390565b6001600160a01b0316815260208101919091526040015f20549190611852565b611311565b5060015b9392505050565b335f8181526009602090815260408083206001600160a01b03871684529091528120549091610c2f918590610cd0908661188a565b5f546001600160a01b03163314610d3e5760405162461bcd60e51b815260040161086f90612101565b60138054911515650100000000000265ff000000000019909216919091179055565b5f546001600160a01b03163314610d895760405162461bcd60e51b815260040161086f90612101565b600f55565b5f546001600160a01b03163314610db75760405162461bcd60e51b815260040161086f90612101565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610e0a5760405162461bcd60e51b815260040161086f90612101565b610e135f6118e8565b565b5f546001600160a01b03163314610e3e5760405162461bcd60e51b815260040161086f90612101565b601055565b5f546001600160a01b03163314610e6c5760405162461bcd60e51b815260040161086f90612101565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314610eb85760405162461bcd60e51b815260040161086f906121b4565b6013805465ffff0000000019169055565b606060028054610ba29061217c565b5f610c2f3384610cd08560405180606001604052806025815260200161231a60259139335f9081526009602090815260408083206001600160a01b038d1684529091529020549190611852565b5f610cd5338484611434565b5f546001600160a01b03163314610f5a5760405162461bcd60e51b815260040161086f90612101565b6001600160a01b03919091165f908152600d60205260409020805460ff1916911515919091179055565b6007546001600160a01b03163314610fae5760405162461bcd60e51b815260040161086f906121b4565b6013805463ffff00001916620100009315159390930263ff000000191692909217630100000091151591909102179055601155565b6007546001600160a01b0316331461100d5760405162461bcd60e51b815260040161086f906121b4565b6040516001600160a01b038381166024830152604482018390525f919085169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161106591906121dc565b5f604051808303815f865af19150503d805f811461109e576040519150601f19603f3d011682016040523d82523d5f602084013e6110a3565b606091505b50509050806110eb5760405162461bcd60e51b8152602060048201526014602482015273151bdad95b881c185e5b595b9d0819985a5b195960621b604482015260640161086f565b50505050565b5f546001600160a01b0316331461111a5760405162461bcd60e51b815260040161086f90612101565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6007546001600160a01b0316331461116e5760405162461bcd60e51b815260040161086f906121b4565b6040515f90339047908381818185875af1925050503d805f81146111ad576040519150601f19603f3d011682016040523d82523d5f602084013e6111b2565b606091505b50509050806111fa5760405162461bcd60e51b81526020600482015260146024820152735472616e73616374696f6e204661696c6564212160601b604482015260640161086f565b50565b5f546001600160a01b031633146112265760405162461bcd60e51b815260040161086f90612101565b601380549115156401000000000264ff0000000019909216919091179055565b5f546001600160a01b0316331461126f5760405162461bcd60e51b815260040161086f90612101565b6001600160a01b0381166112d45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161086f565b6111fa816118e8565b5f546001600160a01b031633146113065760405162461bcd60e51b815260040161086f90612101565b600491909155600555565b6001600160a01b0383166113735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161086f565b6001600160a01b0382166113d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161086f565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416611447575f80fd5b6001600160a01b038316611459575f80fd5b5f8211611464575f80fd5b601454600160a01b900460ff161561148857611481848484611937565b9050610cd9565b601354610100900460ff16611519576001600160a01b0384165f908152600a602052604090205460ff16806114d457506001600160a01b0383165f908152600a602052604090205460ff165b6115195760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161086f565b6012541580159061152d575060135460ff16155b1561153a5761153a611a1a565b305f90815260086020526040902054601154811080159081906115675750601454600160a01b900460ff16155b801561158b57506001600160a01b0386165f908152600b602052604090205460ff16155b801561159f575060135462010000900460ff165b80156115c357506001600160a01b0386165f908152600a602052604090205460ff16155b80156115e757506001600160a01b0385165f908152600a602052604090205460ff16155b156115f5576115f582611a47565b6001600160a01b0386165f908152600d602052604090205460ff1615801561163557506001600160a01b0385165f908152600d602052604090205460ff16155b801561164b5750601354640100000000900460ff165b1561169857600f548411156116985760405162461bcd60e51b8152602060048201526013602482015272115e18d959591cc81b585e151e105b5bdd5b9d606a1b604482015260640161086f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f908152600890915291909120546116e9918690611852565b6001600160a01b0387165f9081526008602052604081209190915561170e8787611a8a565b6117225761171d878787611b24565b611724565b845b60135490915065010000000000900460ff16801561175a57506001600160a01b0386165f908152600c602052604090205460ff16155b156117c95760105461178a82611784896001600160a01b03165f9081526008602052604090205490565b9061188a565b11156117c95760405162461bcd60e51b815260206004820152600e60248201526d115e18d959591cc815d85b1b195d60921b604482015260640161086f565b6001600160a01b0386165f908152600860205260409020546117eb908261188a565b6001600160a01b038088165f8181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061183e9085815260200190565b60405180910390a360019350505050610cd9565b5f81848411156118755760405162461bcd60e51b815260040161086f9190611f31565b505f611881848661220b565b95945050505050565b5f80611896838561221e565b905083811015610cd95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161086f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600890915291822054611987918490611852565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546119b5908361188a565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a089086815260200190565b60405180910390a35060019392505050565b601254611a289060b461221e565b421115610e13575f60048190556005556013805460ff19166001179055565b6014805460ff60a01b1916600160a01b1790556013546301000000900460ff1615611a7157506011545b611a7a81611c2e565b506014805460ff60a01b19169055565b6001600160a01b0382165f908152600a602052604081205460ff1680611ac757506001600160a01b0382165f908152600a602052604090205460ff165b15611ad457506001610c33565b6001600160a01b0383165f908152600b602052604090205460ff1680611b1157506001600160a01b0382165f908152600b602052604090205460ff165b15611b1d57505f610c33565b505f610c33565b6001600160a01b0383165f908152600b6020526040812054819060ff1615611b6e57611b67600654611b6160045486611de390919063ffffffff16565b90611e61565b9050611bac565b6001600160a01b0384165f908152600b602052604090205460ff1615611bac57611ba9600654611b6160055486611de390919063ffffffff16565b90505b8015611c2457305f90815260086020526040902054611bcb908261188a565b305f81815260086020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c1b9085815260200190565b60405180910390a35b6118818382611ea2565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611c6157611c61612231565b60200260200101906001600160a01b031690816001600160a01b031681525050601360069054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf69190612161565b81600181518110611d0957611d09612231565b6001600160a01b039283166020918202929092010152601354611d36913091600160301b90041684611311565b60135460075460405163791ac94760e01b81526001600160a01b03600160301b90930483169263791ac94792611d799287925f9288929116904290600401612288565b5f604051808303815f87803b158015611d90575f80fd5b505af1158015611da2573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611dd79291906122c3565b60405180910390a15050565b5f825f03611df257505f610c33565b5f611dfd83856122e3565b905082611e0a85836122fa565b14610cd95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161086f565b5f610cd983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ee3565b5f610cd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611852565b5f8183611f035760405162461bcd60e51b815260040161086f9190611f31565b505f61188184866122fa565b5f5b83811015611f29578181015183820152602001611f11565b50505f910152565b602081525f8251806020840152611f4f816040850160208701611f0f565b601f01601f19169190910160400192915050565b6001600160a01b03811681146111fa575f80fd5b5f8060408385031215611f88575f80fd5b8235611f9381611f63565b946020939093013593505050565b5f805f60608486031215611fb3575f80fd5b8335611fbe81611f63565b92506020840135611fce81611f63565b929592945050506040919091013590565b5f60208284031215611fef575f80fd5b8135610cd981611f63565b80358015158114612009575f80fd5b919050565b5f6020828403121561201e575f80fd5b610cd982611ffa565b5f60208284031215612037575f80fd5b5035919050565b5f806040838503121561204f575f80fd5b823561205a81611f63565b915061206860208401611ffa565b90509250929050565b5f805f60608486031215612083575f80fd5b8335925061209360208501611ffa565b91506120a160408501611ffa565b90509250925092565b5f80604083850312156120bb575f80fd5b82356120c681611f63565b915060208301356120d681611f63565b809150509250929050565b5f80604083850312156120f2575f80fd5b50508035926020909101359150565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215612148575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612171575f80fd5b8151610cd981611f63565b600181811c9082168061219057607f821691505b6020821081036121ae57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600e908201526d24b73b30b634b21021b0b63632b960911b604082015260600190565b5f82516121ed818460208701611f0f565b9190910192915050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610c3357610c336121f7565b80820180821115610c3357610c336121f7565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561227d5781516001600160a01b031687529582019590820190600101612258565b509495945050505050565b85815284602082015260a060408201525f6122a660a0830186612245565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6122db6040830184612245565b949350505050565b8082028115828204841417610c3357610c336121f7565b5f8261231457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202703f99f194758091f3340d8db39dcaa1173c56120910715a6c1341678ee720164736f6c63430008160033

Deployed Bytecode Sourcemap

8000:12247:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16322:915;;;:::i;:::-;;9011:59;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9011:59:0;;;;;;;;10771:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9335:31::-;;;;;;;;;;-1:-1:-1;9335:31:0;;;;-1:-1:-1;;;9335:31:0;;-1:-1:-1;;;;;9335:31:0;;;;;;-1:-1:-1;;;;;1038:32:1;;;1020:51;;1008:2;993:18;9335:31:0;852:225:1;11941:161:0;;;;;;;;;;-1:-1:-1;11941:161:0;;;;;:::i;:::-;;:::i;:::-;;;1703:14:1;;1696:22;1678:41;;1666:2;1651:18;11941:161:0;1538:187:1;9112:26:0;;;;;;;;;;-1:-1:-1;9112:26:0;;;;;;;;11048:100;;;;;;;;;;-1:-1:-1;11128:12:0;;11048:100;;12715:297;;;;;;;;;;-1:-1:-1;12715:297:0;;;;;:::i;:::-;;:::i;10957:83::-;;;;;;;;;;-1:-1:-1;11023:9:0;;10957:83;;11023:9;;;;2333:36:1;;2321:2;2306:18;10957:83:0;2191:184:1;11438:218:0;;;;;;;;;;-1:-1:-1;11438:218:0;;;;;:::i;:::-;;:::i;8623:45::-;;;;;;;;;;-1:-1:-1;8623:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8292:26;;;;;;;;;;;;;;;;19153:105;;;;;;;;;;-1:-1:-1;19153:105:0;;;;;:::i;:::-;;:::i;8566:50::-;;;;;;;;;;-1:-1:-1;8566:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19774:101;;;;;;;;;;-1:-1:-1;19774:101:0;;;;;:::i;:::-;;:::i;9250:33::-;;;;;;;;;;-1:-1:-1;9250:33:0;;;;;;;;;;;19396:128;;;;;;;;;;-1:-1:-1;19396:128:0;;;;;:::i;:::-;;:::i;9174:31::-;;;;;;;;;;-1:-1:-1;9174:31:0;;;;;;;;;;;11156:123;;;;;;;;;;-1:-1:-1;11156:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11248:18:0;11222:7;11248:18;;;:9;:18;;;;;;;11156:123;2668:94;;;;;;;;;;;;;:::i;19660:106::-;;;;;;;;;;-1:-1:-1;19660:106:0;;;;;:::i;:::-;;:::i;19887:118::-;;;;;;;;;;-1:-1:-1;19887:118:0;;;;;:::i;:::-;;:::i;18920:119::-;;;;;;;;;;;;;:::i;8857:59::-;;;;;;;;;;;;;;;;8933:56;;;;;;;;;;;;;;;;8734:48;;;;;;;;;;-1:-1:-1;8734:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2359:87;;;;;;;;;;-1:-1:-1;2405:7:0;2432:6;-1:-1:-1;;;;;2432:6:0;2359:87;;10862;;;;;;;;;;;;;:::i;11664:269::-;;;;;;;;;;-1:-1:-1;11664:269:0;;;;;:::i;:::-;;:::i;12540:167::-;;;;;;;;;;-1:-1:-1;12540:167:0;;;;;:::i;:::-;;:::i;19532:120::-;;;;;;;;;;-1:-1:-1;19532:120:0;;;;;:::i;:::-;;:::i;20013:229::-;;;;;;;;;;-1:-1:-1;20013:229:0;;;;;:::i;:::-;;:::i;9080:25::-;;;;;;;;;;;;;;;;8402:32;;;;;;;;;;-1:-1:-1;8402:32:0;;;;-1:-1:-1;;;;;8402:32:0;;;8675:52;;;;;;;;;;-1:-1:-1;8675:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18493:272;;;;;;;;;;-1:-1:-1;18493:272:0;;;;;:::i;:::-;;:::i;8325:27::-;;;;;;;;;;;;;;;;11287:143;;;;;;;;;;-1:-1:-1;11287:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11395:18:0;;;11368:7;11395:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11287:143;19266:122;;;;;;;;;;-1:-1:-1;19266:122:0;;;;;:::i;:::-;;:::i;18307:178::-;;;;;;;;;;;;;:::i;9212:31::-;;;;;;;;;;-1:-1:-1;9212:31:0;;;;;;;;;;;19047:98;;;;;;;;;;-1:-1:-1;19047:98:0;;;;;:::i;:::-;;:::i;9373:22::-;;;;;;;;;;-1:-1:-1;9373:22:0;;;;-1:-1:-1;;;;;9373:22:0;;;2770:229;;;;;;;;;;-1:-1:-1;2770:229:0;;;;;:::i;:::-;;:::i;9290:36::-;;;;;;;;;;-1:-1:-1;9290:36:0;;;;;;;;;;;18773:139;;;;;;;;;;-1:-1:-1;18773:139:0;;;;;:::i;:::-;;:::i;16322:915::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;;;;;;;;;16384:10:::1;::::0;:15;16376:45:::1;;;::::0;-1:-1:-1;;;16376:45:0;;5225:2:1;16376:45:0::1;::::0;::::1;5207:21:1::0;5264:2;5244:18;;;5237:30;-1:-1:-1;;;5283:18:1;;;5276:47;5340:18;;16376:45:0::1;5023:341:1::0;16376:45:0::1;16445:15;16432:10;:28:::0;16471:13:::1;:20:::0;;-1:-1:-1;;16471:20:0::1;;;::::0;;;;16540:4:::1;16471:20:::0;16522:24;;;:9:::1;:24;::::0;;;;;;-1:-1:-1;;;16559:9:0;::::1;-1:-1:-1::0;;;;;16559:9:0::1;::::0;:25:::1;::::0;16593:9:::1;::::0;16540:4;16522:24;;16471:20;16704:7:::1;2405::::0;2432:6;-1:-1:-1;;;;;2432:6:0;;2359:87;16704:7:::1;16559:193;::::0;::::1;::::0;;;-1:-1:-1;;;;;;16559:193:0;;;-1:-1:-1;;;;;5728:15:1;;;16559:193:0::1;::::0;::::1;5710:34:1::0;5760:18;;;5753:34;;;;5803:18;;;5796:34;;;;5846:18;;;5839:34;5910:15;;;5889:19;;;5882:44;16726:15:0::1;5942:19:1::0;;;5935:35;5644:19;;16559:193:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16765:23;16807:9;;;;;;;;;-1:-1:-1::0;;;;;16807:9:0::1;-1:-1:-1::0;;;;;16807:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16765:62;;16840:17;16873:7;-1:-1:-1::0;;;;;16873:15:0::1;;16897:4;16904:9;;;;;;;;;-1:-1:-1::0;;;;;16904:9:0::1;-1:-1:-1::0;;;;;16904:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16873:48;::::0;-1:-1:-1;;;;;;16873:48:0::1;::::0;;;;;;-1:-1:-1;;;;;6778:15:1;;;16873:48:0::1;::::0;::::1;6760:34:1::0;6830:15;;6810:18;;;6803:43;6695:18;;16873:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16935:7;:23:::0;;-1:-1:-1;;;;;;16935:23:0::1;-1:-1:-1::0;;;;;16935:23:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;16971:30:0;;;:12:::1;:30;::::0;;;;;;;:37;;-1:-1:-1;;16971:37:0;;::::1;-1:-1:-1::0;16971:37:0;;::::1;::::0;;;17047:7;;;::::1;17019:37:::0;;:19:::1;:37:::0;;;;;:44;;;;::::1;::::0;;::::1;::::0;;17094:4:::1;17074:26:::0;;:11:::1;:26:::0;;;;;17109:7;;;;::::1;17074:44:::0;;;;;;;-1:-1:-1;;17074:58:0;;-1:-1:-1;;17145:11:0::1;:18:::0;;-1:-1:-1;;17205:24:0;;;;;-1:-1:-1;16322:915:0:o;10771:83::-;10808:13;10841:5;10834:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10771:83;:::o;11941:161::-;12016:4;12033:39;1006:10;12056:7;12065:6;12033:8;:39::i;:::-;-1:-1:-1;12090:4:0;11941:161;;;;;:::o;12715:297::-;12813:4;12830:36;12840:6;12848:9;12859:6;12830:9;:36::i;:::-;-1:-1:-1;12877:105:0;12886:6;1006:10;12908:73;12946:6;12908:73;;;;;;;;;;;;;;;;;:11;:19;12920:6;-1:-1:-1;;;;;12908:19:0;-1:-1:-1;;;;;12908:19:0;;;;;;;;;;;;:33;12928:12;1006:10;;926:98;12928:12;-1:-1:-1;;;;;12908:33:0;;;;;;;;;;;;-1:-1:-1;12908:33:0;;;:73;:37;:73::i;:::-;12877:8;:105::i;:::-;-1:-1:-1;13000:4:0;12715:297;;;;;;:::o;11438:218::-;1006:10;11526:4;11575:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11575:34:0;;;;;;;;;;11526:4;;11543:83;;11566:7;;11575:50;;11614:10;11575:38;:50::i;19153:105::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;19224:16:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19224:26:0;;::::1;::::0;;;::::1;::::0;;19153:105::o;19774:101::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;19844:12:::1;:23:::0;19774:101::o;19396:128::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19481:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:35;;-1:-1:-1;;19481:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19396:128::o;2668:94::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;2733:21:::1;2751:1;2733:9;:21::i;:::-;2668:94::o:0;19660:106::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;19737:10:::1;:21:::0;19660:106::o;19887:118::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;19967:17:::1;:30:::0;;-1:-1:-1;;;;;;19967:30:0::1;-1:-1:-1::0;;;;;19967:30:0;;;::::1;::::0;;;::::1;::::0;;19887:118::o;18920:119::-;9478:17;;-1:-1:-1;;;;;9478:17:0;9464:10;:31;9456:57;;;;-1:-1:-1;;;9456:57:0;;;;;;;:::i;:::-;18974:13:::1;:21:::0;;-1:-1:-1;;19006:25:0;;;18920:119::o;10862:87::-;10901:13;10934:7;10927:14;;;;;:::i;11664:269::-;11757:4;11774:129;1006:10;11797:7;11806:96;11845:15;11806:96;;;;;;;;;;;;;;;;;1006:10;11806:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11806:34:0;;;;;;;;;;;;:38;:96::i;12540:167::-;12618:4;12635:42;1006:10;12659:9;12670:6;12635:9;:42::i;19532:120::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19613:21:0;;;::::1;;::::0;;;:15:::1;:21;::::0;;;;:31;;-1:-1:-1;;19613:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19532:120::o;20013:229::-;9478:17;;-1:-1:-1;;;;;9478:17:0;9464:10;:31;9456:57;;;;-1:-1:-1;;;9456:57:0;;;;;;;:::i;:::-;20142:11:::1;:22:::0;;-1:-1:-1;;20175:22:0;20142;;::::1;;::::0;;;::::1;-1:-1:-1::0;;20175:22:0;;;;;;;::::1;;::::0;;;::::1;;::::0;;20208:13:::1;:26:::0;20013:229::o;18493:272::-;9478:17;;-1:-1:-1;;;;;9478:17:0;9464:10;:31;9456:57;;;;-1:-1:-1;;;9456:57:0;;;;;;;:::i;:::-;18632:73:::1;::::0;-1:-1:-1;;;;;7777:32:1;;;18632:73:0::1;::::0;::::1;7759:51:1::0;7826:18;;;7819:34;;;18593:12:0::1;::::0;18611:20;;::::1;::::0;7732:18:1;;18632:73:0::1;::::0;;-1:-1:-1;;18632:73:0;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;18632:73:0::1;-1:-1:-1::0;;;18632:73:0::1;::::0;;18611:95;::::1;::::0;18632:73;18611:95:::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18592:114;;;18725:7;18717:40;;;::::0;-1:-1:-1;;;18717:40:0;;8358:2:1;18717:40:0::1;::::0;::::1;8340:21:1::0;8397:2;8377:18;;;8370:30;-1:-1:-1;;;8416:18:1;;;8409:50;8476:18;;18717:40:0::1;8156:344:1::0;18717:40:0::1;18581:184;18493:272:::0;;;:::o;19266:122::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19347:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:33;;-1:-1:-1;;19347:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19266:122::o;18307:178::-;9478:17;;-1:-1:-1;;;;;9478:17:0;9464:10;:31;9456:57;;;;-1:-1:-1;;;9456:57:0;;;;;;;:::i;:::-;18374:58:::1;::::0;18362:7:::1;::::0;18382:10:::1;::::0;18406:21:::1;::::0;18362:7;18374:58;18362:7;18374:58;18406:21;18382:10;18374:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18361:71;;;18451:2;18443:34;;;::::0;-1:-1:-1;;;18443:34:0;;8917:2:1;18443:34:0::1;::::0;::::1;8899:21:1::0;8956:2;8936:18;;;8929:30;-1:-1:-1;;;8975:18:1;;;8968:50;9035:18;;18443:34:0::1;8715:344:1::0;18443:34:0::1;18349:136;18307:178::o:0;19047:98::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;19114:13:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;19114:23:0;;::::1;::::0;;;::::1;::::0;;19047:98::o;2770:229::-;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2873:22:0;::::1;2851:110;;;::::0;-1:-1:-1;;;2851:110:0;;9266:2:1;2851:110:0::1;::::0;::::1;9248:21:1::0;9305:2;9285:18;;;9278:30;9344:34;9324:18;;;9317:62;-1:-1:-1;;;9395:18:1;;;9388:36;9441:19;;2851:110:0::1;9064:402:1::0;2851:110:0::1;2972:19;2982:8;2972:9;:19::i;18773:139::-:0;2405:7;2432:6;-1:-1:-1;;;;;2432:6:0;1006:10;2580:23;2572:68;;;;-1:-1:-1;;;2572:68:0;;;;;;;:::i;:::-;18857:6:::1;:17:::0;;;;18885:7:::1;:19:::0;18773:139::o;12110:337::-;-1:-1:-1;;;;;12203:19:0;;12195:68;;;;-1:-1:-1;;;12195:68:0;;9673:2:1;12195:68:0;;;9655:21:1;9712:2;9692:18;;;9685:30;9751:34;9731:18;;;9724:62;-1:-1:-1;;;9802:18:1;;;9795:34;9846:19;;12195:68:0;9471:400:1;12195:68:0;-1:-1:-1;;;;;12282:21:0;;12274:68;;;;-1:-1:-1;;;12274:68:0;;10078:2:1;12274:68:0;;;10060:21:1;10117:2;10097:18;;;10090:30;10156:34;10136:18;;;10129:62;-1:-1:-1;;;10207:18:1;;;10200:32;10249:19;;12274:68:0;9876:398:1;12274:68:0;-1:-1:-1;;;;;12355:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12407:32;;160:25:1;;;12407:32:0;;133:18:1;12407:32:0;;;;;;;12110:337;;;:::o;13020:1877::-;13107:4;-1:-1:-1;;;;;13134:20:0;;13126:29;;;;;;-1:-1:-1;;;;;13174:23:0;;13166:32;;;;;;13226:1;13217:6;:10;13209:19;;;;;;13249:6;;-1:-1:-1;;;13249:6:0;;;;13245:1643;;;13279:41;13294:6;13302:9;13313:6;13279:14;:41::i;:::-;13272:48;;;;13245:1643;13369:13;;;;;;;13364:146;;-1:-1:-1;;;;;13411:25:0;;;;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;13440:28:0;;;;;;:17;:28;;;;;;;;13411:57;13403:91;;;;-1:-1:-1;;;13403:91:0;;10481:2:1;13403:91:0;;;10463:21:1;10520:2;10500:18;;;10493:30;-1:-1:-1;;;10539:18:1;;;10532:52;10601:18;;13403:91:0;10279:346:1;13403:91:0;13530:10;;:15;;;;:34;;-1:-1:-1;13550:14:0;;;;13549:15;13530:34;13526:93;;;13585:18;:16;:18::i;:::-;13684:4;13635:28;11248:18;;;:9;:18;;;;;;13760:13;;13736:37;;;;;;;13812:52;;-1:-1:-1;13858:6:0;;-1:-1:-1;;;13858:6:0;;;;13857:7;13812:52;:95;;;;-1:-1:-1;;;;;;13887:20:0;;;;;;:12;:20;;;;;;;;13886:21;13812:95;:128;;;;-1:-1:-1;13929:11:0;;;;;;;13812:128;:175;;;;-1:-1:-1;;;;;;13962:25:0;;;;;;:17;:25;;;;;;;;13961:26;13812:175;:225;;;;-1:-1:-1;;;;;;14009:28:0;;;;;;:17;:28;;;;;;;;14008:29;13812:225;13790:332;;;14076:30;14085:20;14076:8;:30::i;:::-;-1:-1:-1;;;;;14142:23:0;;;;;;:15;:23;;;;;;;;14141:24;:55;;;;-1:-1:-1;;;;;;14170:26:0;;;;;;:15;:26;;;;;;;;14169:27;14141:55;:72;;;;-1:-1:-1;14200:13:0;;;;;;;14141:72;14138:166;;;14252:12;;14242:6;:22;;14234:54;;;;-1:-1:-1;;;14234:54:0;;10832:2:1;14234:54:0;;;10814:21:1;10871:2;10851:18;;;10844:30;-1:-1:-1;;;10890:18:1;;;10883:49;10949:18;;14234:54:0;10630:343:1;14234:54:0;14353:53;;;;;;;;;;;-1:-1:-1;;;14353:53:0;;;;;;;;-1:-1:-1;;;;;14353:17:0;;-1:-1:-1;14353:17:0;;;:9;:17;;;;;;;;:53;;14375:6;;14353:21;:53::i;:::-;-1:-1:-1;;;;;14333:17:0;;;;;;:9;:17;;;;;:73;;;;14445:34;14343:6;14469:9;14445:16;:34::i;:::-;:80;;14491:34;14499:6;14507:9;14518:6;14491:7;:34::i;:::-;14445:80;;;14482:6;14445:80;14545:16;;14423:102;;-1:-1:-1;14545:16:0;;;;;:51;;;;-1:-1:-1;;;;;;14566:30:0;;;;;;:19;:30;;;;;;;;14565:31;14545:51;14542:168;;;14666:10;;14625:37;14650:11;14625:20;14635:9;-1:-1:-1;;;;;11248:18:0;11222:7;11248:18;;;:9;:18;;;;;;;11156:123;14625:20;:24;;:37::i;:::-;:51;;14617:77;;;;-1:-1:-1;;;14617:77:0;;11180:2:1;14617:77:0;;;11162:21:1;11219:2;11199:18;;;11192:30;-1:-1:-1;;;11238:18:1;;;11231:44;11292:18;;14617:77:0;10978:338:1;14617:77:0;-1:-1:-1;;;;;14749:20:0;;;;;;:9;:20;;;;;;:37;;14774:11;14749:24;:37::i;:::-;-1:-1:-1;;;;;14726:20:0;;;;;;;:9;:20;;;;;;;:60;;;;14808:40;;;;;;;;;;14836:11;160:25:1;;148:2;133:18;;14:177;14808:40:0;;;;;;;;14870:4;14863:11;;;;;;;3546:192;3632:7;3668:12;3660:6;;;;3652:29;;;;-1:-1:-1;;;3652:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3692:9:0;3704:5;3708:1;3704;:5;:::i;:::-;3692:17;3546:192;-1:-1:-1;;;;;3546:192:0:o;3213:181::-;3271:7;;3303:5;3307:1;3303;:5;:::i;:::-;3291:17;;3332:1;3327;:6;;3319:46;;;;-1:-1:-1;;;3319:46:0;;11918:2:1;3319:46:0;;;11900:21:1;11957:2;11937:18;;;11930:30;11996:29;11976:18;;;11969:57;12043:18;;3319:46:0;11716:351:1;3007:173:0;3063:16;3082:6;;-1:-1:-1;;;;;3099:17:0;;;-1:-1:-1;;;;;;3099:17:0;;;;;;3132:40;;3082:6;;;;;;;3132:40;;3063:16;3132:40;3052:128;3007:173;:::o;14905:330::-;15035:53;;;;;;;;;;;-1:-1:-1;;;15035:53:0;;;;;;;;-1:-1:-1;;;;;15035:17:0;;14998:4;15035:17;;;:9;:17;;;;;;;:53;;15057:6;;15035:21;:53::i;:::-;-1:-1:-1;;;;;15015:17:0;;;;;;;:9;:17;;;;;;:73;;;;15122:20;;;;;;;:32;;15147:6;15122:24;:32::i;:::-;-1:-1:-1;;;;;15099:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15170:35;;;;;;;;;;15198:6;160:25:1;;148:2;133:18;;14:177;15170:35:0;;;;;;;;-1:-1:-1;15223:4:0;14905:330;;;;;:::o;17245:207::-;17315:10;;:22;;17328:9;17315:22;:::i;:::-;17297:15;:40;17293:145;;;17363:1;17354:6;:10;;;17379:7;:11;17405:14;:21;;-1:-1:-1;;17405:21:0;17422:4;17405:21;;;17245:207::o;17460:170::-;9572:6;:13;;-1:-1:-1;;;;9572:13:0;-1:-1:-1;;;9572:13:0;;;17534:11:::1;::::0;;;::::1;9572:13:::0;17534:11:::1;17531:47;;;-1:-1:-1::0;17565:13:0::1;::::0;17531:47:::1;17589:33;17606:15;17589:16;:33::i;:::-;-1:-1:-1::0;9608:6:0;:14;;-1:-1:-1;;;;9608:14:0;;;17460:170::o;15247:369::-;-1:-1:-1;;;;;15351:25:0;;15331:4;15351:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15380:28:0;;;;;;:17;:28;;;;;;;;15351:57;15348:261;;;-1:-1:-1;15432:4:0;15425:11;;15348:261;-1:-1:-1;;;;;15467:20:0;;;;;;:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;15491:23:0;;;;;;:12;:23;;;;;;;;15467:47;15463:146;;;-1:-1:-1;15538:5:0;15531:12;;15463:146;-1:-1:-1;15592:5:0;15585:12;;15624:690;-1:-1:-1;;;;;15797:20:0;;15710:7;15797:20;;;:12;:20;;;;;;15710:7;;15797:20;;15794:246;;;15851:38;15874:14;;15851:18;15862:6;;15851;:10;;:18;;;;:::i;:::-;:22;;:38::i;:::-;15839:50;;15794:246;;;-1:-1:-1;;;;;15928:23:0;;;;;;:12;:23;;;;;;;;15925:115;;;15985:39;16009:14;;15985:19;15996:7;;15985:6;:10;;:19;;;;:::i;:39::-;15973:51;;15925:115;16059:13;;16056:185;;16138:4;16120:24;;;;:9;:24;;;;;;:39;;16149:9;16120:28;:39::i;:::-;16111:4;16093:24;;;;:9;:24;;;;;;;:66;;;;16183:42;;-1:-1:-1;;;;;16183:42:0;;;;;;;16215:9;160:25:1;;148:2;133:18;;14:177;16183:42:0;;;;;;;;16056:185;16264:21;:6;16275:9;16264:10;:21::i;17638:661::-;17788:16;;;17802:1;17788:16;;;;;;;;17764:21;;17788:16;;;;;;;;;;-1:-1:-1;17788:16:0;17764:40;;17833:4;17815;17820:1;17815:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17815:23:0;;;-1:-1:-1;;;;;17815:23:0;;;;;17859:9;;;;;;;;;-1:-1:-1;;;;;17859:9:0;-1:-1:-1;;;;;17859:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17849:4;17854:1;17849:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17849:26:0;;;:7;;;;;;;;;:26;17920:9;;17888:56;;17905:4;;-1:-1:-1;;;17920:9:0;;;17932:11;17888:8;:56::i;:::-;17983:9;;18155:17;;17983:247;;-1:-1:-1;;;17983:247:0;;-1:-1:-1;;;;;;;;17983:9:0;;;;;;:60;;:247;;18058:11;;18084:1;;18128:4;;18155:17;;;18204:15;;17983:247;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18256:35;18273:11;18286:4;18256:35;;;;;;;:::i;:::-;;;;;;;;17693:606;17638:661;:::o;3746:250::-;3804:7;3828:1;3833;3828:6;3824:47;;-1:-1:-1;3858:1:0;3851:8;;3824:47;3883:9;3895:5;3899:1;3895;:5;:::i;:::-;3883:17;-1:-1:-1;3928:1:0;3919:5;3923:1;3883:17;3919:5;:::i;:::-;:10;3911:56;;;;-1:-1:-1;;;3911:56:0;;14327:2:1;3911:56:0;;;14309:21:1;14366:2;14346:18;;;14339:30;14405:34;14385:18;;;14378:62;-1:-1:-1;;;14456:18:1;;;14449:31;14497:19;;3911:56:0;14125:397:1;4004:132:0;4062:7;4089:39;4093:1;4096;4089:39;;;;;;;;;;;;;;;;;:3;:39::i;3402:136::-;3460:7;3487:43;3491:1;3494;3487:43;;;;;;;;;;;;;;;;;:3;:43::i;4144:278::-;4230:7;4265:12;4258:5;4250:28;;;;-1:-1:-1;;;4250:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4289:9:0;4301:5;4305:1;4301;:5;:::i;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;1082:131::-;-1:-1:-1;;;;;1157:31:1;;1147:42;;1137:70;;1203:1;1200;1193:12;1218:315;1286:6;1294;1347:2;1335:9;1326:7;1322:23;1318:32;1315:52;;;1363:1;1360;1353:12;1315:52;1402:9;1389:23;1421:31;1446:5;1421:31;:::i;:::-;1471:5;1523:2;1508:18;;;;1495:32;;-1:-1:-1;;;1218:315:1:o;1730:456::-;1807:6;1815;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;1931:9;1918:23;1950:31;1975:5;1950:31;:::i;:::-;2000:5;-1:-1:-1;2057:2:1;2042:18;;2029:32;2070:33;2029:32;2070:33;:::i;:::-;1730:456;;2122:7;;-1:-1:-1;;;2176:2:1;2161:18;;;;2148:32;;1730:456::o;2380:247::-;2439:6;2492:2;2480:9;2471:7;2467:23;2463:32;2460:52;;;2508:1;2505;2498:12;2460:52;2547:9;2534:23;2566:31;2591:5;2566:31;:::i;2632:160::-;2697:20;;2753:13;;2746:21;2736:32;;2726:60;;2782:1;2779;2772:12;2726:60;2632:160;;;:::o;2797:180::-;2853:6;2906:2;2894:9;2885:7;2881:23;2877:32;2874:52;;;2922:1;2919;2912:12;2874:52;2945:26;2961:9;2945:26;:::i;2982:180::-;3041:6;3094:2;3082:9;3073:7;3069:23;3065:32;3062:52;;;3110:1;3107;3100:12;3062:52;-1:-1:-1;3133:23:1;;2982:180;-1:-1:-1;2982:180:1:o;3167:315::-;3232:6;3240;3293:2;3281:9;3272:7;3268:23;3264:32;3261:52;;;3309:1;3306;3299:12;3261:52;3348:9;3335:23;3367:31;3392:5;3367:31;:::i;:::-;3417:5;-1:-1:-1;3441:35:1;3472:2;3457:18;;3441:35;:::i;:::-;3431:45;;3167:315;;;;;:::o;3695:316::-;3766:6;3774;3782;3835:2;3823:9;3814:7;3810:23;3806:32;3803:52;;;3851:1;3848;3841:12;3803:52;3887:9;3874:23;3864:33;;3916:35;3947:2;3936:9;3932:18;3916:35;:::i;:::-;3906:45;;3970:35;4001:2;3990:9;3986:18;3970:35;:::i;:::-;3960:45;;3695:316;;;;;:::o;4016:388::-;4084:6;4092;4145:2;4133:9;4124:7;4120:23;4116:32;4113:52;;;4161:1;4158;4151:12;4113:52;4200:9;4187:23;4219:31;4244:5;4219:31;:::i;:::-;4269:5;-1:-1:-1;4326:2:1;4311:18;;4298:32;4339:33;4298:32;4339:33;:::i;:::-;4391:7;4381:17;;;4016:388;;;;;:::o;4409:248::-;4477:6;4485;4538:2;4526:9;4517:7;4513:23;4509:32;4506:52;;;4554:1;4551;4544:12;4506:52;-1:-1:-1;;4577:23:1;;;4647:2;4632:18;;;4619:32;;-1:-1:-1;4409:248:1:o;4662:356::-;4864:2;4846:21;;;4883:18;;;4876:30;4942:34;4937:2;4922:18;;4915:62;5009:2;4994:18;;4662:356::o;5981:306::-;6069:6;6077;6085;6138:2;6126:9;6117:7;6113:23;6109:32;6106:52;;;6154:1;6151;6144:12;6106:52;6183:9;6177:16;6167:26;;6233:2;6222:9;6218:18;6212:25;6202:35;;6277:2;6266:9;6262:18;6256:25;6246:35;;5981:306;;;;;:::o;6292:251::-;6362:6;6415:2;6403:9;6394:7;6390:23;6386:32;6383:52;;;6431:1;6428;6421:12;6383:52;6463:9;6457:16;6482:31;6507:5;6482:31;:::i;6857:380::-;6936:1;6932:12;;;;6979;;;7000:61;;7054:4;7046:6;7042:17;7032:27;;7000:61;7107:2;7099:6;7096:14;7076:18;7073:38;7070:161;;7153:10;7148:3;7144:20;7141:1;7134:31;7188:4;7185:1;7178:15;7216:4;7213:1;7206:15;7070:161;;6857:380;;;:::o;7242:338::-;7444:2;7426:21;;;7483:2;7463:18;;;7456:30;-1:-1:-1;;;7517:2:1;7502:18;;7495:44;7571:2;7556:18;;7242:338::o;7864:287::-;7993:3;8031:6;8025:13;8047:66;8106:6;8101:3;8094:4;8086:6;8082:17;8047:66;:::i;:::-;8129:16;;;;;7864:287;-1:-1:-1;;7864:287:1:o;11321:127::-;11382:10;11377:3;11373:20;11370:1;11363:31;11413:4;11410:1;11403:15;11437:4;11434:1;11427:15;11453:128;11520:9;;;11541:11;;;11538:37;;;11555:18;;:::i;11586:125::-;11651:9;;;11672:10;;;11669:36;;;11685:18;;:::i;12204:127::-;12265:10;12260:3;12256:20;12253:1;12246:31;12296:4;12293:1;12286:15;12320:4;12317:1;12310:15;12336:465;12389:3;12427:5;12421:12;12454:6;12449:3;12442:19;12480:4;12509;12504:3;12500:14;12493:21;;12548:4;12541:5;12537:16;12571:1;12581:195;12595:6;12592:1;12589:13;12581:195;;;12660:13;;-1:-1:-1;;;;;12656:39:1;12644:52;;12716:12;;;;12751:15;;;;12692:1;12610:9;12581:195;;;-1:-1:-1;12792:3:1;;12336:465;-1:-1:-1;;;;;12336:465:1:o;12806:582::-;13105:6;13094:9;13087:25;13148:6;13143:2;13132:9;13128:18;13121:34;13191:3;13186:2;13175:9;13171:18;13164:31;13068:4;13212:57;13264:3;13253:9;13249:19;13241:6;13212:57;:::i;:::-;-1:-1:-1;;;;;13305:32:1;;;;13300:2;13285:18;;13278:60;-1:-1:-1;13369:3:1;13354:19;13347:35;13204:65;12806:582;-1:-1:-1;;;12806:582:1:o;13393:332::-;13600:6;13589:9;13582:25;13643:2;13638;13627:9;13623:18;13616:30;13563:4;13663:56;13715:2;13704:9;13700:18;13692:6;13663:56;:::i;:::-;13655:64;13393:332;-1:-1:-1;;;;13393:332:1:o;13730:168::-;13803:9;;;13834;;13851:15;;;13845:22;;13831:37;13821:71;;13872:18;;:::i;13903:217::-;13943:1;13969;13959:132;;14013:10;14008:3;14004:20;14001:1;13994:31;14048:4;14045:1;14038:15;14076:4;14073:1;14066:15;13959:132;-1:-1:-1;14105:9:1;;13903:217::o

Swarm Source

ipfs://2703f99f194758091f3340d8db39dcaa1173c56120910715a6c1341678ee7201
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.