ETH Price: $3,399.77 (+3.01%)

Token

NO ETH NOVEMBER (BROKE)
 

Overview

Max Total Supply

100,000,000 BROKE

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
organicholas.eth
Balance
1,026,034.423907299249279414 BROKE

Value
$0.00
0xd4cF19f76addb489d079D0f60F41D6E91E7c79E1
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:
NOETHERNOVEMBER

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-09
*/

// SPDX-License-Identifier: MIT

/*

Website: https://noethnovember.com/
Telegram: https://t.me/Noethernovember
X: https://twitter.com/NoEtherNovERC20
Medium: https://noethernovember.medium.com/

█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░████░░░░░░░░░░░░░░█░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░░░░░░░░░███
█░░▄▀░░░░░░░░░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░████░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░███
█░░▄▀▄▀▄▀▄▀▄▀░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░████░░▄▀░░░░░░░░░░█░░░░░░▄▀░░░░░░█░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░░░▄▀░░███
█░░▄▀░░░░░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░████░░▄▀░░█████████████░░▄▀░░█████░░▄▀░░██░░▄▀░░█░░▄▀░░█████████░░▄▀░░████░░▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░████░░▄▀░░░░░░░░░░█████░░▄▀░░█████░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░░░▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░████░░▄▀▄▀▄▀▄▀▄▀░░█████░░▄▀░░█████░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░████░░▄▀░░░░░░░░░░█████░░▄▀░░█████░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░▄▀░░░░███
█░░▄▀░░██░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░████░░▄▀░░█████████████░░▄▀░░█████░░▄▀░░██░░▄▀░░█░░▄▀░░█████████░░▄▀░░██░░▄▀░░█████
█░░▄▀░░██░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░░░░░▄▀░░████░░▄▀░░░░░░░░░░█████░░▄▀░░█████░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░██░░▄▀░░░░░░█
█░░▄▀░░██░░░░░░░░░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░████░░▄▀▄▀▄▀▄▀▄▀░░█████░░▄▀░░█████░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀▄▀▄▀░░█
█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░████░░░░░░░░░░░░░░█████░░░░░░█████░░░░░░██░░░░░░█░░░░░░░░░░░░░░█░░░░░░██░░░░░░░░░░█
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░░░░░░░░░█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░███░░░░░░░░░░░░░░█░░░░░░░░░░░░░░░░███
█░░▄▀░░░░░░░░░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░░░░░░░░░░░░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░███░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░███
█░░▄▀▄▀▄▀▄▀▄▀░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░░░░░▄▀░░███░░▄▀░░░░░░░░░░█░░▄▀░░░░░░░░▄▀░░███
█░░▄▀░░░░░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░█████████░░▄▀░░░░░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░███░░▄▀░░█████████░░▄▀░░████░░▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░░░█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░░░▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░██░░░░░░██░░▄▀░░█░░▄▀░░░░░░░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░░░░░▄▀░░░░███
█░░▄▀░░██░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀░░▄▀▄▀░░█░░▄▀░░█████████░░▄▀░░██████████░░▄▀░░█░░▄▀░░████░░▄▀░░█░░▄▀░░█████████░░▄▀░░██░░▄▀░░█████
█░░▄▀░░██░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░░░░░▄▀░░█░░░░▄▀▄▀▄▀░░░░█░░▄▀░░░░░░░░░░█░░▄▀░░██████████░░▄▀░░█░░▄▀░░░░░░░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░██░░▄▀░░░░░░█
█░░▄▀░░██░░░░░░░░░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░███░░░░▄▀░░░░███░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██████████░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀▄▀▄▀░░█
█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░█████░░░░░░█████░░░░░░░░░░░░░░█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░░░█░░░░░░░░░░░░░░█░░░░░░██░░░░░░░░░░█
███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
*/

pragma solidity ^0.8.0 <0.9.0;

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);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
    unchecked {
        _approve(sender, _msgSender(), currentAllowance - amount);
    }

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    unchecked {
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    unchecked {
        _balances[sender] = senderBalance - amount;
    }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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);
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

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

contract NOETHERNOVEMBER  is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private _swapping;
    uint256 public swapTokensAtAmount;

    address public MarketingAddress;

    uint256 public tradingActiveBlock = 0; 
    uint256 public deadBlocks = 0;

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

    uint256 public buyFee;

    uint256 public sellFee;

    mapping (address => bool) public isExcludedFromFees;
    mapping (address => bool) public isExcludedFromLimits;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) public isSniper;

    constructor() ERC20("NO ETH NOVEMBER", "BROKE") {

        address newOwner = msg.sender; 

        IDexRouter _uniswapV2Router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _excludeFromLimits(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        address tokenA = address(this);
        address tokenB = _uniswapV2Router.WETH();
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        uniswapV2Pair = address(uint160(uint(keccak256(abi.encodePacked(
            hex'ff',
            _uniswapV2Router.factory(),
            keccak256(abi.encodePacked(token0, token1)),
            hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'
        )))));

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 totalSupply = 100000000  * 1e18;

        maxBuyAmount = totalSupply * 2 / 100;
        maxSellAmount = totalSupply *  1 / 100;
        maxWalletAmount = totalSupply * 3 / 100;
        swapTokensAtAmount = totalSupply * 1 / 100; 

        buyFee = 0;
        sellFee = 0;

        _excludeFromLimits(newOwner, true);
        _excludeFromLimits(address(this), true);

        MarketingAddress = address(0xd585456755078BA801D7DD2D8F7Ea2F96D433C7b);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function createPair() external onlyOwner {
        IDexFactory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

    function updateMaxBuyAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= (totalSupply() * 1 / 100), "BROKE: new max buy amount less than 1% of total supply");
        maxBuyAmount = newAmount * 1e18;
    }

    function updateMaxSellAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= (totalSupply() * 1 / 100), "BROKE: new max sell amount less than 1% of total supply");
        maxSellAmount = newAmount * 1e18;
    }

    function updateMaxWalletAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= (totalSupply() * 2 / 100), "BROKE: new max wallet amount less than 2% of total supply");
        maxWalletAmount = newAmount * 1e18;
    }

    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
        require(newAmount * 1e18 >= totalSupply() * 1 / 100000, "BROKE: new swap amount less than 0.001% of total supply");
        require(newAmount <= totalSupply() * 1 / 1000, "BROKE: new Swap amount exceeds 0.1% of total supply");
        swapTokensAtAmount = newAmount * 1e18;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function _excludeFromLimits(address account, bool isExcluded) private {
        isExcludedFromLimits[account] = isExcluded;
    }

    function excludeFromLimits(address account, bool isExcluded) external onlyOwner {
        if (!isExcluded) {
            require(account != uniswapV2Pair, "BROKE: account to be exscluded is pair address");
        }
        _excludeFromLimits(account, isExcluded);
    }

    function updateBuyFee(uint256 newBuyFee) external onlyOwner {
        require(newBuyFee <= 5, "BROKE: new buy fee exceeds 5%");
        buyFee = newBuyFee;
    }

    function updateSellFee(uint256 newSellFee) external onlyOwner {
        if (sellFee > 5) {
            require(newSellFee <= sellFee, "BROKE: new sell fee exceeds current sell fee");
        } else {
            require(sellFee <= 5, "BROKE: new sell fee exceeds 5%");
        }
        sellFee = newSellFee;
    }

    function excludeFromFees(address account, bool isExcluded) public onlyOwner {
        isExcludedFromFees[account] = isExcluded;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(amount > 0, "BROKE: amount is zero");
        require(!isSniper[from], "BROKE: sender marked as sniper");
        require(!isSniper[to], "BROKE: recipient marked as sniper");
 
        if (limitsInEffect) {
            if (from != owner() && to != owner() && !isExcludedFromFees[from] && !isExcludedFromFees[to]) {
                require(tradingActive, "BROKE: trading is not active");
                if (tradingActiveBlock > 0 && block.number < (tradingActiveBlock + deadBlocks) ) {
                    isSniper[to] = true;
                }
                // buy
                if (automatedMarketMakerPairs[from] && !isExcludedFromLimits[to]) {
                    require(amount <= maxBuyAmount, "BROKE: transfer amount exceeds max buy amount");
                    require(amount + balanceOf(to) <= maxWalletAmount, "BROKE: balance exceeds max wallet amount");
                }
                // sell
                else if (automatedMarketMakerPairs[to] && !isExcludedFromLimits[from]) {
                    require(amount <= maxSellAmount, "BROKE: transfer amount exceeds max sell amount");
                }
                else if (!isExcludedFromLimits[to]) {
                    require(amount + balanceOf(to) <= maxWalletAmount, "BROKE: balance exceeds max wallet amount");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;
        if(canSwap && swapEnabled && !_swapping && !automatedMarketMakerPairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) {
            _swapping = true;
            _swapBack();
            _swapping = false;
        }

        uint256 fee = 0;
        uint256 penaltyAmount = 0;
        if(!isExcludedFromFees[from] && !isExcludedFromFees[to]){
            // sniper penalty
            if (tradingActiveBlock > 0 && block.number < (tradingActiveBlock + deadBlocks) ) {
                penaltyAmount = amount * 98 / 100;
                super._transfer(from, MarketingAddress, penaltyAmount);
            }
            // sell
            else if (automatedMarketMakerPairs[to] && sellFee > 0){
                fee = amount * sellFee / 100;
            }
            // buy
            else if(automatedMarketMakerPairs[from] && buyFee > 0) {
                fee = amount * buyFee / 100;
            }
            if(fee > 0){
                super._transfer(from, address(this), fee);
            }
            amount -= fee + penaltyAmount;
        }

        super._transfer(from, to, amount);
    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool isAMM) external onlyOwner {
        if(!isAMM) {
            require(pair != uniswapV2Pair, "BROKE: automated market maker pair is uniswap V2 pair");
        }
        _setAutomatedMarketMakerPair(pair, isAMM);
    }

    function _setAutomatedMarketMakerPair(address pair, bool isAMM) private {
        automatedMarketMakerPairs[pair] = isAMM;
        _excludeFromLimits(pair, isAMM);
    }

    // once enabled, can never be turned off
    function enableTrading(bool _status, uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "BROKE: trading is already active");
        require(_deadBlocks <= 5, "BROKE: deadblocks amount exceeds 5");
        tradingActive = _status;
        swapEnabled = true;

        if (tradingActive && tradingActiveBlock == 0) {
            tradingActiveBlock = block.number;
            deadBlocks = _deadBlocks;
        }
    }

    function setMarketingAddress(address newMarketingAddress) external onlyOwner {
        require(newMarketingAddress != address(0), "BROKE: new marketing address is the zero address");
        MarketingAddress = payable(newMarketingAddress);
    }

    function manageSniper(address sniperAddress, bool status) external onlyOwner {
        require(sniperManagementEnabled, "BROKE: sniper management permanently disabled");
        isSniper[sniperAddress] = status;
    }

    function manageSnipers(address[] calldata addresses, bool status) external onlyOwner {
        require(sniperManagementEnabled, "BROKE: snipers management permanently disabled");
        for (uint256 i; i < addresses.length; ++i) {
            isSniper[addresses[i]] = status;
        }
    }

    // permanently disable sniper management
    function disableSniperManagement() external onlyOwner {
        sniperManagementEnabled = false;
    }

    function _swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }
        if (contractBalance > swapTokensAtAmount * 10) {
            contractBalance = swapTokensAtAmount * 10;
        }
        _swapTokensForEth(contractBalance);
        bool success;
        (success,) = address(MarketingAddress).call{value: address(this).balance}("");
    }

    function transferForeignToken(address token, address to) external onlyOwner returns (bool) {
        require(token != address(0), "BROKE: token is the zero address");
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        return IERC20(token).transfer(to, _contractBalance);
    }

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

}

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":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":"MarketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"disableSniperManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromLimits","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":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniperAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"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":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"isAMM","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sniperManagementEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600c819055600d55600e805463ffffffff191663010000011790553480156200002e57600080fd5b506040518060400160405280600f81526020016e27279022aa24102727ab22a6a122a960891b8152506040518060400160405280600581526020016442524f4b4560d81b815250816003908162000086919062000781565b50600462000095828262000781565b5050506000620000aa6200047c60201b60201c565b600580546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020620036b1833981519152908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d600081905260126020527f3c6737805ae477fd0cfdda13dc5f99b32fcbfecb81e47f9e11e1b03813c08ec2805460ff191660011790553390806001600160a01b03166080816001600160a01b03168152505060003090506000826001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000194573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ba91906200084d565b9050600080826001600160a01b0316846001600160a01b031610620001e1578284620001e4565b83835b91509150846001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000227573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024d91906200084d565b6040516001600160601b0319606085811b8216602084015284901b16603482015260480160405160208183030381529060405280519060200120604051602001620002fd9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b6001600160601b031916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291815281516020928301206001600160a01b031660a08190526000908152601383528181208054600160ff199182168117909255601290945291902080549092161790556a52b7d2dcc80cd2e400000060646200036982600262000895565b620003759190620008b5565b60065560646200038782600162000895565b620003939190620008b5565b6007556064620003a582600362000895565b620003b19190620008b5565b6008556064620003c382600162000895565b620003cf9190620008b5565b600a556000600f81905560108190556001600160a01b0388168152601260205260409020805460ff19166001179055306000908152601260205260409020805460ff19166001179055600b80546001600160a01b03191673d585456755078ba801d7dd2d8f7ea2f96d433c7b1790556200044b87600162000480565b6200045830600162000480565b620004648782620004fa565b6200046f87620005df565b50505050505050620008ee565b3390565b6005546001600160a01b03163314620004cf5760405162461bcd60e51b815260206004820181905260248201526000805160206200369183398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6001600160a01b038216620005525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004c6565b8060026000828254620005669190620008d8565b90915550506001600160a01b0382166000908152602081905260408120805483929062000595908490620008d8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b031633146200062a5760405162461bcd60e51b81526020600482018190526024820152600080516020620036918339815191526044820152606401620004c6565b6001600160a01b038116620006915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004c6565b6005546040516001600160a01b03808416921690600080516020620036b183398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200070757607f821691505b6020821081036200072857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200077c57600081815260208120601f850160051c81016020861015620007575750805b601f850160051c820191505b81811015620007785782815560010162000763565b5050505b505050565b81516001600160401b038111156200079d576200079d620006dc565b620007b581620007ae8454620006f2565b846200072e565b602080601f831160018114620007ed5760008415620007d45750858301515b600019600386901b1c1916600185901b17855562000778565b600085815260208120601f198616915b828110156200081e57888601518255948401946001909101908401620007fd565b50858210156200083d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200086057600080fd5b81516001600160a01b03811681146200087857600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620008af57620008af6200087f565b92915050565b600082620008d357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620008af57620008af6200087f565b60805160a051612d4c62000945600039600081816105060152818161127d015261163801526000818161039101528181611387015281816114180152818161276801528181612821015261285d0152612d4c6000f3fe6080604052600436106102e85760003560e01c80638366e79a11610190578063c0a904a2116100dc578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b1461092e578063f5648a4f1461094e578063fabb0b4f14610963578063faf216e31461097957600080fd5b8063e2f45605146108e2578063ed494189146108f8578063ee40166e1461091857600080fd5b8063c0a904a2146107fb578063c18bc1951461081b578063d257b34f1461083b578063dbf5b9161461085b578063dc3f0d0f1461087c578063dd62ed3e1461089c57600080fd5b80639e78fb4f11610149578063aa4bde2811610123578063aa4bde2814610776578063b62496f51461078c578063bbc0c742146107bc578063c0246668146107db57600080fd5b80639e78fb4f14610721578063a457c2d714610736578063a9059cbb1461075657600080fd5b80638366e79a1461067857806388e765ff146106985780638da5cb5b146106ae578063906e9dd0146106cc57806395d89b41146106ec5780639a7a23d61461070157600080fd5b8063467abe0a1161024f5780635e83ae761161020857806370a08231116101e257806370a08231146105f8578063715018a61461062e578063751039fc14610643578063819d38d21461065857600080fd5b80635e83ae76146105a257806366d602ae146105c25780636ddd1713146105d857600080fd5b8063467abe0a146104be57806347062402146104de57806349bd5a5e146104f45780634a62bb65146105285780634fbee193146105425780635cce86cd1461057257600080fd5b806323b872dd116102a157806323b872dd1461040c5780632b14ca561461042c5780632be32b6114610442578063313ce567146104625780633936e8b91461047e578063395093511461049e57600080fd5b806306fdde03146102f4578063095ea7b31461031f5780630f3a325f1461034f5780631694505e1461037f57806318160ddd146103cb5780631d933a4a146103ea57600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961098e565b60405161031691906128d1565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612934565b610a20565b6040519015158152602001610316565b34801561035b57600080fd5b5061033f61036a366004612960565b60146020526000908152604090205460ff1681565b34801561038b57600080fd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610316565b3480156103d757600080fd5b506002545b604051908152602001610316565b3480156103f657600080fd5b5061040a610405366004612984565b610a37565b005b34801561041857600080fd5b5061033f61042736600461299d565b610b34565b34801561043857600080fd5b506103dc60105481565b34801561044e57600080fd5b5061040a61045d366004612984565b610bde565b34801561046e57600080fd5b5060405160128152602001610316565b34801561048a57600080fd5b50600b546103b3906001600160a01b031681565b3480156104aa57600080fd5b5061033f6104b9366004612934565b610cbf565b3480156104ca57600080fd5b5061040a6104d9366004612984565b610cfb565b3480156104ea57600080fd5b506103dc600f5481565b34801561050057600080fd5b506103b37f000000000000000000000000000000000000000000000000000000000000000081565b34801561053457600080fd5b50600e5461033f9060ff1681565b34801561054e57600080fd5b5061033f61055d366004612960565b60116020526000908152604090205460ff1681565b34801561057e57600080fd5b5061033f61058d366004612960565b60126020526000908152604090205460ff1681565b3480156105ae57600080fd5b5061040a6105bd3660046129ec565b610d7b565b3480156105ce57600080fd5b506103dc60075481565b3480156105e457600080fd5b50600e5461033f9062010000900460ff1681565b34801561060457600080fd5b506103dc610613366004612960565b6001600160a01b031660009081526020819052604090205490565b34801561063a57600080fd5b5061040a610ea7565b34801561064f57600080fd5b5061040a610f1b565b34801561066457600080fd5b5061040a610673366004612a0a565b610f51565b34801561068457600080fd5b5061033f610693366004612a43565b611015565b3480156106a457600080fd5b506103dc60065481565b3480156106ba57600080fd5b506005546001600160a01b03166103b3565b3480156106d857600080fd5b5061040a6106e7366004612960565b611182565b3480156106f857600080fd5b5061030961123d565b34801561070d57600080fd5b5061040a61071c366004612a0a565b61124c565b34801561072d57600080fd5b5061040a61135b565b34801561074257600080fd5b5061033f610751366004612934565b61150c565b34801561076257600080fd5b5061033f610771366004612934565b6115a5565b34801561078257600080fd5b506103dc60085481565b34801561079857600080fd5b5061033f6107a7366004612960565b60136020526000908152604090205460ff1681565b3480156107c857600080fd5b50600e5461033f90610100900460ff1681565b3480156107e757600080fd5b5061040a6107f6366004612a0a565b6115b2565b34801561080757600080fd5b5061040a610816366004612a0a565b611607565b34801561082757600080fd5b5061040a610836366004612984565b6116f8565b34801561084757600080fd5b5061040a610856366004612984565b6117e0565b34801561086757600080fd5b50600e5461033f906301000000900460ff1681565b34801561088857600080fd5b5061040a610897366004612984565b611956565b3480156108a857600080fd5b506103dc6108b7366004612a43565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108ee57600080fd5b506103dc600a5481565b34801561090457600080fd5b5061040a610913366004612a71565b611a3e565b34801561092457600080fd5b506103dc600c5481565b34801561093a57600080fd5b5061040a610949366004612960565b611b4d565b34801561095a57600080fd5b5061040a611c38565b34801561096f57600080fd5b506103dc600d5481565b34801561098557600080fd5b5061040a611ca4565b60606003805461099d90612af7565b80601f01602080910402602001604051908101604052809291908181526020018280546109c990612af7565b8015610a165780601f106109eb57610100808354040283529160200191610a16565b820191906000526020600020905b8154815290600101906020018083116109f957829003601f168201915b5050505050905090565b6000610a2d338484611cdd565b5060015b92915050565b6005546001600160a01b03163314610a6a5760405162461bcd60e51b8152600401610a6190612b31565b60405180910390fd5b60056010541115610ae157601054811115610adc5760405162461bcd60e51b815260206004820152602c60248201527f42524f4b453a206e65772073656c6c206665652065786365656473206375727260448201526b656e742073656c6c2066656560a01b6064820152608401610a61565b601055565b60056010541115610adc5760405162461bcd60e51b815260206004820152601e60248201527f42524f4b453a206e65772073656c6c20666565206578636565647320352500006044820152606401610a61565b6000610b41848484611e01565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bc65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a61565b610bd38533858403611cdd565b506001949350505050565b6005546001600160a01b03163314610c085760405162461bcd60e51b8152600401610a6190612b31565b6064610c1360025490565b610c1e906001612b7c565b610c289190612b93565b610c3a82670de0b6b3a7640000612b7c565b1015610ca75760405162461bcd60e51b815260206004820152603660248201527f42524f4b453a206e6577206d61782062757920616d6f756e74206c657373207460448201527568616e203125206f6620746f74616c20737570706c7960501b6064820152608401610a61565b610cb981670de0b6b3a7640000612b7c565b60065550565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a2d918590610cf6908690612bb5565b611cdd565b6005546001600160a01b03163314610d255760405162461bcd60e51b8152600401610a6190612b31565b6005811115610d765760405162461bcd60e51b815260206004820152601d60248201527f42524f4b453a206e6577206275792066656520657863656564732035250000006044820152606401610a61565b600f55565b6005546001600160a01b03163314610da55760405162461bcd60e51b8152600401610a6190612b31565b600e54610100900460ff1615610dfd5760405162461bcd60e51b815260206004820181905260248201527f42524f4b453a2074726164696e6720697320616c7265616479206163746976656044820152606401610a61565b6005811115610e595760405162461bcd60e51b815260206004820152602260248201527f42524f4b453a2064656164626c6f636b7320616d6f756e742065786365656473604482015261203560f01b6064820152608401610a61565b600e80546201000062ffff0019909116610100851515810262ff0000191691909117919091179182905560ff9104168015610e945750600c54155b15610ea35743600c55600d8190555b5050565b6005546001600160a01b03163314610ed15760405162461bcd60e51b8152600401610a6190612b31565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610f455760405162461bcd60e51b8152600401610a6190612b31565b600e805460ff19169055565b6005546001600160a01b03163314610f7b5760405162461bcd60e51b8152600401610a6190612b31565b600e546301000000900460ff16610fea5760405162461bcd60e51b815260206004820152602d60248201527f42524f4b453a20736e69706572206d616e6167656d656e74207065726d616e6560448201526c1b9d1b1e48191a5cd8589b1959609a1b6064820152608401610a61565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546000906001600160a01b031633146110425760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b0383166110985760405162461bcd60e51b815260206004820181905260248201527f42524f4b453a20746f6b656e20697320746865207a65726f20616464726573736044820152606401610a61565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111039190612bc8565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117a9190612be1565b949350505050565b6005546001600160a01b031633146111ac5760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b03811661121b5760405162461bcd60e51b815260206004820152603060248201527f42524f4b453a206e6577206d61726b6574696e6720616464726573732069732060448201526f746865207a65726f206164647265737360801b6064820152608401610a61565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461099d90612af7565b6005546001600160a01b031633146112765760405162461bcd60e51b8152600401610a6190612b31565b8061131a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361131a5760405162461bcd60e51b815260206004820152603560248201527f42524f4b453a206175746f6d61746564206d61726b6574206d616b657220706160448201527434b91034b9903ab734b9bbb0b8102b19103830b4b960591b6064820152608401610a61565b6001600160a01b0382166000908152601360209081526040808320805485151560ff1991821681179092556012909352922080549091169091179055610ea3565b6005546001600160a01b031633146113855760405162461bcd60e51b8152600401610a6190612b31565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114079190612bfe565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190612bfe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156114e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190612bfe565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561158e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a61565b61159b3385858403611cdd565b5060019392505050565b6000610a2d338484611e01565b6005546001600160a01b031633146115dc5760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146116315760405162461bcd60e51b8152600401610a6190612b31565b806116ce577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036116ce5760405162461bcd60e51b815260206004820152602e60248201527f42524f4b453a206163636f756e7420746f20626520657873636c75646564206960448201526d732070616972206164647265737360901b6064820152608401610a61565b6001600160a01b0382166000908152601260205260409020805482151560ff199091161790555050565b6005546001600160a01b031633146117225760405162461bcd60e51b8152600401610a6190612b31565b606461172d60025490565b611738906002612b7c565b6117429190612b93565b61175482670de0b6b3a7640000612b7c565b10156117c85760405162461bcd60e51b815260206004820152603960248201527f42524f4b453a206e6577206d61782077616c6c657420616d6f756e74206c657360448201527f73207468616e203225206f6620746f74616c20737570706c79000000000000006064820152608401610a61565b6117da81670de0b6b3a7640000612b7c565b60085550565b6005546001600160a01b0316331461180a5760405162461bcd60e51b8152600401610a6190612b31565b620186a061181760025490565b611822906001612b7c565b61182c9190612b93565b61183e82670de0b6b3a7640000612b7c565b10156118b25760405162461bcd60e51b815260206004820152603760248201527f42524f4b453a206e6577207377617020616d6f756e74206c657373207468616e60448201527f20302e30303125206f6620746f74616c20737570706c790000000000000000006064820152608401610a61565b6103e86118be60025490565b6118c9906001612b7c565b6118d39190612b93565b81111561193e5760405162461bcd60e51b815260206004820152603360248201527f42524f4b453a206e6577205377617020616d6f756e74206578636565647320306044820152722e3125206f6620746f74616c20737570706c7960681b6064820152608401610a61565b61195081670de0b6b3a7640000612b7c565b600a5550565b6005546001600160a01b031633146119805760405162461bcd60e51b8152600401610a6190612b31565b606461198b60025490565b611996906001612b7c565b6119a09190612b93565b6119b282670de0b6b3a7640000612b7c565b1015611a265760405162461bcd60e51b815260206004820152603760248201527f42524f4b453a206e6577206d61782073656c6c20616d6f756e74206c6573732060448201527f7468616e203125206f6620746f74616c20737570706c790000000000000000006064820152608401610a61565b611a3881670de0b6b3a7640000612b7c565b60075550565b6005546001600160a01b03163314611a685760405162461bcd60e51b8152600401610a6190612b31565b600e546301000000900460ff16611ad85760405162461bcd60e51b815260206004820152602e60248201527f42524f4b453a20736e6970657273206d616e6167656d656e74207065726d616e60448201526d195b9d1b1e48191a5cd8589b195960921b6064820152608401610a61565b60005b82811015611b47578160146000868685818110611afa57611afa612c1b565b9050602002016020810190611b0f9190612960565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b4081612c31565b9050611adb565b50505050565b6005546001600160a01b03163314611b775760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b038116611bdc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a61565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611c625760405162461bcd60e51b8152600401610a6190612b31565b604051600090339047908381818185875af1925050503d8060008114611b47576040519150601f19603f3d011682016040523d82523d6000602084013e611b47565b6005546001600160a01b03163314611cce5760405162461bcd60e51b8152600401610a6190612b31565b600e805463ff00000019169055565b6001600160a01b038316611d3f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a61565b6001600160a01b038216611da05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a61565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111611e495760405162461bcd60e51b815260206004820152601560248201527442524f4b453a20616d6f756e74206973207a65726f60581b6044820152606401610a61565b6001600160a01b03831660009081526014602052604090205460ff1615611eb25760405162461bcd60e51b815260206004820152601e60248201527f42524f4b453a2073656e646572206d61726b656420617320736e6970657200006044820152606401610a61565b6001600160a01b03821660009081526014602052604090205460ff1615611f255760405162461bcd60e51b815260206004820152602160248201527f42524f4b453a20726563697069656e74206d61726b656420617320736e6970656044820152603960f91b6064820152608401610a61565b600e5460ff1615612255576005546001600160a01b03848116911614801590611f5c57506005546001600160a01b03838116911614155b8015611f8157506001600160a01b03831660009081526011602052604090205460ff16155b8015611fa657506001600160a01b03821660009081526011602052604090205460ff16155b1561225557600e54610100900460ff166120025760405162461bcd60e51b815260206004820152601c60248201527f42524f4b453a2074726164696e67206973206e6f7420616374697665000000006044820152606401610a61565b6000600c541180156120225750600d54600c5461201f9190612bb5565b43105b1561204b576001600160a01b0382166000908152601460205260409020805460ff191660011790555b6001600160a01b03831660009081526013602052604090205460ff16801561208c57506001600160a01b03821660009081526012602052604090205460ff16155b15612142576006548111156120f95760405162461bcd60e51b815260206004820152602d60248201527f42524f4b453a207472616e7366657220616d6f756e742065786365656473206d60448201526c185e08189d5e48185b5bdd5b9d609a1b6064820152608401610a61565b6008546001600160a01b03831660009081526020819052604090205461211f9083612bb5565b111561213d5760405162461bcd60e51b8152600401610a6190612c4a565b612255565b6001600160a01b03821660009081526013602052604090205460ff16801561218357506001600160a01b03831660009081526012602052604090205460ff16155b156121f15760075481111561213d5760405162461bcd60e51b815260206004820152602e60248201527f42524f4b453a207472616e7366657220616d6f756e742065786365656473206d60448201526d185e081cd95b1b08185b5bdd5b9d60921b6064820152608401610a61565b6001600160a01b03821660009081526012602052604090205460ff16612255576008546001600160a01b0383166000908152602081905260409020546122379083612bb5565b11156122555760405162461bcd60e51b8152600401610a6190612c4a565b30600090815260208190526040902054600a54811080159081906122815750600e5462010000900460ff165b8015612290575060095460ff16155b80156122b557506001600160a01b03851660009081526013602052604090205460ff16155b80156122da57506001600160a01b03851660009081526011602052604090205460ff16155b80156122ff57506001600160a01b03841660009081526011602052604090205460ff16155b15612324576009805460ff191660011790556123196124a1565b6009805460ff191690555b6001600160a01b038516600090815260116020526040812054819060ff1615801561236857506001600160a01b03861660009081526011602052604090205460ff16155b1561248d576000600c5411801561238d5750600d54600c5461238a9190612bb5565b43105b156123c957606461239f866062612b7c565b6123a99190612b93565b600b549091506123c49088906001600160a01b031683612542565b612465565b6001600160a01b03861660009081526013602052604090205460ff1680156123f357506000601054115b15612419576064601054866124089190612b7c565b6124129190612b93565b9150612465565b6001600160a01b03871660009081526013602052604090205460ff16801561244357506000600f54115b15612465576064600f54866124589190612b7c565b6124629190612b93565b91505b811561247657612476873084612542565b6124808183612bb5565b61248a9086612c92565b94505b612498878787612542565b50505050505050565b30600090815260208190526040812054908190036124bc5750565b600a80546124c991612b7c565b8111156124e057600a80546124dd91612b7c565b90505b6124e981612711565b600b546040516000916001600160a01b03169047908381818185875af1925050503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b5050505050565b6001600160a01b0383166125a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a61565b6001600160a01b0382166126085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a61565b6001600160a01b038316600090815260208190526040902054818110156126805760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a61565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906126b7908490612bb5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270391815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061274657612746612c1b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190612bfe565b816001815181106127fb576127fb612c1b565b60200260200101906001600160a01b031690816001600160a01b031681525050612846307f000000000000000000000000000000000000000000000000000000000000000084611cdd565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061289b908590600090869030904290600401612ca5565b600060405180830381600087803b1580156128b557600080fd5b505af11580156128c9573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156128fe578581018301518582016040015282016128e2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461150957600080fd5b6000806040838503121561294757600080fd5b82356129528161291f565b946020939093013593505050565b60006020828403121561297257600080fd5b813561297d8161291f565b9392505050565b60006020828403121561299657600080fd5b5035919050565b6000806000606084860312156129b257600080fd5b83356129bd8161291f565b925060208401356129cd8161291f565b929592945050506040919091013590565b801515811461150957600080fd5b600080604083850312156129ff57600080fd5b8235612952816129de565b60008060408385031215612a1d57600080fd5b8235612a288161291f565b91506020830135612a38816129de565b809150509250929050565b60008060408385031215612a5657600080fd5b8235612a618161291f565b91506020830135612a388161291f565b600080600060408486031215612a8657600080fd5b833567ffffffffffffffff80821115612a9e57600080fd5b818601915086601f830112612ab257600080fd5b813581811115612ac157600080fd5b8760208260051b8501011115612ad657600080fd5b60209283019550935050840135612aec816129de565b809150509250925092565b600181811c90821680612b0b57607f821691505b602082108103612b2b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a3157610a31612b66565b600082612bb057634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610a3157610a31612b66565b600060208284031215612bda57600080fd5b5051919050565b600060208284031215612bf357600080fd5b815161297d816129de565b600060208284031215612c1057600080fd5b815161297d8161291f565b634e487b7160e01b600052603260045260246000fd5b600060018201612c4357612c43612b66565b5060010190565b60208082526028908201527f42524f4b453a2062616c616e63652065786365656473206d61782077616c6c656040820152671d08185b5bdd5b9d60c21b606082015260800190565b81810381811115610a3157610a31612b66565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cf55784516001600160a01b031683529383019391830191600101612cd0565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204a657f9da1c1fe75a16bb65bdeda0dc9b7af838a66d6296fe663623ceefbc73564736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106102e85760003560e01c80638366e79a11610190578063c0a904a2116100dc578063e2f4560511610095578063f2fde38b1161006f578063f2fde38b1461092e578063f5648a4f1461094e578063fabb0b4f14610963578063faf216e31461097957600080fd5b8063e2f45605146108e2578063ed494189146108f8578063ee40166e1461091857600080fd5b8063c0a904a2146107fb578063c18bc1951461081b578063d257b34f1461083b578063dbf5b9161461085b578063dc3f0d0f1461087c578063dd62ed3e1461089c57600080fd5b80639e78fb4f11610149578063aa4bde2811610123578063aa4bde2814610776578063b62496f51461078c578063bbc0c742146107bc578063c0246668146107db57600080fd5b80639e78fb4f14610721578063a457c2d714610736578063a9059cbb1461075657600080fd5b80638366e79a1461067857806388e765ff146106985780638da5cb5b146106ae578063906e9dd0146106cc57806395d89b41146106ec5780639a7a23d61461070157600080fd5b8063467abe0a1161024f5780635e83ae761161020857806370a08231116101e257806370a08231146105f8578063715018a61461062e578063751039fc14610643578063819d38d21461065857600080fd5b80635e83ae76146105a257806366d602ae146105c25780636ddd1713146105d857600080fd5b8063467abe0a146104be57806347062402146104de57806349bd5a5e146104f45780634a62bb65146105285780634fbee193146105425780635cce86cd1461057257600080fd5b806323b872dd116102a157806323b872dd1461040c5780632b14ca561461042c5780632be32b6114610442578063313ce567146104625780633936e8b91461047e578063395093511461049e57600080fd5b806306fdde03146102f4578063095ea7b31461031f5780630f3a325f1461034f5780631694505e1461037f57806318160ddd146103cb5780631d933a4a146103ea57600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061030961098e565b60405161031691906128d1565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612934565b610a20565b6040519015158152602001610316565b34801561035b57600080fd5b5061033f61036a366004612960565b60146020526000908152604090205460ff1681565b34801561038b57600080fd5b506103b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610316565b3480156103d757600080fd5b506002545b604051908152602001610316565b3480156103f657600080fd5b5061040a610405366004612984565b610a37565b005b34801561041857600080fd5b5061033f61042736600461299d565b610b34565b34801561043857600080fd5b506103dc60105481565b34801561044e57600080fd5b5061040a61045d366004612984565b610bde565b34801561046e57600080fd5b5060405160128152602001610316565b34801561048a57600080fd5b50600b546103b3906001600160a01b031681565b3480156104aa57600080fd5b5061033f6104b9366004612934565b610cbf565b3480156104ca57600080fd5b5061040a6104d9366004612984565b610cfb565b3480156104ea57600080fd5b506103dc600f5481565b34801561050057600080fd5b506103b37f000000000000000000000000d09008e8fb805dbe794d074931676966f134e00f81565b34801561053457600080fd5b50600e5461033f9060ff1681565b34801561054e57600080fd5b5061033f61055d366004612960565b60116020526000908152604090205460ff1681565b34801561057e57600080fd5b5061033f61058d366004612960565b60126020526000908152604090205460ff1681565b3480156105ae57600080fd5b5061040a6105bd3660046129ec565b610d7b565b3480156105ce57600080fd5b506103dc60075481565b3480156105e457600080fd5b50600e5461033f9062010000900460ff1681565b34801561060457600080fd5b506103dc610613366004612960565b6001600160a01b031660009081526020819052604090205490565b34801561063a57600080fd5b5061040a610ea7565b34801561064f57600080fd5b5061040a610f1b565b34801561066457600080fd5b5061040a610673366004612a0a565b610f51565b34801561068457600080fd5b5061033f610693366004612a43565b611015565b3480156106a457600080fd5b506103dc60065481565b3480156106ba57600080fd5b506005546001600160a01b03166103b3565b3480156106d857600080fd5b5061040a6106e7366004612960565b611182565b3480156106f857600080fd5b5061030961123d565b34801561070d57600080fd5b5061040a61071c366004612a0a565b61124c565b34801561072d57600080fd5b5061040a61135b565b34801561074257600080fd5b5061033f610751366004612934565b61150c565b34801561076257600080fd5b5061033f610771366004612934565b6115a5565b34801561078257600080fd5b506103dc60085481565b34801561079857600080fd5b5061033f6107a7366004612960565b60136020526000908152604090205460ff1681565b3480156107c857600080fd5b50600e5461033f90610100900460ff1681565b3480156107e757600080fd5b5061040a6107f6366004612a0a565b6115b2565b34801561080757600080fd5b5061040a610816366004612a0a565b611607565b34801561082757600080fd5b5061040a610836366004612984565b6116f8565b34801561084757600080fd5b5061040a610856366004612984565b6117e0565b34801561086757600080fd5b50600e5461033f906301000000900460ff1681565b34801561088857600080fd5b5061040a610897366004612984565b611956565b3480156108a857600080fd5b506103dc6108b7366004612a43565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108ee57600080fd5b506103dc600a5481565b34801561090457600080fd5b5061040a610913366004612a71565b611a3e565b34801561092457600080fd5b506103dc600c5481565b34801561093a57600080fd5b5061040a610949366004612960565b611b4d565b34801561095a57600080fd5b5061040a611c38565b34801561096f57600080fd5b506103dc600d5481565b34801561098557600080fd5b5061040a611ca4565b60606003805461099d90612af7565b80601f01602080910402602001604051908101604052809291908181526020018280546109c990612af7565b8015610a165780601f106109eb57610100808354040283529160200191610a16565b820191906000526020600020905b8154815290600101906020018083116109f957829003601f168201915b5050505050905090565b6000610a2d338484611cdd565b5060015b92915050565b6005546001600160a01b03163314610a6a5760405162461bcd60e51b8152600401610a6190612b31565b60405180910390fd5b60056010541115610ae157601054811115610adc5760405162461bcd60e51b815260206004820152602c60248201527f42524f4b453a206e65772073656c6c206665652065786365656473206375727260448201526b656e742073656c6c2066656560a01b6064820152608401610a61565b601055565b60056010541115610adc5760405162461bcd60e51b815260206004820152601e60248201527f42524f4b453a206e65772073656c6c20666565206578636565647320352500006044820152606401610a61565b6000610b41848484611e01565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bc65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a61565b610bd38533858403611cdd565b506001949350505050565b6005546001600160a01b03163314610c085760405162461bcd60e51b8152600401610a6190612b31565b6064610c1360025490565b610c1e906001612b7c565b610c289190612b93565b610c3a82670de0b6b3a7640000612b7c565b1015610ca75760405162461bcd60e51b815260206004820152603660248201527f42524f4b453a206e6577206d61782062757920616d6f756e74206c657373207460448201527568616e203125206f6620746f74616c20737570706c7960501b6064820152608401610a61565b610cb981670de0b6b3a7640000612b7c565b60065550565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a2d918590610cf6908690612bb5565b611cdd565b6005546001600160a01b03163314610d255760405162461bcd60e51b8152600401610a6190612b31565b6005811115610d765760405162461bcd60e51b815260206004820152601d60248201527f42524f4b453a206e6577206275792066656520657863656564732035250000006044820152606401610a61565b600f55565b6005546001600160a01b03163314610da55760405162461bcd60e51b8152600401610a6190612b31565b600e54610100900460ff1615610dfd5760405162461bcd60e51b815260206004820181905260248201527f42524f4b453a2074726164696e6720697320616c7265616479206163746976656044820152606401610a61565b6005811115610e595760405162461bcd60e51b815260206004820152602260248201527f42524f4b453a2064656164626c6f636b7320616d6f756e742065786365656473604482015261203560f01b6064820152608401610a61565b600e80546201000062ffff0019909116610100851515810262ff0000191691909117919091179182905560ff9104168015610e945750600c54155b15610ea35743600c55600d8190555b5050565b6005546001600160a01b03163314610ed15760405162461bcd60e51b8152600401610a6190612b31565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610f455760405162461bcd60e51b8152600401610a6190612b31565b600e805460ff19169055565b6005546001600160a01b03163314610f7b5760405162461bcd60e51b8152600401610a6190612b31565b600e546301000000900460ff16610fea5760405162461bcd60e51b815260206004820152602d60248201527f42524f4b453a20736e69706572206d616e6167656d656e74207065726d616e6560448201526c1b9d1b1e48191a5cd8589b1959609a1b6064820152608401610a61565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6005546000906001600160a01b031633146110425760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b0383166110985760405162461bcd60e51b815260206004820181905260248201527f42524f4b453a20746f6b656e20697320746865207a65726f20616464726573736044820152606401610a61565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111039190612bc8565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117a9190612be1565b949350505050565b6005546001600160a01b031633146111ac5760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b03811661121b5760405162461bcd60e51b815260206004820152603060248201527f42524f4b453a206e6577206d61726b6574696e6720616464726573732069732060448201526f746865207a65726f206164647265737360801b6064820152608401610a61565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461099d90612af7565b6005546001600160a01b031633146112765760405162461bcd60e51b8152600401610a6190612b31565b8061131a577f000000000000000000000000d09008e8fb805dbe794d074931676966f134e00f6001600160a01b0316826001600160a01b03160361131a5760405162461bcd60e51b815260206004820152603560248201527f42524f4b453a206175746f6d61746564206d61726b6574206d616b657220706160448201527434b91034b9903ab734b9bbb0b8102b19103830b4b960591b6064820152608401610a61565b6001600160a01b0382166000908152601360209081526040808320805485151560ff1991821681179092556012909352922080549091169091179055610ea3565b6005546001600160a01b031633146113855760405162461bcd60e51b8152600401610a6190612b31565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114079190612bfe565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190612bfe565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156114e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190612bfe565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561158e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a61565b61159b3385858403611cdd565b5060019392505050565b6000610a2d338484611e01565b6005546001600160a01b031633146115dc5760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146116315760405162461bcd60e51b8152600401610a6190612b31565b806116ce577f000000000000000000000000d09008e8fb805dbe794d074931676966f134e00f6001600160a01b0316826001600160a01b0316036116ce5760405162461bcd60e51b815260206004820152602e60248201527f42524f4b453a206163636f756e7420746f20626520657873636c75646564206960448201526d732070616972206164647265737360901b6064820152608401610a61565b6001600160a01b0382166000908152601260205260409020805482151560ff199091161790555050565b6005546001600160a01b031633146117225760405162461bcd60e51b8152600401610a6190612b31565b606461172d60025490565b611738906002612b7c565b6117429190612b93565b61175482670de0b6b3a7640000612b7c565b10156117c85760405162461bcd60e51b815260206004820152603960248201527f42524f4b453a206e6577206d61782077616c6c657420616d6f756e74206c657360448201527f73207468616e203225206f6620746f74616c20737570706c79000000000000006064820152608401610a61565b6117da81670de0b6b3a7640000612b7c565b60085550565b6005546001600160a01b0316331461180a5760405162461bcd60e51b8152600401610a6190612b31565b620186a061181760025490565b611822906001612b7c565b61182c9190612b93565b61183e82670de0b6b3a7640000612b7c565b10156118b25760405162461bcd60e51b815260206004820152603760248201527f42524f4b453a206e6577207377617020616d6f756e74206c657373207468616e60448201527f20302e30303125206f6620746f74616c20737570706c790000000000000000006064820152608401610a61565b6103e86118be60025490565b6118c9906001612b7c565b6118d39190612b93565b81111561193e5760405162461bcd60e51b815260206004820152603360248201527f42524f4b453a206e6577205377617020616d6f756e74206578636565647320306044820152722e3125206f6620746f74616c20737570706c7960681b6064820152608401610a61565b61195081670de0b6b3a7640000612b7c565b600a5550565b6005546001600160a01b031633146119805760405162461bcd60e51b8152600401610a6190612b31565b606461198b60025490565b611996906001612b7c565b6119a09190612b93565b6119b282670de0b6b3a7640000612b7c565b1015611a265760405162461bcd60e51b815260206004820152603760248201527f42524f4b453a206e6577206d61782073656c6c20616d6f756e74206c6573732060448201527f7468616e203125206f6620746f74616c20737570706c790000000000000000006064820152608401610a61565b611a3881670de0b6b3a7640000612b7c565b60075550565b6005546001600160a01b03163314611a685760405162461bcd60e51b8152600401610a6190612b31565b600e546301000000900460ff16611ad85760405162461bcd60e51b815260206004820152602e60248201527f42524f4b453a20736e6970657273206d616e6167656d656e74207065726d616e60448201526d195b9d1b1e48191a5cd8589b195960921b6064820152608401610a61565b60005b82811015611b47578160146000868685818110611afa57611afa612c1b565b9050602002016020810190611b0f9190612960565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b4081612c31565b9050611adb565b50505050565b6005546001600160a01b03163314611b775760405162461bcd60e51b8152600401610a6190612b31565b6001600160a01b038116611bdc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a61565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611c625760405162461bcd60e51b8152600401610a6190612b31565b604051600090339047908381818185875af1925050503d8060008114611b47576040519150601f19603f3d011682016040523d82523d6000602084013e611b47565b6005546001600160a01b03163314611cce5760405162461bcd60e51b8152600401610a6190612b31565b600e805463ff00000019169055565b6001600160a01b038316611d3f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a61565b6001600160a01b038216611da05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a61565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111611e495760405162461bcd60e51b815260206004820152601560248201527442524f4b453a20616d6f756e74206973207a65726f60581b6044820152606401610a61565b6001600160a01b03831660009081526014602052604090205460ff1615611eb25760405162461bcd60e51b815260206004820152601e60248201527f42524f4b453a2073656e646572206d61726b656420617320736e6970657200006044820152606401610a61565b6001600160a01b03821660009081526014602052604090205460ff1615611f255760405162461bcd60e51b815260206004820152602160248201527f42524f4b453a20726563697069656e74206d61726b656420617320736e6970656044820152603960f91b6064820152608401610a61565b600e5460ff1615612255576005546001600160a01b03848116911614801590611f5c57506005546001600160a01b03838116911614155b8015611f8157506001600160a01b03831660009081526011602052604090205460ff16155b8015611fa657506001600160a01b03821660009081526011602052604090205460ff16155b1561225557600e54610100900460ff166120025760405162461bcd60e51b815260206004820152601c60248201527f42524f4b453a2074726164696e67206973206e6f7420616374697665000000006044820152606401610a61565b6000600c541180156120225750600d54600c5461201f9190612bb5565b43105b1561204b576001600160a01b0382166000908152601460205260409020805460ff191660011790555b6001600160a01b03831660009081526013602052604090205460ff16801561208c57506001600160a01b03821660009081526012602052604090205460ff16155b15612142576006548111156120f95760405162461bcd60e51b815260206004820152602d60248201527f42524f4b453a207472616e7366657220616d6f756e742065786365656473206d60448201526c185e08189d5e48185b5bdd5b9d609a1b6064820152608401610a61565b6008546001600160a01b03831660009081526020819052604090205461211f9083612bb5565b111561213d5760405162461bcd60e51b8152600401610a6190612c4a565b612255565b6001600160a01b03821660009081526013602052604090205460ff16801561218357506001600160a01b03831660009081526012602052604090205460ff16155b156121f15760075481111561213d5760405162461bcd60e51b815260206004820152602e60248201527f42524f4b453a207472616e7366657220616d6f756e742065786365656473206d60448201526d185e081cd95b1b08185b5bdd5b9d60921b6064820152608401610a61565b6001600160a01b03821660009081526012602052604090205460ff16612255576008546001600160a01b0383166000908152602081905260409020546122379083612bb5565b11156122555760405162461bcd60e51b8152600401610a6190612c4a565b30600090815260208190526040902054600a54811080159081906122815750600e5462010000900460ff165b8015612290575060095460ff16155b80156122b557506001600160a01b03851660009081526013602052604090205460ff16155b80156122da57506001600160a01b03851660009081526011602052604090205460ff16155b80156122ff57506001600160a01b03841660009081526011602052604090205460ff16155b15612324576009805460ff191660011790556123196124a1565b6009805460ff191690555b6001600160a01b038516600090815260116020526040812054819060ff1615801561236857506001600160a01b03861660009081526011602052604090205460ff16155b1561248d576000600c5411801561238d5750600d54600c5461238a9190612bb5565b43105b156123c957606461239f866062612b7c565b6123a99190612b93565b600b549091506123c49088906001600160a01b031683612542565b612465565b6001600160a01b03861660009081526013602052604090205460ff1680156123f357506000601054115b15612419576064601054866124089190612b7c565b6124129190612b93565b9150612465565b6001600160a01b03871660009081526013602052604090205460ff16801561244357506000600f54115b15612465576064600f54866124589190612b7c565b6124629190612b93565b91505b811561247657612476873084612542565b6124808183612bb5565b61248a9086612c92565b94505b612498878787612542565b50505050505050565b30600090815260208190526040812054908190036124bc5750565b600a80546124c991612b7c565b8111156124e057600a80546124dd91612b7c565b90505b6124e981612711565b600b546040516000916001600160a01b03169047908381818185875af1925050503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b5050505050565b6001600160a01b0383166125a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a61565b6001600160a01b0382166126085760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a61565b6001600160a01b038316600090815260208190526040902054818110156126805760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a61565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906126b7908490612bb5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270391815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061274657612746612c1b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190612bfe565b816001815181106127fb576127fb612c1b565b60200260200101906001600160a01b031690816001600160a01b031681525050612846307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611cdd565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061289b908590600090869030904290600401612ca5565b600060405180830381600087803b1580156128b557600080fd5b505af11580156128c9573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156128fe578581018301518582016040015282016128e2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461150957600080fd5b6000806040838503121561294757600080fd5b82356129528161291f565b946020939093013593505050565b60006020828403121561297257600080fd5b813561297d8161291f565b9392505050565b60006020828403121561299657600080fd5b5035919050565b6000806000606084860312156129b257600080fd5b83356129bd8161291f565b925060208401356129cd8161291f565b929592945050506040919091013590565b801515811461150957600080fd5b600080604083850312156129ff57600080fd5b8235612952816129de565b60008060408385031215612a1d57600080fd5b8235612a288161291f565b91506020830135612a38816129de565b809150509250929050565b60008060408385031215612a5657600080fd5b8235612a618161291f565b91506020830135612a388161291f565b600080600060408486031215612a8657600080fd5b833567ffffffffffffffff80821115612a9e57600080fd5b818601915086601f830112612ab257600080fd5b813581811115612ac157600080fd5b8760208260051b8501011115612ad657600080fd5b60209283019550935050840135612aec816129de565b809150509250925092565b600181811c90821680612b0b57607f821691505b602082108103612b2b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a3157610a31612b66565b600082612bb057634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610a3157610a31612b66565b600060208284031215612bda57600080fd5b5051919050565b600060208284031215612bf357600080fd5b815161297d816129de565b600060208284031215612c1057600080fd5b815161297d8161291f565b634e487b7160e01b600052603260045260246000fd5b600060018201612c4357612c43612b66565b5060010190565b60208082526028908201527f42524f4b453a2062616c616e63652065786365656473206d61782077616c6c656040820152671d08185b5bdd5b9d60c21b606082015260800190565b81810381811115610a3157610a31612b66565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612cf55784516001600160a01b031683529383019391830191600101612cd0565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204a657f9da1c1fe75a16bb65bdeda0dc9b7af838a66d6296fe663623ceefbc73564736f6c63430008130033

Deployed Bytecode Sourcemap

17469:11014:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12187:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13101:169;;;;;;;;;;-1:-1:-1;13101:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;13101:169:0;1023:187:1;18334:41:0;;;;;;;;;;-1:-1:-1;18334:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17630:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:32:1;;;1631:51;;1619:2;1604:18;17630:43:0;1467:221:1;12508:108:0;;;;;;;;;;-1:-1:-1;12596:12:0;;12508:108;;;1839:25:1;;;1827:2;1812:18;12508:108:0;1693:177:1;21922:321:0;;;;;;;;;;-1:-1:-1;21922:321:0;;;;;:::i;:::-;;:::i;:::-;;13278:480;;;;;;;;;;-1:-1:-1;13278:480:0;;;;;:::i;:::-;;:::i;18120:22::-;;;;;;;;;;;;;;;;20110:239;;;;;;;;;;-1:-1:-1;20110:239:0;;;;;:::i;:::-;;:::i;12407:93::-;;;;;;;;;;-1:-1:-1;12407:93:0;;12490:2;2663:36:1;;2651:2;2636:18;12407:93:0;2521:184:1;17798:31:0;;;;;;;;;;-1:-1:-1;17798:31:0;;;;-1:-1:-1;;;;;17798:31:0;;;13766:215;;;;;;;;;;-1:-1:-1;13766:215:0;;;;;:::i;:::-;;:::i;21750:164::-;;;;;;;;;;-1:-1:-1;21750:164:0;;;;;:::i;:::-;;:::i;18090:21::-;;;;;;;;;;;;;;;;17680:38;;;;;;;;;;;;;;;17921:33;;;;;;;;;;-1:-1:-1;17921:33:0;;;;;;;;18151:51;;;;;;;;;;-1:-1:-1;18151:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18209:53;;;;;;;;;;-1:-1:-1;18209:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26138:449;;;;;;;;;;-1:-1:-1;26138:449:0;;;;;:::i;:::-;;:::i;17556:28::-;;;;;;;;;;;;;;;;18001:31;;;;;;;;;;-1:-1:-1;18001:31:0;;;;;;;;;;;12624:127;;;;;;;;;;-1:-1:-1;12624:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;12725:18:0;12698:7;12725:18;;;;;;;;;;;;12624:127;16228:150;;;;;;;;;;;;;:::i;21236:84::-;;;;;;;;;;;;;:::i;26851:220::-;;;;;;;;;;-1:-1:-1;26851:220:0;;;;;:::i;:::-;;:::i;27998:312::-;;;;;;;;;;-1:-1:-1;27998:312:0;;;;;:::i;:::-;;:::i;17522:27::-;;;;;;;;;;;;;;;;16014:79;;;;;;;;;;-1:-1:-1;16079:6:0;;-1:-1:-1;;;;;16079:6:0;16014:79;;26595:248;;;;;;;;;;-1:-1:-1;26595:248:0;;;;;:::i;:::-;;:::i;12295:104::-;;;;;;;;;;;;;:::i;25627:277::-;;;;;;;;;;-1:-1:-1;25627:277:0;;;;;:::i;:::-;;:::i;19954:148::-;;;;;;;;;;;;;:::i;13989:401::-;;;;;;;;;;-1:-1:-1;13989:401:0;;;;;:::i;:::-;;:::i;12759:175::-;;;;;;;;;;-1:-1:-1;12759:175:0;;;;;:::i;:::-;;:::i;17591:30::-;;;;;;;;;;;;;;;;18269:58;;;;;;;;;;-1:-1:-1;18269:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17961:33;;;;;;;;;;-1:-1:-1;17961:33:0;;;;;;;;;;;22251:135;;;;;;;;;;-1:-1:-1;22251:135:0;;;;;:::i;:::-;;:::i;21467:275::-;;;;;;;;;;-1:-1:-1;21467:275:0;;;;;:::i;:::-;;:::i;20607:248::-;;;;;;;;;;-1:-1:-1;20607:248:0;;;;;:::i;:::-;;:::i;20863:365::-;;;;;;;;;;-1:-1:-1;20863:365:0;;;;;:::i;:::-;;:::i;18039:42::-;;;;;;;;;;-1:-1:-1;18039:42:0;;;;;;;;;;;20357:242;;;;;;;;;;-1:-1:-1;20357:242:0;;;;;:::i;:::-;;:::i;12942:151::-;;;;;;;;;;-1:-1:-1;12942:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;13058:18:0;;;13031:7;13058:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12942:151;17756:33;;;;;;;;;;;;;;;;27079:297;;;;;;;;;;-1:-1:-1;27079:297:0;;;;;:::i;:::-;;:::i;17838:37::-;;;;;;;;;;;;;;;;16386:244;;;;;;;;;;-1:-1:-1;16386:244:0;;;;;:::i;:::-;;:::i;28318:160::-;;;;;;;;;;;;;:::i;17883:29::-;;;;;;;;;;;;;;;;27430:104;;;;;;;;;;;;;:::i;12187:100::-;12241:13;12274:5;12267:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12187:100;:::o;13101:169::-;13184:4;13201:39;11638:10;13224:7;13233:6;13201:8;:39::i;:::-;-1:-1:-1;13258:4:0;13101:169;;;;;:::o;21922:321::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;;;;;;;;;22009:1:::1;21999:7;;:11;21995:210;;;22049:7;;22035:10;:21;;22027:78;;;::::0;-1:-1:-1;;;22027:78:0;;5838:2:1;22027:78:0::1;::::0;::::1;5820:21:1::0;5877:2;5857:18;;;5850:30;5916:34;5896:18;;;5889:62;-1:-1:-1;;;5967:18:1;;;5960:42;6019:19;;22027:78:0::1;5636:408:1::0;22027:78:0::1;22215:7;:20:::0;21922:321::o;21995:210::-:1;22157:1;22146:7;;:12;;22138:55;;;::::0;-1:-1:-1;;;22138:55:0;;6251:2:1;22138:55:0::1;::::0;::::1;6233:21:1::0;6290:2;6270:18;;;6263:30;6329:32;6309:18;;;6302:60;6379:18;;22138:55:0::1;6049:354:1::0;13278:480:0;13418:4;13435:36;13445:6;13453:9;13464:6;13435:9;:36::i;:::-;-1:-1:-1;;;;;13511:19:0;;13484:24;13511:19;;;:11;:19;;;;;;;;11638:10;13511:33;;;;;;;;13563:26;;;;13555:79;;;;-1:-1:-1;;;13555:79:0;;6610:2:1;13555:79:0;;;6592:21:1;6649:2;6629:18;;;6622:30;6688:34;6668:18;;;6661:62;-1:-1:-1;;;6739:18:1;;;6732:38;6787:19;;13555:79:0;6408:404:1;13555:79:0;13662:57;13671:6;11638:10;13712:6;13693:16;:25;13662:8;:57::i;:::-;-1:-1:-1;13746:4:0;;13278:480;-1:-1:-1;;;;13278:480:0:o;20110:239::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;20236:3:::1;20216:13;12596:12:::0;;;12508:108;20216:13:::1;:17;::::0;20232:1:::1;20216:17;:::i;:::-;:23;;;;:::i;:::-;20195:16;:9:::0;20207:4:::1;20195:16;:::i;:::-;:45;;20187:112;;;::::0;-1:-1:-1;;;20187:112:0;;7546:2:1;20187:112:0::1;::::0;::::1;7528:21:1::0;7585:2;7565:18;;;7558:30;7624:34;7604:18;;;7597:62;-1:-1:-1;;;7675:18:1;;;7668:52;7737:19;;20187:112:0::1;7344:418:1::0;20187:112:0::1;20325:16;:9:::0;20337:4:::1;20325:16;:::i;:::-;20310:12;:31:::0;-1:-1:-1;20110:239:0:o;13766:215::-;11638:10;13854:4;13903:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13903:34:0;;;;;;;;;;13854:4;;13871:80;;13894:7;;13903:47;;13940:10;;13903:47;:::i;:::-;13871:8;:80::i;21750:164::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;21842:1:::1;21829:9;:14;;21821:56;;;::::0;-1:-1:-1;;;21821:56:0;;8099:2:1;21821:56:0::1;::::0;::::1;8081:21:1::0;8138:2;8118:18;;;8111:30;8177:31;8157:18;;;8150:59;8226:18;;21821:56:0::1;7897:353:1::0;21821:56:0::1;21888:6;:18:::0;21750:164::o;26138:449::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;26235:13:::1;::::0;::::1;::::0;::::1;;;26234:14;26226:59;;;::::0;-1:-1:-1;;;26226:59:0;;8457:2:1;26226:59:0::1;::::0;::::1;8439:21:1::0;;;8476:18;;;8469:30;8535:34;8515:18;;;8508:62;8587:18;;26226:59:0::1;8255:356:1::0;26226:59:0::1;26319:1;26304:11;:16;;26296:63;;;::::0;-1:-1:-1;;;26296:63:0;;8818:2:1;26296:63:0::1;::::0;::::1;8800:21:1::0;8857:2;8837:18;;;8830:30;8896:34;8876:18;;;8869:62;-1:-1:-1;;;8947:18:1;;;8940:32;8989:19;;26296:63:0::1;8616:398:1::0;26296:63:0::1;26370:13;:23:::0;;26404:18;-1:-1:-1;;26404:18:0;;;26370:23:::1;::::0;::::1;;::::0;::::1;-1:-1:-1::0;;26404:18:0;;;;;;;;::::1;::::0;;;;26370:23:::1;26439:13:::0;::::1;;:40:::0;::::1;;;-1:-1:-1::0;26456:18:0::1;::::0;:23;26439:40:::1;26435:145;;;26517:12;26496:18;:33:::0;26544:10:::1;:24:::0;;;26435:145:::1;26138:449:::0;;:::o;16228:150::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;16321:6:::1;::::0;16300:40:::1;::::0;16337:1:::1;::::0;-1:-1:-1;;;;;16321:6:0::1;::::0;16300:40:::1;::::0;16337:1;;16300:40:::1;16351:6;:19:::0;;-1:-1:-1;;;;;;16351:19:0::1;::::0;;16228:150::o;21236:84::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;21290:14:::1;:22:::0;;-1:-1:-1;;21290:22:0::1;::::0;;21236:84::o;26851:220::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;26947:23:::1;::::0;;;::::1;;;26939:81;;;::::0;-1:-1:-1;;;26939:81:0;;9221:2:1;26939:81:0::1;::::0;::::1;9203:21:1::0;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:43;9403:19;;26939:81:0::1;9019:409:1::0;26939:81:0::1;-1:-1:-1::0;;;;;27031:23:0;;;::::1;;::::0;;;:8:::1;:23;::::0;;;;:32;;-1:-1:-1;;27031:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26851:220::o;27998:312::-;16141:6;;28083:4;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28108:19:0;::::1;28100:64;;;::::0;-1:-1:-1;;;28100:64:0;;9635:2:1;28100:64:0::1;::::0;::::1;9617:21:1::0;;;9654:18;;;9647:30;9713:34;9693:18;;;9686:62;9765:18;;28100:64:0::1;9433:356:1::0;28100:64:0::1;28202:38;::::0;-1:-1:-1;;;28202:38:0;;28234:4:::1;28202:38;::::0;::::1;1631:51:1::0;28175:24:0::1;::::0;-1:-1:-1;;;;;28202:23:0;::::1;::::0;::::1;::::0;1604:18:1;;28202:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28258:44;::::0;-1:-1:-1;;;28258:44:0;;-1:-1:-1;;;;;10175:32:1;;;28258:44:0::1;::::0;::::1;10157:51:1::0;10224:18;;;10217:34;;;28175:65:0;;-1:-1:-1;28258:22:0;;::::1;::::0;::::1;::::0;10130:18:1;;28258:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28251:51:::0;27998:312;-1:-1:-1;;;;27998:312:0:o;26595:248::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26691:33:0;::::1;26683:94;;;::::0;-1:-1:-1;;;26683:94:0;;10714:2:1;26683:94:0::1;::::0;::::1;10696:21:1::0;10753:2;10733:18;;;10726:30;10792:34;10772:18;;;10765:62;-1:-1:-1;;;10843:18:1;;;10836:46;10899:19;;26683:94:0::1;10512:412:1::0;26683:94:0::1;26788:16;:47:::0;;-1:-1:-1;;;;;;26788:47:0::1;-1:-1:-1::0;;;;;26788:47:0;;;::::1;::::0;;;::::1;::::0;;26595:248::o;12295:104::-;12351:13;12384:7;12377:14;;;;;:::i;25627:277::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;25724:5:::1;25720:125;;25762:13;-1:-1:-1::0;;;;;25754:21:0::1;:4;-1:-1:-1::0;;;;;25754:21:0::1;::::0;25746:87:::1;;;::::0;-1:-1:-1;;;25746:87:0;;11131:2:1;25746:87:0::1;::::0;::::1;11113:21:1::0;11170:2;11150:18;;;11143:30;11209:34;11189:18;;;11182:62;-1:-1:-1;;;11260:18:1;;;11253:51;11321:19;;25746:87:0::1;10929:417:1::0;25746:87:0::1;-1:-1:-1::0;;;;;25995:31:0;;;;;;:25;:31;;;;;;;;:39;;;;;-1:-1:-1;;25995:39:0;;;;;;;;21409:20;:29;;;;;:42;;;;;;;;;;25855:41:::1;26138:449::o:0;19954:148::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;20018:15:::1;-1:-1:-1::0;;;;;20018:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20006:49:0::1;;20064:4;20071:15;-1:-1:-1::0;;;;;20071:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20006:88;::::0;-1:-1:-1;;;;;;20006:88:0::1;::::0;;;;;;-1:-1:-1;;;;;11837:15:1;;;20006:88:0::1;::::0;::::1;11819:34:1::0;11889:15;;11869:18;;;11862:43;11754:18;;20006:88:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19954:148::o:0;13989:401::-;11638:10;14082:4;14126:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14126:34:0;;;;;;;;;;14179:35;;;;14171:85;;;;-1:-1:-1;;;14171:85:0;;12118:2:1;14171:85:0;;;12100:21:1;12157:2;12137:18;;;12130:30;12196:34;12176:18;;;12169:62;-1:-1:-1;;;12247:18:1;;;12240:35;12292:19;;14171:85:0;11916:401:1;14171:85:0;14284:67;11638:10;14307:7;14335:15;14316:16;:34;14284:8;:67::i;:::-;-1:-1:-1;14378:4:0;;13989:401;-1:-1:-1;;;13989:401:0:o;12759:175::-;12845:4;12862:42;11638:10;12886:9;12897:6;12862:9;:42::i;22251:135::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22338:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:40;;-1:-1:-1;;22338:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22251:135::o;21467:275::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;21563:10:::1;21558:127;;21609:13;-1:-1:-1::0;;;;;21598:24:0::1;:7;-1:-1:-1::0;;;;;21598:24:0::1;::::0;21590:83:::1;;;::::0;-1:-1:-1;;;21590:83:0;;12524:2:1;21590:83:0::1;::::0;::::1;12506:21:1::0;12563:2;12543:18;;;12536:30;12602:34;12582:18;;;12575:62;-1:-1:-1;;;12653:18:1;;;12646:44;12707:19;;21590:83:0::1;12322:410:1::0;21590:83:0::1;-1:-1:-1::0;;;;;21409:29:0;;;;;;:20;:29;;;;;:42;;;;;-1:-1:-1;;21409:42:0;;;;;;26138:449;;:::o;20607:248::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;20736:3:::1;20716:13;12596:12:::0;;;12508:108;20716:13:::1;:17;::::0;20732:1:::1;20716:17;:::i;:::-;:23;;;;:::i;:::-;20695:16;:9:::0;20707:4:::1;20695:16;:::i;:::-;:45;;20687:115;;;::::0;-1:-1:-1;;;20687:115:0;;12939:2:1;20687:115:0::1;::::0;::::1;12921:21:1::0;12978:2;12958:18;;;12951:30;13017:34;12997:18;;;12990:62;13088:27;13068:18;;;13061:55;13133:19;;20687:115:0::1;12737:421:1::0;20687:115:0::1;20831:16;:9:::0;20843:4:::1;20831:16;:::i;:::-;20813:15;:34:::0;-1:-1:-1;20607:248:0:o;20863:365::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;20994:6:::1;20974:13;12596:12:::0;;;12508:108;20974:13:::1;:17;::::0;20990:1:::1;20974:17;:::i;:::-;:26;;;;:::i;:::-;20954:16;:9:::0;20966:4:::1;20954:16;:::i;:::-;:46;;20946:114;;;::::0;-1:-1:-1;;;20946:114:0;;13365:2:1;20946:114:0::1;::::0;::::1;13347:21:1::0;13404:2;13384:18;;;13377:30;13443:34;13423:18;;;13416:62;13514:25;13494:18;;;13487:53;13557:19;;20946:114:0::1;13163:419:1::0;20946:114:0::1;21112:4;21092:13;12596:12:::0;;;12508:108;21092:13:::1;:17;::::0;21108:1:::1;21092:17;:::i;:::-;:24;;;;:::i;:::-;21079:9;:37;;21071:101;;;::::0;-1:-1:-1;;;21071:101:0;;13789:2:1;21071:101:0::1;::::0;::::1;13771:21:1::0;13828:2;13808:18;;;13801:30;13867:34;13847:18;;;13840:62;-1:-1:-1;;;13918:18:1;;;13911:49;13977:19;;21071:101:0::1;13587:415:1::0;21071:101:0::1;21204:16;:9:::0;21216:4:::1;21204:16;:::i;:::-;21183:18;:37:::0;-1:-1:-1;20863:365:0:o;20357:242::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;20484:3:::1;20464:13;12596:12:::0;;;12508:108;20464:13:::1;:17;::::0;20480:1:::1;20464:17;:::i;:::-;:23;;;;:::i;:::-;20443:16;:9:::0;20455:4:::1;20443:16;:::i;:::-;:45;;20435:113;;;::::0;-1:-1:-1;;;20435:113:0;;14209:2:1;20435:113:0::1;::::0;::::1;14191:21:1::0;14248:2;14228:18;;;14221:30;14287:34;14267:18;;;14260:62;14358:25;14338:18;;;14331:53;14401:19;;20435:113:0::1;14007:419:1::0;20435:113:0::1;20575:16;:9:::0;20587:4:::1;20575:16;:::i;:::-;20559:13;:32:::0;-1:-1:-1;20357:242:0:o;27079:297::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;27183:23:::1;::::0;;;::::1;;;27175:82;;;::::0;-1:-1:-1;;;27175:82:0;;14633:2:1;27175:82:0::1;::::0;::::1;14615:21:1::0;14672:2;14652:18;;;14645:30;14711:34;14691:18;;;14684:62;-1:-1:-1;;;14762:18:1;;;14755:44;14816:19;;27175:82:0::1;14431:410:1::0;27175:82:0::1;27273:9;27268:101;27284:20:::0;;::::1;27268:101;;;27351:6;27326:8;:22;27335:9;;27345:1;27335:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27326:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;27326:22:0;:31;;-1:-1:-1;;27326:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27306:3:::1;::::0;::::1;:::i;:::-;;;27268:101;;;;27079:297:::0;;;:::o;16386:244::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16475:22:0;::::1;16467:73;;;::::0;-1:-1:-1;;;16467:73:0;;15320:2:1;16467:73:0::1;::::0;::::1;15302:21:1::0;15359:2;15339:18;;;15332:30;15398:34;15378:18;;;15371:62;-1:-1:-1;;;15449:18:1;;;15442:36;15495:19;;16467:73:0::1;15118:402:1::0;16467:73:0::1;16577:6;::::0;16556:38:::1;::::0;-1:-1:-1;;;;;16556:38:0;;::::1;::::0;16577:6:::1;::::0;16556:38:::1;::::0;16577:6:::1;::::0;16556:38:::1;16605:6;:17:::0;;-1:-1:-1;;;;;;16605:17:0::1;-1:-1:-1::0;;;;;16605:17:0;;;::::1;::::0;;;::::1;::::0;;16386:244::o;28318:160::-;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;28412:58:::1;::::0;28376:12:::1;::::0;28420:10:::1;::::0;28444:21:::1;::::0;28376:12;28412:58;28376:12;28412:58;28444:21;28420:10;28412:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27430:104:::0;16141:6;;-1:-1:-1;;;;;16141:6:0;11638:10;16141:22;16133:67;;;;-1:-1:-1;;;16133:67:0;;;;;;;:::i;:::-;27495:23:::1;:31:::0;;-1:-1:-1;;27495:31:0::1;::::0;;27430:104::o;15307:380::-;-1:-1:-1;;;;;15443:19:0;;15435:68;;;;-1:-1:-1;;;15435:68:0;;15937:2:1;15435:68:0;;;15919:21:1;15976:2;15956:18;;;15949:30;16015:34;15995:18;;;15988:62;-1:-1:-1;;;16066:18:1;;;16059:34;16110:19;;15435:68:0;15735:400:1;15435:68:0;-1:-1:-1;;;;;15522:21:0;;15514:68;;;;-1:-1:-1;;;15514:68:0;;16342:2:1;15514:68:0;;;16324:21:1;16381:2;16361:18;;;16354:30;16420:34;16400:18;;;16393:62;-1:-1:-1;;;16471:18:1;;;16464:32;16513:19;;15514:68:0;16140:398:1;15514:68:0;-1:-1:-1;;;;;15595:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15647:32;;1839:25:1;;;15647:32:0;;1812:18:1;15647:32:0;;;;;;;15307:380;;;:::o;22394:2745::-;22501:1;22492:6;:10;22484:44;;;;-1:-1:-1;;;22484:44:0;;16745:2:1;22484:44:0;;;16727:21:1;16784:2;16764:18;;;16757:30;-1:-1:-1;;;16803:18:1;;;16796:51;16864:18;;22484:44:0;16543:345:1;22484:44:0;-1:-1:-1;;;;;22548:14:0;;;;;;:8;:14;;;;;;;;22547:15;22539:58;;;;-1:-1:-1;;;22539:58:0;;17095:2:1;22539:58:0;;;17077:21:1;17134:2;17114:18;;;17107:30;17173:32;17153:18;;;17146:60;17223:18;;22539:58:0;16893:354:1;22539:58:0;-1:-1:-1;;;;;22617:12:0;;;;;;:8;:12;;;;;;;;22616:13;22608:59;;;;-1:-1:-1;;;22608:59:0;;17454:2:1;22608:59:0;;;17436:21:1;17493:2;17473:18;;;17466:30;17532:34;17512:18;;;17505:62;-1:-1:-1;;;17583:18:1;;;17576:31;17624:19;;22608:59:0;17252:397:1;22608:59:0;22685:14;;;;22681:1168;;;16079:6;;-1:-1:-1;;;;;22720:15:0;;;16079:6;;22720:15;;;;:32;;-1:-1:-1;16079:6:0;;-1:-1:-1;;;;;22739:13:0;;;16079:6;;22739:13;;22720:32;:61;;;;-1:-1:-1;;;;;;22757:24:0;;;;;;:18;:24;;;;;;;;22756:25;22720:61;:88;;;;-1:-1:-1;;;;;;22786:22:0;;;;;;:18;:22;;;;;;;;22785:23;22720:88;22716:1122;;;22837:13;;;;;;;22829:54;;;;-1:-1:-1;;;22829:54:0;;17856:2:1;22829:54:0;;;17838:21:1;17895:2;17875:18;;;17868:30;17934;17914:18;;;17907:58;17982:18;;22829:54:0;17654:352:1;22829:54:0;22927:1;22906:18;;:22;:74;;;;;22969:10;;22948:18;;:31;;;;:::i;:::-;22932:12;:48;22906:74;22902:143;;;-1:-1:-1;;;;;23006:12:0;;;;;;:8;:12;;;;;:19;;-1:-1:-1;;23006:19:0;23021:4;23006:19;;;22902:143;-1:-1:-1;;;;;23091:31:0;;;;;;:25;:31;;;;;;;;:60;;;;-1:-1:-1;;;;;;23127:24:0;;;;;;:20;:24;;;;;;;;23126:25;23091:60;23087:736;;;23194:12;;23184:6;:22;;23176:80;;;;-1:-1:-1;;;23176:80:0;;18213:2:1;23176:80:0;;;18195:21:1;18252:2;18232:18;;;18225:30;18291:34;18271:18;;;18264:62;-1:-1:-1;;;18342:18:1;;;18335:43;18395:19;;23176:80:0;18011:409:1;23176:80:0;23313:15;;-1:-1:-1;;;;;12725:18:0;;12698:7;12725:18;;;;;;;;;;;23287:22;;:6;:22;:::i;:::-;:41;;23279:94;;;;-1:-1:-1;;;23279:94:0;;;;;;;:::i;:::-;23087:736;;;-1:-1:-1;;;;;23445:29:0;;;;;;:25;:29;;;;;;;;:60;;;;-1:-1:-1;;;;;;23479:26:0;;;;;;:20;:26;;;;;;;;23478:27;23445:60;23441:382;;;23548:13;;23538:6;:23;;23530:82;;;;-1:-1:-1;;;23530:82:0;;19036:2:1;23530:82:0;;;19018:21:1;19075:2;19055:18;;;19048:30;19114:34;19094:18;;;19087:62;-1:-1:-1;;;19165:18:1;;;19158:44;19219:19;;23530:82:0;18834:410:1;23441:382:0;-1:-1:-1;;;;;23660:24:0;;;;;;:20;:24;;;;;;;;23655:168;;23743:15;;-1:-1:-1;;;;;12725:18:0;;12698:7;12725:18;;;;;;;;;;;23717:22;;:6;:22;:::i;:::-;:41;;23709:94;;;;-1:-1:-1;;;23709:94:0;;;;;;;:::i;:::-;23910:4;23861:28;12725:18;;;;;;;;;;;23966;;23942:42;;;;;;;23998:22;;-1:-1:-1;24009:11:0;;;;;;;23998:22;:36;;;;-1:-1:-1;24025:9:0;;;;24024:10;23998:36;:72;;;;-1:-1:-1;;;;;;24039:31:0;;;;;;:25;:31;;;;;;;;24038:32;23998:72;:101;;;;-1:-1:-1;;;;;;24075:24:0;;;;;;:18;:24;;;;;;;;24074:25;23998:101;:128;;;;-1:-1:-1;;;;;;24104:22:0;;;;;;:18;:22;;;;;;;;24103:23;23998:128;23995:234;;;24143:9;:16;;-1:-1:-1;;24143:16:0;24155:4;24143:16;;;24174:11;:9;:11::i;:::-;24200:9;:17;;-1:-1:-1;;24200:17:0;;;23995:234;-1:-1:-1;;;;;24307:24:0;;24241:11;24307:24;;;:18;:24;;;;;;24241:11;;24307:24;;24306:25;:52;;;;-1:-1:-1;;;;;;24336:22:0;;;;;;:18;:22;;;;;;;;24335:23;24306:52;24303:783;;;24430:1;24409:18;;:22;:74;;;;;24472:10;;24451:18;;:31;;;;:::i;:::-;24435:12;:48;24409:74;24405:525;;;24535:3;24521:11;:6;24530:2;24521:11;:::i;:::-;:17;;;;:::i;:::-;24579:16;;24505:33;;-1:-1:-1;24557:54:0;;24573:4;;-1:-1:-1;;;;;24579:16:0;24505:33;24557:15;:54::i;:::-;24405:525;;;-1:-1:-1;;;;;24671:29:0;;;;;;:25;:29;;;;;;;;:44;;;;;24714:1;24704:7;;:11;24671:44;24667:263;;;24760:3;24750:7;;24741:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;24735:28;;24667:263;;;-1:-1:-1;;;;;24821:31:0;;;;;;:25;:31;;;;;;;;:45;;;;;24865:1;24856:6;;:10;24821:45;24818:112;;;24911:3;24902:6;;24893;:15;;;;:::i;:::-;:21;;;;:::i;:::-;24887:27;;24818:112;24947:7;;24944:87;;24974:41;24990:4;25004;25011:3;24974:15;:41::i;:::-;25055:19;25061:13;25055:3;:19;:::i;:::-;25045:29;;;;:::i;:::-;;;24303:783;25098:33;25114:4;25120:2;25124:6;25098:15;:33::i;:::-;22473:2666;;;;22394:2745;;;:::o;27542:448::-;27626:4;27582:23;12725:18;;;;;;;;;;;;27647:20;;;27643:59;;27684:7;27542:448::o;27643:59::-;27734:18;;;:23;;;:::i;:::-;27716:15;:41;27712:115;;;27792:18;;;:23;;;:::i;:::-;27774:41;;27712:115;27837:34;27855:15;27837:17;:34::i;:::-;27926:16;;27918:64;;27882:12;;-1:-1:-1;;;;;27926:16:0;;27956:21;;27882:12;27918:64;27882:12;27918:64;27956:21;27926:16;27918:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27542:448:0:o;14398:602::-;-1:-1:-1;;;;;14538:20:0;;14530:70;;;;-1:-1:-1;;;14530:70:0;;19584:2:1;14530:70:0;;;19566:21:1;19623:2;19603:18;;;19596:30;19662:34;19642:18;;;19635:62;-1:-1:-1;;;19713:18:1;;;19706:35;19758:19;;14530:70:0;19382:401:1;14530:70:0;-1:-1:-1;;;;;14619:23:0;;14611:71;;;;-1:-1:-1;;;14611:71:0;;19990:2:1;14611:71:0;;;19972:21:1;20029:2;20009:18;;;20002:30;20068:34;20048:18;;;20041:62;-1:-1:-1;;;20119:18:1;;;20112:33;20162:19;;14611:71:0;19788:399:1;14611:71:0;-1:-1:-1;;;;;14719:17:0;;14695:21;14719:17;;;;;;;;;;;14755:23;;;;14747:74;;;;-1:-1:-1;;;14747:74:0;;20394:2:1;14747:74:0;;;20376:21:1;20433:2;20413:18;;;20406:30;20472:34;20452:18;;;20445:62;-1:-1:-1;;;20523:18:1;;;20516:36;20569:19;;14747:74:0;20192:402:1;14747:74:0;-1:-1:-1;;;;;14849:17:0;;;:9;:17;;;;;;;;;;;14869:22;;;14849:42;;14909:20;;;;;;;;:30;;14885:6;;14849:9;14909:30;;14885:6;;14909:30;:::i;:::-;;;;;;;;14974:9;-1:-1:-1;;;;;14957:35:0;14966:6;-1:-1:-1;;;;;14957:35:0;;14985:6;14957:35;;;;1839:25:1;;1827:2;1812:18;;1693:177;14957:35:0;;;;;;;;14519:481;14398:602;;;:::o;25147:472::-;25238:16;;;25252:1;25238:16;;;;;;;;25214:21;;25238:16;;;;;;;;;;-1:-1:-1;25238:16:0;25214:40;;25283:4;25265;25270:1;25265:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;25265:23:0;;;-1:-1:-1;;;;;25265:23:0;;;;;25309:15;-1:-1:-1;;;;;25309:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25299:4;25304:1;25299:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;25299:32:0;;;-1:-1:-1;;;;;25299:32:0;;;;;25342:62;25359:4;25374:15;25392:11;25342:8;:62::i;:::-;25415:196;;-1:-1:-1;;;25415:196:0;;-1:-1:-1;;;;;25415:15:0;:66;;;;:196;;25496:11;;25522:1;;25538:4;;25565;;25585:15;;25415:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25203:416;25147:472;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;:::-;1451:5;1215:247;-1:-1:-1;;;1215:247:1:o;1875:180::-;1934:6;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;-1:-1:-1;2026:23:1;;1875:180;-1:-1:-1;1875:180:1:o;2060:456::-;2137:6;2145;2153;2206:2;2194:9;2185:7;2181:23;2177:32;2174:52;;;2222:1;2219;2212:12;2174:52;2261:9;2248:23;2280:31;2305:5;2280:31;:::i;:::-;2330:5;-1:-1:-1;2387:2:1;2372:18;;2359:32;2400:33;2359:32;2400:33;:::i;:::-;2060:456;;2452:7;;-1:-1:-1;;;2506:2:1;2491:18;;;;2478:32;;2060:456::o;2918:118::-;3004:5;2997:13;2990:21;2983:5;2980:32;2970:60;;3026:1;3023;3016:12;3041:309;3106:6;3114;3167:2;3155:9;3146:7;3142:23;3138:32;3135:52;;;3183:1;3180;3173:12;3135:52;3222:9;3209:23;3241:28;3263:5;3241:28;:::i;3355:382::-;3420:6;3428;3481:2;3469:9;3460:7;3456:23;3452:32;3449:52;;;3497:1;3494;3487:12;3449:52;3536:9;3523:23;3555:31;3580:5;3555:31;:::i;:::-;3605:5;-1:-1:-1;3662:2:1;3647:18;;3634:32;3675:30;3634:32;3675:30;:::i;:::-;3724:7;3714:17;;;3355:382;;;;;:::o;3742:388::-;3810:6;3818;3871:2;3859:9;3850:7;3846:23;3842:32;3839:52;;;3887:1;3884;3877:12;3839:52;3926:9;3913:23;3945:31;3970:5;3945:31;:::i;:::-;3995:5;-1:-1:-1;4052:2:1;4037:18;;4024:32;4065:33;4024:32;4065:33;:::i;4135:750::-;4227:6;4235;4243;4296:2;4284:9;4275:7;4271:23;4267:32;4264:52;;;4312:1;4309;4302:12;4264:52;4352:9;4339:23;4381:18;4422:2;4414:6;4411:14;4408:34;;;4438:1;4435;4428:12;4408:34;4476:6;4465:9;4461:22;4451:32;;4521:7;4514:4;4510:2;4506:13;4502:27;4492:55;;4543:1;4540;4533:12;4492:55;4583:2;4570:16;4609:2;4601:6;4598:14;4595:34;;;4625:1;4622;4615:12;4595:34;4680:7;4673:4;4663:6;4660:1;4656:14;4652:2;4648:23;4644:34;4641:47;4638:67;;;4701:1;4698;4691:12;4638:67;4732:4;4724:13;;;;-1:-1:-1;4756:6:1;-1:-1:-1;;4797:20:1;;4784:34;4827:28;4784:34;4827:28;:::i;:::-;4874:5;4864:15;;;4135:750;;;;;:::o;4890:380::-;4969:1;4965:12;;;;5012;;;5033:61;;5087:4;5079:6;5075:17;5065:27;;5033:61;5140:2;5132:6;5129:14;5109:18;5106:38;5103:161;;5186:10;5181:3;5177:20;5174:1;5167:31;5221:4;5218:1;5211:15;5249:4;5246:1;5239:15;5103:161;;4890:380;;;:::o;5275:356::-;5477:2;5459:21;;;5496:18;;;5489:30;5555:34;5550:2;5535:18;;5528:62;5622:2;5607:18;;5275:356::o;6817:127::-;6878:10;6873:3;6869:20;6866:1;6859:31;6909:4;6906:1;6899:15;6933:4;6930:1;6923:15;6949:168;7022:9;;;7053;;7070:15;;;7064:22;;7050:37;7040:71;;7091:18;;:::i;7122:217::-;7162:1;7188;7178:132;;7232:10;7227:3;7223:20;7220:1;7213:31;7267:4;7264:1;7257:15;7295:4;7292:1;7285:15;7178:132;-1:-1:-1;7324:9:1;;7122:217::o;7767:125::-;7832:9;;;7853:10;;;7850:36;;;7866:18;;:::i;9794:184::-;9864:6;9917:2;9905:9;9896:7;9892:23;9888:32;9885:52;;;9933:1;9930;9923:12;9885:52;-1:-1:-1;9956:16:1;;9794:184;-1:-1:-1;9794:184:1:o;10262:245::-;10329:6;10382:2;10370:9;10361:7;10357:23;10353:32;10350:52;;;10398:1;10395;10388:12;10350:52;10430:9;10424:16;10449:28;10471:5;10449:28;:::i;11351:251::-;11421:6;11474:2;11462:9;11453:7;11449:23;11445:32;11442:52;;;11490:1;11487;11480:12;11442:52;11522:9;11516:16;11541:31;11566:5;11541:31;:::i;14846:127::-;14907:10;14902:3;14898:20;14895:1;14888:31;14938:4;14935:1;14928:15;14962:4;14959:1;14952:15;14978:135;15017:3;15038:17;;;15035:43;;15058:18;;:::i;:::-;-1:-1:-1;15105:1:1;15094:13;;14978:135::o;18425:404::-;18627:2;18609:21;;;18666:2;18646:18;;;18639:30;18705:34;18700:2;18685:18;;18678:62;-1:-1:-1;;;18771:2:1;18756:18;;18749:38;18819:3;18804:19;;18425:404::o;19249:128::-;19316:9;;;19337:11;;;19334:37;;;19351:18;;:::i;20731:980::-;20993:4;21041:3;21030:9;21026:19;21072:6;21061:9;21054:25;21098:2;21136:6;21131:2;21120:9;21116:18;21109:34;21179:3;21174:2;21163:9;21159:18;21152:31;21203:6;21238;21232:13;21269:6;21261;21254:22;21307:3;21296:9;21292:19;21285:26;;21346:2;21338:6;21334:15;21320:29;;21367:1;21377:195;21391:6;21388:1;21385:13;21377:195;;;21456:13;;-1:-1:-1;;;;;21452:39:1;21440:52;;21547:15;;;;21512:12;;;;21488:1;21406:9;21377:195;;;-1:-1:-1;;;;;;;21628:32:1;;;;21623:2;21608:18;;21601:60;-1:-1:-1;;;21692:3:1;21677:19;21670:35;21589:3;20731:980;-1:-1:-1;;;20731:980:1:o

Swarm Source

ipfs://4a657f9da1c1fe75a16bb65bdeda0dc9b7af838a66d6296fe663623ceefbc735
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.