ETH Price: $3,497.68 (+6.66%)
Gas: 8 Gwei

Token

Alpha Coin (ALPHA)
 

Overview

Max Total Supply

1,000,000 ALPHA

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,000 ALPHA

Value
$0.00
0x9f0120f2442a7407e44df0a82909d21caecf7d39
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:
Alpha

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣾⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡼⢻⣿⡟⠙⠻⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⠋⠹⣿⣿⢳⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡿⠀⠀⠀⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠏⠀⠀⠀⢹⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⢀⡾⠀⠀⠘⣿⣷⡀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⣴⣿⠏⠀⠀⠹⡆⢀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣷⣸⣇⠀⠀⠀⠸⠹⣿⣽⣦⡀⠀⠀⠀⠀⠀⠀⠀⣰⣮⣿⠟⠹⠀⠀⠀⢀⣿⣸⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⡿⠋⢿⣄⠀⠀⠀⠀⠈⢿⡿⣷⣤⣄⣀⣀⣀⣤⣴⠿⡿⠋⠀⠀⠀⠀⠀⣼⠋⢻⣿⣿⣦⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠐⠁⣿⡿⠀⠀⠀⠛⠦⡀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⡠⠞⠁⠀⠀⢹⣿⡈⠑⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣇⠀⠀⠀⢀⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣄⠀⠀⠀⢀⣿⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⡤⢀⣤⡾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣦⡀⠢⣽⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣼⣿⣴⣿⡟⠀⠀⠀⠀⣀⡠⠄⠀⣀⠀⠀⠀⣼⣿⡀⠀⠀⢀⡀⠀⠤⣀⠀⠀⠀⠀⠹⣿⣦⣿⣿⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⡟⠀⠀⠀⣴⣾⠟⠺⠾⠿⢿⡞⣆⢰⣿⣿⣧⢀⡆⣿⠿⠷⠶⠺⢿⣦⡀⠀⠀⠹⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣸⣿⣿⣿⡿⠀⠀⠀⣼⣿⡷⢶⠶⣤⣀⠈⣧⢻⣿⣿⣿⣿⣿⢸⠃⢀⣤⠴⣶⠶⣿⣷⡀⠀⠀⢹⣿⣿⣿⣿⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⣿⠿⢋⣾⠃⠀⠀⣀⢸⣯⣄⠛⠦⣍⣸⣦⣸⣿⣿⣿⣿⣿⣿⣼⣤⣏⣩⡶⠟⢠⣼⣿⢃⡀⠀⠀⢿⡍⠻⣿⣧⠀⠀⠀⠀Alpha Coin
⠀⠀⠀⣰⡿⠋⢠⣾⡏⣀⣴⣾⠁⢀⣠⣿⣒⣒⣠⣀⣛⣿⣿⣿⣿⣿⣿⣿⣿⣟⢂⣤⣄⣒⣻⣧⡀⠀⢻⣶⣄⠘⣿⣄⠈⢻⣷⡀⠀⠀
⠀⠀⢰⡿⠁⣠⣿⣿⠿⢋⣿⡇⠀⠀⠀⠠⠞⠛⠉⠹⣿⠏⠈⢿⣿⣿⣿⠏⠘⣿⡟⠉⠙⠳⠤⠀⠀⠀⠈⣿⡟⠻⢿⣿⣦⠀⢻⣧⠀⠀Telegram: https://t.me/alphatokenofficial
⠀⢀⡿⠁⢰⡿⠋⠁⠀⢸⣿⡷⠋⠀⣀⠀⠀⠀⠀⢰⡏⠀⠀⠈⢿⣿⠃⠀⠀⠘⡇⠀⠀⠀⠀⢀⡀⠀⢳⣿⣿⠀⠀⠉⠿⣧⠀⢻⡆⠀Website: https://alphakey.io/
⠀⢸⠃⠀⡏⠀⢀⣀⠀⢸⣿⣇⣴⣿⡏⠀⠀⠀⠀⠸⡁⠀⠀⠀⠘⠃⠀⠀⠀⠀⠇⠀⠀⠀⠀⠈⣿⣷⣬⣿⣿⠀⢀⣀⠀⠘⠆⠀⢧⠀Twitter: https://twitter.com/alphakeytoken
⠀⡞⢀⣴⠾⣿⣿⡿⠀⠘⣿⡟⠙⣿⡅⠀⠀⠀⠀⠀⠁⢀⣠⣤⣦⣤⣤⣤⡀⠀⠀⠀⡀⠀⠀⠀⣿⡏⠹⣿⡇⠀⢸⣿⣿⠿⣦⡀⢸⠀
⢠⣧⠟⠁⠀⢸⣿⣧⠀⠀⢻⠀⠀⠹⣷⠀⠀⣸⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⢹⠀⠀⣼⡟⠀⠀⢹⠁⠀⢸⣿⡿⠀⠀⠙⢾⡇
⡼⠁⠀⠀⠀⠀⢿⣿⠀⠀⠈⠀⠀⠀⠙⢷⣄⢹⡆⠀⠀⠉⠉⣙⣿⣿⣏⣉⠛⠀⠀⠀⣿⢀⣼⠏⠀⠀⠀⠀⠀⠀⣼⣿⠃⠀⠀⠀⠈⠳
⠀⠀⠀⠀⠀⠀⠘⣿⣇⠀⢰⣦⣄⡀⠀⠀⠙⢿⣿⡄⠀⠀⠈⠻⣿⣿⡟⠃⠀⠀⢀⣼⣷⠟⠁⠀⠀⣀⣴⣦⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠘⢿⣆⢸⡇⠈⠛⢦⡀⠀⠀⢻⣿⣷⣶⣶⠾⠛⠛⠳⢶⣶⣾⣿⡿⠁⠀⠀⣠⠞⠉⠀⣿⢀⣿⠏⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⣾⡇⠀⠀⠀⠙⣄⠀⠀⢻⣿⣿⣿⣷⣶⣶⣶⣿⣿⣿⣿⠁⠀⢠⠞⠁⠀⠀⠀⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠷⠀⠀⠀⠀⠘⣷⡀⠈⠇⠹⣿⣿⣿⣿⣿⣿⡟⠀⠇⠀⣰⠏⠀⠀⠀⠀⠸⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣷⡀⣸⡀⢻⣿⣿⣿⡿⣿⠁⣿⠀⣴⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣷⣿⡇⠈⡇⣿⣿⠃⡇⢀⣿⣾⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⠹⣷⠀⠘⢸⣿⠈⠀⢸⡏⢻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⢻⡆⠀⢸⡏⠀⢀⣿⠁⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠈⣷⡀⠀⠀⠀⣼⠇⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣇⡴⢰⢠⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⢸⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

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

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 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);
}

contract Alpha is Ownable {
    string private constant _name = unicode"Alpha Coin";
    string private constant _symbol = unicode"ALPHA";
    uint256 private constant _totalSupply = 1_000_000 * 1e18;

    uint256 public maxTransactionAmount = 20_000 * 1e18;
    uint256 public maxWallet = 20_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private revWallet = 0x0Bd0EE4594DeDCd65b58695a5986F327a058A938;
    address private treasuryWallet = 0x3cF7D5CEcF34f53878822F02dCCd851A44Fe9F41;
    address private teamWallet = 0x0B9E709013FDE7FEdc397D0A4F50b5b2c3E04A0d;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 2; 
    uint8 public sellTotalFees = 2;

    uint8 public revFee = 50;
    uint8 public treasuryFee = 25;
    uint8 public teamFee = 25;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0xBbf4C69dA0d90f1986A5927a3f81E3Ffc935E542;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(teamWallet, true);
        setExcludedFromFees(revWallet, true);
        setExcludedFromFees(treasuryWallet, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(teamWallet, true);
        setExcludedFromMaxTransaction(revWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);

        _balances[msg.sender] = 250_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[treasuryWallet] = 150_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[airdropWallet] = 0 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);
        _balances[address(this)] = 600_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

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

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

    function decimals() public pure returns (uint8) {
        return 18;
    }

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

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 100;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 100;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

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

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 100, "Buy fees must be less than or equal to 100%");
        require(_sellTotalFees <= 100, "Sell fees must be less than or equal to 100%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function unleashTheAlphaCoin() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","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":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unleashTheAlphaCoin","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269043c33c193756480000060015569043c33c193756480000060025561271069d3c21bcecceda100000060026200003c9190620006c1565b620000489190620006eb565b600355600480546001600160a01b0319908116730bd0ee4594dedcd65b58695a5986f327a058a9381790915560058054909116733cf7d5cecf34f53878822f02dccd851a44fe9f41179055600680547a010019193202020b9e709013fde7fedc397d0a4f50b5b2c3e04a0d600161ff0160c81b0319909116179055348015620000cf575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000130573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015691906200070b565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001dc91906200070b565b6001600160a01b031660808190525f908152600b60205260409020805460ff1916600117905573bbf4c69da0d90f1986a5927a3f81e3ffc935e542620002356200022d5f546001600160a01b031690565b600162000490565b6200024230600162000490565b6200025161dead600162000490565b6006546200026a906001600160a01b0316600162000490565b60045462000283906001600160a01b0316600162000490565b6005546200029c906001600160a01b0316600162000490565b620002ba620002b25f546001600160a01b031690565b600162000517565b620002db737a250d5630b4cf539739df2c5dacb4c659f2488d600162000517565b620002e830600162000517565b620002f761dead600162000517565b6080516200030790600162000517565b60065462000320906001600160a01b0316600162000517565b60045462000339906001600160a01b0316600162000517565b60055462000352906001600160a01b0316600162000517565b335f8181526007602090815260408083206934f086f3b33b684000009081905590519081525f8051602062003149833981519152910160405180910390a3600580546001600160a01b039081165f90815260076020526040808220691fc3842bd1f071c000009055925490911680825282822054925190925f805160206200314983398151915291620003e791815260200190565b60405180910390a36001600160a01b0381165f818152600760209081526040808320839055518281525f8051602062003149833981519152910160405180910390a3305f818152600760209081526040808320697f0e10af47c1c70000009081905590519081525f8051602062003149833981519152910160405180910390a36200048930737a250d5630b4cf539739df2c5dacb4c659f2488d5f196200059a565b506200073a565b33620004a35f546001600160a01b031690565b6001600160a01b031614620004ed5760405162461bcd60e51b815260206004820181905260248201525f805160206200312983398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b336200052a5f546001600160a01b031690565b6001600160a01b031614620005705760405162461bcd60e51b815260206004820181905260248201525f80516020620031298339815191526044820152606401620004e4565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620005fe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004e4565b6001600160a01b038216620006615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004e4565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b8082028115828204841417620006e557634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200070657634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200071c575f80fd5b81516001600160a01b038116811462000733575f80fd5b9392505050565b6080516129cf6200075a5f395f81816103ce015261105f01526129cf5ff3fe608060405260043610610236575f3560e01c80637cb332bb11610129578063c8c8ebe4116100a8578063dd62ed3e1161006d578063dd62ed3e146106fd578063e2f4560514610741578063e710794714610756578063f8b45b0514610775578063fb201b1d1461078a575f80fd5b8063c8c8ebe414610669578063cc32d1761461067e578063d201b01e1461069e578063d7c94efd146106bd578063d85ba063146106dd575f80fd5b80639a7a23d6116100ee5780639a7a23d6146105e5578063a290f99814610604578063a9059cbb1461060c578063adfa29e51461062b578063bc205ad31461064a575f80fd5b80637cb332bb14610527578063809d458d1461054657806385ecafd7146105655780638da5cb5b1461059c57806395d89b41146105b8575f80fd5b80634a62bb65116101b55780636a486a8e1161017a5780636a486a8e1461048c57806370a08231146104ac578063715018a6146104e057806374010ece146104f4578063751039fc14610513575f80fd5b80634a62bb65146103f05780634fcd244614610410578063590ffdce1461042f5780636402511e1461044e57806366650dae1461046d575f80fd5b806323b872dd116101fb57806323b872dd1461034b57806327a14fc21461036a578063313ce5671461038b5780633c090c461461039e57806349bd5a5e146103bd575f80fd5b806306fdde0314610241578063095ea7b3146102855780631694505e146102b457806318160ddd146102f357806321d37e3914610319575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600a81526920b63834309021b7b4b760b11b60208201525b60405161027c91906123cb565b60405180910390f35b348015610290575f80fd5b506102a461029f366004612418565b61079e565b604051901515815260200161027c565b3480156102bf575f80fd5b506102db737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161027c565b3480156102fe575f80fd5b5069d3c21bcecceda10000005b60405190815260200161027c565b348015610324575f80fd5b5060065461033990600160b01b900460ff1681565b60405160ff909116815260200161027c565b348015610356575f80fd5b506102a4610365366004612440565b6107b4565b348015610375575f80fd5b50610389610384366004612479565b610868565b005b348015610396575f80fd5b506012610339565b3480156103a9575f80fd5b506103896103b83660046124a0565b61094a565b3480156103c8575f80fd5b506102db7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103fb575f80fd5b506006546102a490600160d01b900460ff1681565b34801561041b575f80fd5b5061038961042a3660046124e0565b610a52565b34801561043a575f80fd5b50610389610449366004612521565b610b8f565b348015610459575f80fd5b50610389610468366004612479565b610bf1565b348015610478575f80fd5b50610389610487366004612521565b610d4c565b348015610497575f80fd5b5060065461033990600160a81b900460ff1681565b3480156104b7575f80fd5b5061030b6104c6366004612556565b6001600160a01b03165f9081526007602052604090205490565b3480156104eb575f80fd5b50610389610dae565b3480156104ff575f80fd5b5061038961050e366004612479565b610df7565b34801561051e575f80fd5b50610389610ede565b348015610532575f80fd5b50610389610541366004612556565b610f25565b348015610551575f80fd5b50610389610560366004612556565b610fa5565b348015610570575f80fd5b506102a461057f366004612556565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a7575f80fd5b505f546001600160a01b03166102db565b3480156105c3575f80fd5b50604080518082019091526005815264414c50484160d81b602082015261026f565b3480156105f0575f80fd5b506103896105ff366004612521565b611025565b610389611108565b348015610617575f80fd5b506102a4610626366004612418565b61121b565b348015610636575f80fd5b50610389610645366004612556565b611227565b348015610655575f80fd5b50610389610664366004612576565b6112a7565b348015610674575f80fd5b5061030b60015481565b348015610689575f80fd5b5060065461033990600160b81b900460ff1681565b3480156106a9575f80fd5b506103896106b8366004612556565b611354565b3480156106c8575f80fd5b5060065461033990600160c01b900460ff1681565b3480156106e8575f80fd5b5060065461033990600160a01b900460ff1681565b348015610708575f80fd5b5061030b610717366004612576565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561074c575f80fd5b5061030b60035481565b348015610761575f80fd5b5061038961077036600461266e565b61146b565b348015610780575f80fd5b5061030b60025481565b348015610795575f80fd5b50610389611682565b5f6107aa3384846116f9565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461085257828110156108455760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085285338584036116f9565b61085d85858561181c565b506001949350505050565b3361087a5f546001600160a01b031690565b6001600160a01b0316146108a05760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e86108c169d3c21bcecceda10000006001612771565b6108cb9190612788565b6108d59190612788565b8110156109325760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b606482015260840161083c565b61094481670de0b6b3a7640000612771565b60025550565b3361095c5f546001600160a01b031690565b6001600160a01b0316146109825760405162461bcd60e51b815260040161083c90612728565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109e3939181048216929004166127a7565b6109ed91906127a7565b60ff16606414610a4d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b606482015260840161083c565b505050565b33610a645f546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b815260040161083c90612728565b60648260ff161115610af25760405162461bcd60e51b815260206004820152602b60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526a75616c20746f203130302560a81b606482015260840161083c565b60648160ff161115610b5b5760405162461bcd60e51b815260206004820152602c60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201526b7175616c20746f203130302560a01b606482015260840161083c565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610ba15f546001600160a01b031690565b6001600160a01b031614610bc75760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610c035f546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b815260040161083c90612728565b620186a0610c4269d3c21bcecceda10000006001612771565b610c4c9190612788565b811015610cb95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b606482015260840161083c565b6103e8610cd169d3c21bcecceda10000006005612771565b610cdb9190612788565b811115610d475760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b606482015260840161083c565b600355565b33610d5e5f546001600160a01b031690565b6001600160a01b031614610d845760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610dc05f546001600160a01b031690565b6001600160a01b031614610de65760405162461bcd60e51b815260040161083c90612728565b5f80546001600160a01b0319169055565b33610e095f546001600160a01b031690565b6001600160a01b031614610e2f5760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e8610e5069d3c21bcecceda10000006001612771565b610e5a9190612788565b610e649190612788565b811015610ec65760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b606482015260840161083c565b610ed881670de0b6b3a7640000612771565b60015550565b33610ef05f546001600160a01b031690565b6001600160a01b031614610f165760405162461bcd60e51b815260040161083c90612728565b6006805460ff60d01b19169055565b33610f375f546001600160a01b031690565b6001600160a01b031614610f5d5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b038116610f835760405162461bcd60e51b815260040161083c906127c0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610fb75f546001600160a01b031690565b6001600160a01b031614610fdd5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166110035760405162461bcd60e51b815260040161083c906127c0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336110375f546001600160a01b031690565b6001600160a01b03161461105d5760405162461bcd60e51b815260040161083c90612728565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110de5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f766564000000000000604482015260640161083c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b3361111a5f546001600160a01b031690565b6001600160a01b0316146111405760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff161561116a5760405162461bcd60e51b815260040161083c906127f0565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af11580156111f6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4d919061281a565b5f6107aa33848461181c565b336112395f546001600160a01b031690565b6001600160a01b03161461125f5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166112855760405162461bcd60e51b815260040161083c906127c0565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112b95f546001600160a01b031690565b6001600160a01b0316146112df5760405162461bcd60e51b815260040161083c90612728565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113479190612845565b9050610a4d838383611f93565b336113665f546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166113d45760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161083c565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f811461141d576040519150601f19603f3d011682016040523d82523d5f602084013e611422565b606091505b50509050806114675760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b604482015260640161083c565b5050565b3361147d5f546001600160a01b031690565b6001600160a01b0316146114a35760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156114cd5760405162461bcd60e51b815260040161083c906127f0565b5f5b8251811015610a4d578181815181106114ea576114ea61285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156115345760405162461bcd60e51b815260040161083c90612870565b8181815181106115465761154661285c565b602002602001015160075f8584815181106115635761156361285c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159891906128b6565b925050819055508181815181106115b1576115b161285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546115ea91906128c9565b925050819055508281815181106116035761160361285c565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106116515761165161285c565b602002602001015160405161166891815260200190565b60405180910390a38061167a816128dc565b9150506114cf565b336116945f546001600160a01b031690565b6001600160a01b0316146116ba5760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156116e45760405162461bcd60e51b815260040161083c906127f0565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b03831661175b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083c565b6001600160a01b0382166117bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083c565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083c565b6001600160a01b0382166118e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083c565b5f81116119435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161083c565b600654600160d81b900460ff1615801561199757505f546001600160a01b0384811691161480159061197e57506001600160a01b0383163014155b801561199757505f546001600160a01b03838116911614155b156119da5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161083c565b600654600160d01b900460ff1615611c9b575f546001600160a01b03848116911614801590611a1657505f546001600160a01b03838116911614155b8015611a2a57506001600160a01b03821615155b8015611a4157506001600160a01b03821661dead14155b8015611a575750600654600160c81b900460ff16155b15611c9b576001600160a01b0383165f908152600b602052604090205460ff168015611a9b57506001600160a01b0382165f908152600a602052604090205460ff16155b15611b6e57600154811115611b005760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b606482015260840161083c565b6002546001600160a01b0383165f90815260076020526040902054611b2590836128b6565b1115611b695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b611c9b565b6001600160a01b0382165f908152600b602052604090205460ff168015611bad57506001600160a01b0383165f908152600a602052604090205460ff16155b15611c1357600154811115611b695760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b606482015260840161083c565b6001600160a01b0382165f908152600a602052604090205460ff16611c9b576002546001600160a01b0383165f90815260076020526040902054611c5790836128b6565b1115611c9b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b600354305f90815260076020526040902054108015908190611cc75750600654600160c81b900460ff16155b8015611ceb57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d0f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d3357506001600160a01b0383165f9081526009602052604090205460ff16155b15611d61576006805460ff60c81b1916600160c81b179055611d536120ba565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611dad57506001600160a01b0384165f9081526009602052604090205460ff165b15611db557505f5b6001600160a01b0385165f9081526007602052604090205483811015611ded5760405162461bcd60e51b815260040161083c90612870565b5f8215611f21576001600160a01b0386165f908152600b602052604090205460ff168015611e265750600654600160a81b900460ff1615155b15611e5657600654606490611e4590600160a81b900460ff1687612771565b611e4f9190612788565b9050611eb4565b6001600160a01b0387165f908152600b602052604090205460ff168015611e885750600654600160a01b900460ff1615155b15611eb457600654606490611ea790600160a01b900460ff1687612771565b611eb19190612788565b90505b8015611f21576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f829089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611fee91906128f4565b5f604051808303815f865af19150503d805f8114612027576040519150601f19603f3d011682016040523d82523d5f602084013e61202c565b606091505b5091509150818015612056575080511580612056575080806020019051810190612056919061290f565b6120b35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b606482015260840161083c565b5050505050565b6003545f6120c9826014612771565b305f9081526007602052604090205411156120ef576003546120ec906014612771565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121225761212261285c565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216a5761216a61285c565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121c19086905f9086903090429060040161292a565b5f604051808303815f87803b1580156121d8575f80fd5b505af11580156121ea573d5f803e3d5ffd5b5047925050811590506123a3576006545f9060649061221390600160b01b900460ff1684612771565b61221d9190612788565b6006549091505f9060649061223c90600160c01b900460ff1685612771565b6122469190612788565b90505f8161225484866128c9565b61225e91906128c9565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122a9576040519150601f19603f3d011682016040523d82523d5f602084013e6122ae565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122fb576040519150601f19603f3d011682016040523d82523d5f602084013e612300565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f811461234d576040519150601f19603f3d011682016040523d82523d5f602084013e612352565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123c35781810151838201526020016123ab565b50505f910152565b602081525f82518060208401526123e98160408501602087016123a9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612413575f80fd5b919050565b5f8060408385031215612429575f80fd5b612432836123fd565b946020939093013593505050565b5f805f60608486031215612452575f80fd5b61245b846123fd565b9250612469602085016123fd565b9150604084013590509250925092565b5f60208284031215612489575f80fd5b5035919050565b803560ff81168114612413575f80fd5b5f805f606084860312156124b2575f80fd5b6124bb84612490565b92506124c960208501612490565b91506124d760408501612490565b90509250925092565b5f80604083850312156124f1575f80fd5b6124fa83612490565b915061250860208401612490565b90509250929050565b801515811461251e575f80fd5b50565b5f8060408385031215612532575f80fd5b61253b836123fd565b9150602083013561254b81612511565b809150509250929050565b5f60208284031215612566575f80fd5b61256f826123fd565b9392505050565b5f8060408385031215612587575f80fd5b612590836123fd565b9150612508602084016123fd565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125db576125db61259e565b604052919050565b5f67ffffffffffffffff8211156125fc576125fc61259e565b5060051b60200190565b5f82601f830112612615575f80fd5b8135602061262a612625836125e3565b6125b2565b82815260059290921b84018101918181019086841115612648575f80fd5b8286015b84811015612663578035835291830191830161264c565b509695505050505050565b5f806040838503121561267f575f80fd5b823567ffffffffffffffff80821115612696575f80fd5b818501915085601f8301126126a9575f80fd5b813560206126b9612625836125e3565b82815260059290921b840181019181810190898411156126d7575f80fd5b948201945b838610156126fc576126ed866123fd565b825294820194908201906126dc565b96505086013592505080821115612711575f80fd5b5061271e85828601612606565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107ae576107ae61275d565b5f826127a257634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156107ae576107ae61275d565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f6060848603121561282c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612855575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107ae576107ae61275d565b818103818111156107ae576107ae61275d565b5f600182016128ed576128ed61275d565b5060010190565b5f82516129058184602087016123a9565b9190910192915050565b5f6020828403121561291f575f80fd5b815161256f81612511565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129785784516001600160a01b031683529383019391830191600101612953565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207d63643f271bc977c11a84372159c40b34e2e134dddac84f7cc02de8d5331f7f64736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610236575f3560e01c80637cb332bb11610129578063c8c8ebe4116100a8578063dd62ed3e1161006d578063dd62ed3e146106fd578063e2f4560514610741578063e710794714610756578063f8b45b0514610775578063fb201b1d1461078a575f80fd5b8063c8c8ebe414610669578063cc32d1761461067e578063d201b01e1461069e578063d7c94efd146106bd578063d85ba063146106dd575f80fd5b80639a7a23d6116100ee5780639a7a23d6146105e5578063a290f99814610604578063a9059cbb1461060c578063adfa29e51461062b578063bc205ad31461064a575f80fd5b80637cb332bb14610527578063809d458d1461054657806385ecafd7146105655780638da5cb5b1461059c57806395d89b41146105b8575f80fd5b80634a62bb65116101b55780636a486a8e1161017a5780636a486a8e1461048c57806370a08231146104ac578063715018a6146104e057806374010ece146104f4578063751039fc14610513575f80fd5b80634a62bb65146103f05780634fcd244614610410578063590ffdce1461042f5780636402511e1461044e57806366650dae1461046d575f80fd5b806323b872dd116101fb57806323b872dd1461034b57806327a14fc21461036a578063313ce5671461038b5780633c090c461461039e57806349bd5a5e146103bd575f80fd5b806306fdde0314610241578063095ea7b3146102855780631694505e146102b457806318160ddd146102f357806321d37e3914610319575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600a81526920b63834309021b7b4b760b11b60208201525b60405161027c91906123cb565b60405180910390f35b348015610290575f80fd5b506102a461029f366004612418565b61079e565b604051901515815260200161027c565b3480156102bf575f80fd5b506102db737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161027c565b3480156102fe575f80fd5b5069d3c21bcecceda10000005b60405190815260200161027c565b348015610324575f80fd5b5060065461033990600160b01b900460ff1681565b60405160ff909116815260200161027c565b348015610356575f80fd5b506102a4610365366004612440565b6107b4565b348015610375575f80fd5b50610389610384366004612479565b610868565b005b348015610396575f80fd5b506012610339565b3480156103a9575f80fd5b506103896103b83660046124a0565b61094a565b3480156103c8575f80fd5b506102db7f000000000000000000000000fff2f90f2dd8aa7b99e4c172f87fbe920e9d90b981565b3480156103fb575f80fd5b506006546102a490600160d01b900460ff1681565b34801561041b575f80fd5b5061038961042a3660046124e0565b610a52565b34801561043a575f80fd5b50610389610449366004612521565b610b8f565b348015610459575f80fd5b50610389610468366004612479565b610bf1565b348015610478575f80fd5b50610389610487366004612521565b610d4c565b348015610497575f80fd5b5060065461033990600160a81b900460ff1681565b3480156104b7575f80fd5b5061030b6104c6366004612556565b6001600160a01b03165f9081526007602052604090205490565b3480156104eb575f80fd5b50610389610dae565b3480156104ff575f80fd5b5061038961050e366004612479565b610df7565b34801561051e575f80fd5b50610389610ede565b348015610532575f80fd5b50610389610541366004612556565b610f25565b348015610551575f80fd5b50610389610560366004612556565b610fa5565b348015610570575f80fd5b506102a461057f366004612556565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a7575f80fd5b505f546001600160a01b03166102db565b3480156105c3575f80fd5b50604080518082019091526005815264414c50484160d81b602082015261026f565b3480156105f0575f80fd5b506103896105ff366004612521565b611025565b610389611108565b348015610617575f80fd5b506102a4610626366004612418565b61121b565b348015610636575f80fd5b50610389610645366004612556565b611227565b348015610655575f80fd5b50610389610664366004612576565b6112a7565b348015610674575f80fd5b5061030b60015481565b348015610689575f80fd5b5060065461033990600160b81b900460ff1681565b3480156106a9575f80fd5b506103896106b8366004612556565b611354565b3480156106c8575f80fd5b5060065461033990600160c01b900460ff1681565b3480156106e8575f80fd5b5060065461033990600160a01b900460ff1681565b348015610708575f80fd5b5061030b610717366004612576565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561074c575f80fd5b5061030b60035481565b348015610761575f80fd5b5061038961077036600461266e565b61146b565b348015610780575f80fd5b5061030b60025481565b348015610795575f80fd5b50610389611682565b5f6107aa3384846116f9565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461085257828110156108455760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085285338584036116f9565b61085d85858561181c565b506001949350505050565b3361087a5f546001600160a01b031690565b6001600160a01b0316146108a05760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e86108c169d3c21bcecceda10000006001612771565b6108cb9190612788565b6108d59190612788565b8110156109325760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b606482015260840161083c565b61094481670de0b6b3a7640000612771565b60025550565b3361095c5f546001600160a01b031690565b6001600160a01b0316146109825760405162461bcd60e51b815260040161083c90612728565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109e3939181048216929004166127a7565b6109ed91906127a7565b60ff16606414610a4d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b606482015260840161083c565b505050565b33610a645f546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b815260040161083c90612728565b60648260ff161115610af25760405162461bcd60e51b815260206004820152602b60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526a75616c20746f203130302560a81b606482015260840161083c565b60648160ff161115610b5b5760405162461bcd60e51b815260206004820152602c60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201526b7175616c20746f203130302560a01b606482015260840161083c565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610ba15f546001600160a01b031690565b6001600160a01b031614610bc75760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610c035f546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b815260040161083c90612728565b620186a0610c4269d3c21bcecceda10000006001612771565b610c4c9190612788565b811015610cb95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b606482015260840161083c565b6103e8610cd169d3c21bcecceda10000006005612771565b610cdb9190612788565b811115610d475760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b606482015260840161083c565b600355565b33610d5e5f546001600160a01b031690565b6001600160a01b031614610d845760405162461bcd60e51b815260040161083c90612728565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610dc05f546001600160a01b031690565b6001600160a01b031614610de65760405162461bcd60e51b815260040161083c90612728565b5f80546001600160a01b0319169055565b33610e095f546001600160a01b031690565b6001600160a01b031614610e2f5760405162461bcd60e51b815260040161083c90612728565b670de0b6b3a76400006103e8610e5069d3c21bcecceda10000006001612771565b610e5a9190612788565b610e649190612788565b811015610ec65760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b606482015260840161083c565b610ed881670de0b6b3a7640000612771565b60015550565b33610ef05f546001600160a01b031690565b6001600160a01b031614610f165760405162461bcd60e51b815260040161083c90612728565b6006805460ff60d01b19169055565b33610f375f546001600160a01b031690565b6001600160a01b031614610f5d5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b038116610f835760405162461bcd60e51b815260040161083c906127c0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b33610fb75f546001600160a01b031690565b6001600160a01b031614610fdd5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166110035760405162461bcd60e51b815260040161083c906127c0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336110375f546001600160a01b031690565b6001600160a01b03161461105d5760405162461bcd60e51b815260040161083c90612728565b7f000000000000000000000000fff2f90f2dd8aa7b99e4c172f87fbe920e9d90b96001600160a01b0316826001600160a01b0316036110de5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f766564000000000000604482015260640161083c565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b3361111a5f546001600160a01b031690565b6001600160a01b0316146111405760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff161561116a5760405162461bcd60e51b815260040161083c906127f0565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af11580156111f6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4d919061281a565b5f6107aa33848461181c565b336112395f546001600160a01b031690565b6001600160a01b03161461125f5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166112855760405162461bcd60e51b815260040161083c906127c0565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336112b95f546001600160a01b031690565b6001600160a01b0316146112df5760405162461bcd60e51b815260040161083c90612728565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611323573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113479190612845565b9050610a4d838383611f93565b336113665f546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b815260040161083c90612728565b6001600160a01b0381166113d45760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161083c565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f811461141d576040519150601f19603f3d011682016040523d82523d5f602084013e611422565b606091505b50509050806114675760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b604482015260640161083c565b5050565b3361147d5f546001600160a01b031690565b6001600160a01b0316146114a35760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156114cd5760405162461bcd60e51b815260040161083c906127f0565b5f5b8251811015610a4d578181815181106114ea576114ea61285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156115345760405162461bcd60e51b815260040161083c90612870565b8181815181106115465761154661285c565b602002602001015160075f8584815181106115635761156361285c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f82825461159891906128b6565b925050819055508181815181106115b1576115b161285c565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546115ea91906128c9565b925050819055508281815181106116035761160361285c565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8484815181106116515761165161285c565b602002602001015160405161166891815260200190565b60405180910390a38061167a816128dc565b9150506114cf565b336116945f546001600160a01b031690565b6001600160a01b0316146116ba5760405162461bcd60e51b815260040161083c90612728565b600654600160d81b900460ff16156116e45760405162461bcd60e51b815260040161083c906127f0565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b03831661175b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083c565b6001600160a01b0382166117bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083c565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083c565b6001600160a01b0382166118e25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083c565b5f81116119435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161083c565b600654600160d81b900460ff1615801561199757505f546001600160a01b0384811691161480159061197e57506001600160a01b0383163014155b801561199757505f546001600160a01b03838116911614155b156119da5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161083c565b600654600160d01b900460ff1615611c9b575f546001600160a01b03848116911614801590611a1657505f546001600160a01b03838116911614155b8015611a2a57506001600160a01b03821615155b8015611a4157506001600160a01b03821661dead14155b8015611a575750600654600160c81b900460ff16155b15611c9b576001600160a01b0383165f908152600b602052604090205460ff168015611a9b57506001600160a01b0382165f908152600a602052604090205460ff16155b15611b6e57600154811115611b005760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b606482015260840161083c565b6002546001600160a01b0383165f90815260076020526040902054611b2590836128b6565b1115611b695760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b611c9b565b6001600160a01b0382165f908152600b602052604090205460ff168015611bad57506001600160a01b0383165f908152600a602052604090205460ff16155b15611c1357600154811115611b695760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b606482015260840161083c565b6001600160a01b0382165f908152600a602052604090205460ff16611c9b576002546001600160a01b0383165f90815260076020526040902054611c5790836128b6565b1115611c9b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083c565b600354305f90815260076020526040902054108015908190611cc75750600654600160c81b900460ff16155b8015611ceb57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d0f57506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d3357506001600160a01b0383165f9081526009602052604090205460ff16155b15611d61576006805460ff60c81b1916600160c81b179055611d536120ba565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611dad57506001600160a01b0384165f9081526009602052604090205460ff165b15611db557505f5b6001600160a01b0385165f9081526007602052604090205483811015611ded5760405162461bcd60e51b815260040161083c90612870565b5f8215611f21576001600160a01b0386165f908152600b602052604090205460ff168015611e265750600654600160a81b900460ff1615155b15611e5657600654606490611e4590600160a81b900460ff1687612771565b611e4f9190612788565b9050611eb4565b6001600160a01b0387165f908152600b602052604090205460ff168015611e885750600654600160a01b900460ff1615155b15611eb457600654606490611ea790600160a01b900460ff1687612771565b611eb19190612788565b90505b8015611f21576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f829089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611fee91906128f4565b5f604051808303815f865af19150503d805f8114612027576040519150601f19603f3d011682016040523d82523d5f602084013e61202c565b606091505b5091509150818015612056575080511580612056575080806020019051810190612056919061290f565b6120b35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b606482015260840161083c565b5050505050565b6003545f6120c9826014612771565b305f9081526007602052604090205411156120ef576003546120ec906014612771565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121225761212261285c565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216a5761216a61285c565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121c19086905f9086903090429060040161292a565b5f604051808303815f87803b1580156121d8575f80fd5b505af11580156121ea573d5f803e3d5ffd5b5047925050811590506123a3576006545f9060649061221390600160b01b900460ff1684612771565b61221d9190612788565b6006549091505f9060649061223c90600160c01b900460ff1685612771565b6122469190612788565b90505f8161225484866128c9565b61225e91906128c9565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122a9576040519150601f19603f3d011682016040523d82523d5f602084013e6122ae565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122fb576040519150601f19603f3d011682016040523d82523d5f602084013e612300565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f811461234d576040519150601f19603f3d011682016040523d82523d5f602084013e612352565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123c35781810151838201526020016123ab565b50505f910152565b602081525f82518060208401526123e98160408501602087016123a9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612413575f80fd5b919050565b5f8060408385031215612429575f80fd5b612432836123fd565b946020939093013593505050565b5f805f60608486031215612452575f80fd5b61245b846123fd565b9250612469602085016123fd565b9150604084013590509250925092565b5f60208284031215612489575f80fd5b5035919050565b803560ff81168114612413575f80fd5b5f805f606084860312156124b2575f80fd5b6124bb84612490565b92506124c960208501612490565b91506124d760408501612490565b90509250925092565b5f80604083850312156124f1575f80fd5b6124fa83612490565b915061250860208401612490565b90509250929050565b801515811461251e575f80fd5b50565b5f8060408385031215612532575f80fd5b61253b836123fd565b9150602083013561254b81612511565b809150509250929050565b5f60208284031215612566575f80fd5b61256f826123fd565b9392505050565b5f8060408385031215612587575f80fd5b612590836123fd565b9150612508602084016123fd565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125db576125db61259e565b604052919050565b5f67ffffffffffffffff8211156125fc576125fc61259e565b5060051b60200190565b5f82601f830112612615575f80fd5b8135602061262a612625836125e3565b6125b2565b82815260059290921b84018101918181019086841115612648575f80fd5b8286015b84811015612663578035835291830191830161264c565b509695505050505050565b5f806040838503121561267f575f80fd5b823567ffffffffffffffff80821115612696575f80fd5b818501915085601f8301126126a9575f80fd5b813560206126b9612625836125e3565b82815260059290921b840181019181810190898411156126d7575f80fd5b948201945b838610156126fc576126ed866123fd565b825294820194908201906126dc565b96505086013592505080821115612711575f80fd5b5061271e85828601612606565b9150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107ae576107ae61275d565b5f826127a257634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156107ae576107ae61275d565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b5f805f6060848603121561282c575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215612855575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107ae576107ae61275d565b818103818111156107ae576107ae61275d565b5f600182016128ed576128ed61275d565b5060010190565b5f82516129058184602087016123a9565b9190910192915050565b5f6020828403121561291f575f80fd5b815161256f81612511565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129785784516001600160a01b031683529383019391830191600101612953565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207d63643f271bc977c11a84372159c40b34e2e134dddac84f7cc02de8d5331f7f64736f6c63430008150033

Deployed Bytecode Sourcemap

6893:13375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10327:83;;;;;;;;;;-1:-1:-1;10397:5:0;;;;;;;;;;;;-1:-1:-1;;;10397:5:0;;;;10327:83;;;;;;;:::i;:::-;;;;;;;;10956:152;;;;;;;;;;-1:-1:-1;10956:152:0;;;;;:::i;:::-;;:::i;:::-;;;1272:14:1;;1265:22;1247:41;;1235:2;1220:18;10956:152:0;1107:187:1;8466:115:0;;;;;;;;;;;;8538:42;8466:115;;;;;-1:-1:-1;;;;;1489:32:1;;;1471:51;;1459:2;1444:18;8466:115:0;1299:229:1;10597:91:0;;;;;;;;;;-1:-1:-1;7079:16:0;10597:91;;;1679:25:1;;;1667:2;1652:18;10597:91:0;1533:177:1;7676:24:0;;;;;;;;;;-1:-1:-1;7676:24:0;;;;-1:-1:-1;;;7676:24:0;;;;;;;;;1887:4:1;1875:17;;;1857:36;;1845:2;1830:18;7676:24:0;1715:184:1;11627:520:0;;;;;;;;;;-1:-1:-1;11627:520:0;;;;;:::i;:::-;;:::i;17710:235::-;;;;;;;;;;-1:-1:-1;17710:235:0;;;;;:::i;:::-;;:::i;:::-;;10513:76;;;;;;;;;;-1:-1:-1;10579:2:0;10513:76;;14930:300;;;;;;;;;;-1:-1:-1;14930:300:0;;;;;:::i;:::-;;:::i;8588:38::-;;;;;;;;;;;;;;;7805:33;;;;;;;;;;-1:-1:-1;7805:33:0;;;;-1:-1:-1;;;7805:33:0;;;;;;15238:343;;;;;;;;;;-1:-1:-1;15238:343:0;;;;;:::i;:::-;;:::i;15589:136::-;;;;;;;;;;-1:-1:-1;15589:136:0;;;;;:::i;:::-;;:::i;17097:361::-;;;;;;;;;;-1:-1:-1;17097:361:0;;;;;:::i;:::-;;:::i;15733:158::-;;;;;;;;;;-1:-1:-1;15733:158:0;;;;;:::i;:::-;;:::i;7637:30::-;;;;;;;;;;-1:-1:-1;7637:30:0;;;;-1:-1:-1;;;7637:30:0;;;;;;10696:110;;;;;;;;;;-1:-1:-1;10696:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;10780:18:0;10753:7;10780:18;;;:9;:18;;;;;;;10696:110;5590:92;;;;;;;;;;;;;:::i;17466:236::-;;;;;;;;;;-1:-1:-1;17466:236:0;;;;;:::i;:::-;;:::i;14838:84::-;;;;;;;;;;;;;:::i;18329:177::-;;;;;;;;;;-1:-1:-1;18329:177:0;;;;;:::i;:::-;;:::i;18136:185::-;;;;;;;;;;-1:-1:-1;18136:185:0;;;;;:::i;:::-;;:::i;18514:123::-;;;;;;;;;;-1:-1:-1;18514:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;18601:28:0;18577:4;18601:28;;;:19;:28;;;;;;;;;18514:123;5369:87;;;;;;;;;;-1:-1:-1;5415:7:0;5442:6;-1:-1:-1;;;;;5442:6:0;5369:87;;10418;;;;;;;;;;-1:-1:-1;10490:7:0;;;;;;;;;;;;-1:-1:-1;;;10490:7:0;;;;10418:87;;16878:211;;;;;;;;;;-1:-1:-1;16878:211:0;;;;;:::i;:::-;;:::i;16530:340::-;;;:::i;11461:158::-;;;;;;;;;;-1:-1:-1;11461:158:0;;;;;:::i;:::-;;:::i;17953:175::-;;;;;;;;;;-1:-1:-1;17953:175:0;;;;;:::i;:::-;;:::i;18645:240::-;;;;;;;;;;-1:-1:-1;18645:240:0;;;;;:::i;:::-;;:::i;7104:51::-;;;;;;;;;;;;;;;;7707:29;;;;;;;;;;-1:-1:-1;7707:29:0;;;;-1:-1:-1;;;7707:29:0;;;;;;18893:247;;;;;;;;;;-1:-1:-1;18893:247:0;;;;;:::i;:::-;;:::i;7743:25::-;;;;;;;;;;-1:-1:-1;7743:25:0;;;;-1:-1:-1;;;7743:25:0;;;;;;7600:29;;;;;;;;;;-1:-1:-1;7600:29:0;;;;-1:-1:-1;;;7600:29:0;;;;;;10814:134;;;;;;;;;;-1:-1:-1;10814:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;10913:18:0;;;10886:7;10913:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10814:134;7209:62;;;;;;;;;;;;;;;;15899:492;;;;;;;;;;-1:-1:-1;15899:492:0;;;;;:::i;:::-;;:::i;7162:40::-;;;;;;;;;;;;;;;;16399:123;;;;;;;;;;;;;:::i;10956:152::-;11024:4;11041:37;11050:10;11062:7;11071:6;11041:8;:37::i;:::-;-1:-1:-1;11096:4:0;10956:152;;;;;:::o;11627:520::-;-1:-1:-1;;;;;11762:19:0;;11718:4;11762:19;;;:11;:19;;;;;;;;11782:10;11762:31;;;;;;;;-1:-1:-1;;11808:37:0;;11804:263;;11890:6;11870:16;:26;;11862:79;;;;-1:-1:-1;;;11862:79:0;;6894:2:1;11862:79:0;;;6876:21:1;6933:2;6913:18;;;6906:30;6972:34;6952:18;;;6945:62;-1:-1:-1;;;7023:18:1;;;7016:38;7071:19;;11862:79:0;;;;;;;;;11985:55;11994:6;12002:10;12033:6;12014:16;:25;11985:8;:55::i;:::-;12079:36;12089:6;12097:9;12108:6;12079:9;:36::i;:::-;-1:-1:-1;12135:4:0;;11627:520;-1:-1:-1;;;;11627:520:0:o;17710:235::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;17845:4:::1;17837;17816:17;7079:16:::0;17832:1:::1;17816:17;:::i;:::-;17815:26;;;;:::i;:::-;17814:35;;;;:::i;:::-;17798:12;:51;;17790:101;;;::::0;-1:-1:-1;;;17790:101:0;;8191:2:1;17790:101:0::1;::::0;::::1;8173:21:1::0;8230:2;8210:18;;;8203:30;8269:34;8249:18;;;8242:62;-1:-1:-1;;;8320:18:1;;;8313:35;8365:19;;17790:101:0::1;7989:401:1::0;17790:101:0::1;17914:23;:12:::0;17930:6:::1;17914:23;:::i;:::-;17902:9;:35:::0;-1:-1:-1;17710:235:0:o;14930:300::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;15040:6:::1;:16:::0;;-1:-1:-1;;;;15067:26:0;-1:-1:-1;;;15040:16:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;15067:26:0;;;;;-1:-1:-1;;;15067:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;15104:18:0::1;-1:-1:-1::0;;;15104:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;15165:7;::::1;::::0;::::1;::::0;15142:20:::1;::::0;15151:11;;::::1;::::0;::::1;::::0;15142:6;::::1;;:20;:::i;:::-;:30;;;;:::i;:::-;15141:39;;15177:3;15141:39;15133:89;;;::::0;-1:-1:-1;;;15133:89:0;;8750:2:1;15133:89:0::1;::::0;::::1;8732:21:1::0;8789:2;8769:18;;;8762:30;8828:34;8808:18;;;8801:62;-1:-1:-1;;;8879:18:1;;;8872:35;8924:19;;15133:89:0::1;8548:401:1::0;15133:89:0::1;14930:300:::0;;;:::o;15238:343::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;15353:3:::1;15336:13;:20;;;;15328:76;;;::::0;-1:-1:-1;;;15328:76:0;;9156:2:1;15328:76:0::1;::::0;::::1;9138:21:1::0;9195:2;9175:18;;;9168:30;9234:34;9214:18;;;9207:62;-1:-1:-1;;;9285:18:1;;;9278:41;9336:19;;15328:76:0::1;8954:407:1::0;15328:76:0::1;15441:3;15423:14;:21;;;;15415:78;;;::::0;-1:-1:-1;;;15415:78:0;;9568:2:1;15415:78:0::1;::::0;::::1;9550:21:1::0;9607:2;9587:18;;;9580:30;9646:34;9626:18;;;9619:62;-1:-1:-1;;;9697:18:1;;;9690:42;9749:19;;15415:78:0::1;9366:408:1::0;15415:78:0::1;15504:12;:28:::0;;-1:-1:-1;;;;15543:30:0;-1:-1:-1;;;15504:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;15543:30:0;;-1:-1:-1;;;15543:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15238:343::o;15589:136::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15678:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;15678:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15589:136::o;17097:361::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;17222:6:::1;17201:17;7079:16:::0;17217:1:::1;17201:17;:::i;:::-;17200:28;;;;:::i;:::-;17183:13;:45;;17175:111;;;::::0;-1:-1:-1;;;17175:111:0;;9981:2:1;17175:111:0::1;::::0;::::1;9963:21:1::0;10020:2;10000:18;;;9993:30;10059:34;10039:18;;;10032:62;-1:-1:-1;;;10110:18:1;;;10103:51;10171:19;;17175:111:0::1;9779:417:1::0;17175:111:0::1;17344:4;17323:17;7079:16:::0;17339:1:::1;17323:17;:::i;:::-;17322:26;;;;:::i;:::-;17305:13;:43;;17297:108;;;::::0;-1:-1:-1;;;17297:108:0;;10403:2:1;17297:108:0::1;::::0;::::1;10385:21:1::0;10442:2;10422:18;;;10415:30;10481:34;10461:18;;;10454:62;-1:-1:-1;;;10532:18:1;;;10525:50;10592:19;;17297:108:0::1;10201:416:1::0;17297:108:0::1;17416:18;:34:::0;17097:361::o;15733:158::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15832:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;15832:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15733:158::o;5590:92::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;5672:1:::1;5655:19:::0;;-1:-1:-1;;;;;;5655:19:0::1;::::0;;5590:92::o;17466:236::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;17590:4:::1;17582;17561:17;7079:16:::0;17577:1:::1;17561:17;:::i;:::-;17560:26;;;;:::i;:::-;17559:35;;;;:::i;:::-;17547:8;:47;;17539:102;;;::::0;-1:-1:-1;;;17539:102:0;;10824:2:1;17539:102:0::1;::::0;::::1;10806:21:1::0;10863:2;10843:18;;;10836:30;10902:34;10882:18;;;10875:62;-1:-1:-1;;;10953:18:1;;;10946:40;11003:19;;17539:102:0::1;10622:406:1::0;17539:102:0::1;17675:19;:8:::0;17687:6:::1;17675:19;:::i;:::-;17652:20;:42:::0;-1:-1:-1;17466:236:0:o;14838:84::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;14892:14:::1;:22:::0;;-1:-1:-1;;;;14892:22:0::1;::::0;;14838:84::o;18329:177::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18413:24:0;::::1;18405:59;;;;-1:-1:-1::0;;;18405:59:0::1;;;;;;;:::i;:::-;18475:10;:23:::0;;-1:-1:-1;;;;;;18475:23:0::1;-1:-1:-1::0;;;;;18475:23:0;;;::::1;::::0;;;::::1;::::0;;18329:177::o;18136:185::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18224:24:0;::::1;18216:59;;;;-1:-1:-1::0;;;18216:59:0::1;;;;;;;:::i;:::-;18286:14;:27:::0;;-1:-1:-1;;;;;;18286:27:0::1;-1:-1:-1::0;;;;;18286:27:0;;;::::1;::::0;;;::::1;::::0;;18136:185::o;16878:211::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;16987:13:::1;-1:-1:-1::0;;;;;16979:21:0::1;:4;-1:-1:-1::0;;;;;16979:21:0::1;::::0;16971:60:::1;;;::::0;-1:-1:-1;;;16971:60:0;;11586:2:1;16971:60:0::1;::::0;::::1;11568:21:1::0;11625:2;11605:18;;;11598:30;11664:28;11644:18;;;11637:56;11710:18;;16971:60:0::1;11384:350:1::0;16971:60:0::1;-1:-1:-1::0;;;;;17042:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;17042:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16878:211::o;16530:340::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;16608:8:::1;::::0;-1:-1:-1;;;16608:8:0;::::1;;;16607:9;16599:38;;;;-1:-1:-1::0;;;16599:38:0::1;;;;;;;:::i;:::-;16720:4;16740:24;::::0;;;:9:::1;:24;::::0;;;;;;16811:10:::1;::::0;16648:214;;-1:-1:-1;;;16648:214:0;;::::1;::::0;::::1;12425:34:1::0;;;;12475:18;;;12468:34;12518:18;;;12511:34;;;12561:18;;;12554:34;;;;-1:-1:-1;;;;;16811:10:0::1;12604:19:1::0;;;12597:44;16836:15:0::1;12657:19:1::0;;;12650:35;8538:42:0::1;::::0;16648:31:::1;::::0;16687:9:::1;::::0;12359:19:1;;16648:214:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11461:158::-:0;11532:4;11549:40;11559:10;11571:9;11582:6;11549:9;:40::i;17953:175::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18036:24:0;::::1;18028:59;;;;-1:-1:-1::0;;;18028:59:0::1;;;;;;;:::i;:::-;18098:9;:22:::0;;-1:-1:-1;;;;;;18098:22:0::1;-1:-1:-1::0;;;;;18098:22:0;;;::::1;::::0;;;::::1;::::0;;17953:175::o;18645:240::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;18757:38:::1;::::0;-1:-1:-1;;;18757:38:0;;18789:4:::1;18757:38;::::0;::::1;1471:51:1::0;18730:24:0::1;::::0;-1:-1:-1;;;;;18757:23:0;::::1;::::0;::::1;::::0;1444:18:1;;18757:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18730:65;;18806:51;18829:5;18836:2;18840:16;18806:22;:51::i;18893:247::-:0;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18971:18:0;::::1;18963:46;;;::::0;-1:-1:-1;;;18963:46:0;;13398:2:1;18963:46:0::1;::::0;::::1;13380:21:1::0;13437:2;13417:18;;;13410:30;-1:-1:-1;;;13456:18:1;;;13449:45;13511:18;;18963:46:0::1;13196:339:1::0;18963:46:0::1;19023:12;19041:4;-1:-1:-1::0;;;;;19041:9:0::1;19058:21;19041:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19022:62;;;19103:7;19095:37;;;::::0;-1:-1:-1;;;19095:37:0;;13952:2:1;19095:37:0::1;::::0;::::1;13934:21:1::0;13991:2;13971:18;;;13964:30;-1:-1:-1;;;14010:18:1;;;14003:47;14067:18;;19095:37:0::1;13750:341:1::0;19095:37:0::1;18952:188;18893:247:::0;:::o;15899:492::-;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;16016:8:::1;::::0;-1:-1:-1;;;16016:8:0;::::1;;;16015:9;16007:38;;;;-1:-1:-1::0;;;16007:38:0::1;;;;;;;:::i;:::-;16061:9;16056:328;16080:9;:16;16076:1;:20;16056:328;;;16151:7;16159:1;16151:10;;;;;;;;:::i;:::-;;;;;;;16126:9;:21;16136:10;-1:-1:-1::0;;;;;16126:21:0::1;-1:-1:-1::0;;;;;16126:21:0::1;;;;;;;;;;;;;:35;;16118:86;;;;-1:-1:-1::0;;;16118:86:0::1;;;;;;;:::i;:::-;16246:7;16254:1;16246:10;;;;;;;;:::i;:::-;;;;;;;16219:9;:23;16229:9;16239:1;16229:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;16219:23:0::1;-1:-1:-1::0;;;;;16219:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;16296:7;16304:1;16296:10;;;;;;;;:::i;:::-;;;;;;;16271:9;:21;16281:10;-1:-1:-1::0;;;;;16271:21:0::1;-1:-1:-1::0;;;;;16271:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;16347:9;16357:1;16347:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;16326:46:0::1;16335:10;-1:-1:-1::0;;;;;16326:46:0::1;;16361:7;16369:1;16361:10;;;;;;;;:::i;:::-;;;;;;;16326:46;;;;1679:25:1::0;;1667:2;1652:18;;1533:177;16326:46:0::1;;;;;;;;16098:3:::0;::::1;::::0;::::1;:::i;:::-;;;;16056:328;;16399:123:::0;5515:10;5504:7;5415;5442:6;-1:-1:-1;;;;;5442:6:0;;5369:87;5504:7;-1:-1:-1;;;;;5504:21:0;;5496:66;;;;-1:-1:-1;;;5496:66:0;;;;;;;:::i;:::-;16459:8:::1;::::0;-1:-1:-1;;;16459:8:0;::::1;;;16458:9;16450:38;;;;-1:-1:-1::0;;;16450:38:0::1;;;;;;;:::i;:::-;16499:8;:15:::0;;-1:-1:-1;;;;16499:15:0::1;-1:-1:-1::0;;;16499:15:0::1;::::0;;16399:123::o;11116:337::-;-1:-1:-1;;;;;11209:19:0;;11201:68;;;;-1:-1:-1;;;11201:68:0;;15240:2:1;11201:68:0;;;15222:21:1;15279:2;15259:18;;;15252:30;15318:34;15298:18;;;15291:62;-1:-1:-1;;;15369:18:1;;;15362:34;15413:19;;11201:68:0;15038:400:1;11201:68:0;-1:-1:-1;;;;;11288:21:0;;11280:68;;;;-1:-1:-1;;;11280:68:0;;15645:2:1;11280:68:0;;;15627:21:1;15684:2;15664:18;;;15657:30;15723:34;15703:18;;;15696:62;-1:-1:-1;;;15774:18:1;;;15767:32;15816:19;;11280:68:0;15443:398:1;11280:68:0;-1:-1:-1;;;;;11361:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11413:32;;1679:25:1;;;11413:32:0;;1652:18:1;11413:32:0;;;;;;;11116:337;;;:::o;12155:2675::-;-1:-1:-1;;;;;12243:18:0;;12235:68;;;;-1:-1:-1;;;12235:68:0;;16048:2:1;12235:68:0;;;16030:21:1;16087:2;16067:18;;;16060:30;16126:34;16106:18;;;16099:62;-1:-1:-1;;;16177:18:1;;;16170:35;16222:19;;12235:68:0;15846:401:1;12235:68:0;-1:-1:-1;;;;;12322:16:0;;12314:64;;;;-1:-1:-1;;;12314:64:0;;16454:2:1;12314:64:0;;;16436:21:1;16493:2;16473:18;;;16466:30;16532:34;16512:18;;;16505:62;-1:-1:-1;;;16583:18:1;;;16576:33;16626:19;;12314:64:0;16252:399:1;12314:64:0;12406:1;12397:6;:10;12389:64;;;;-1:-1:-1;;;12389:64:0;;16858:2:1;12389:64:0;;;16840:21:1;16897:2;16877:18;;;16870:30;16936:34;16916:18;;;16909:62;-1:-1:-1;;;16987:18:1;;;16980:39;17036:19;;12389:64:0;16656:405:1;12389:64:0;12471:8;;-1:-1:-1;;;12471:8:0;;;;12470:9;:72;;;;-1:-1:-1;5415:7:0;5442:6;-1:-1:-1;;;;;12484:15:0;;;5442:6;;12484:15;;;;:40;;-1:-1:-1;;;;;;12503:21:0;;12519:4;12503:21;;12484:40;:57;;;;-1:-1:-1;5415:7:0;5442:6;-1:-1:-1;;;;;12528:13:0;;;5442:6;;12528:13;;12484:57;12466:134;;;12559:29;;-1:-1:-1;;;12559:29:0;;17268:2:1;12559:29:0;;;17250:21:1;17307:2;17287:18;;;17280:30;-1:-1:-1;;;17326:18:1;;;17319:49;17385:18;;12559:29:0;17066:343:1;12466:134:0;12616:14;;-1:-1:-1;;;12616:14:0;;;;12612:830;;;5415:7;5442:6;-1:-1:-1;;;;;12651:15:0;;;5442:6;;12651:15;;;;:32;;-1:-1:-1;5415:7:0;5442:6;-1:-1:-1;;;;;12670:13:0;;;5442:6;;12670:13;;12651:32;:52;;;;-1:-1:-1;;;;;;12687:16:0;;;;12651:52;:77;;;;-1:-1:-1;;;;;;12707:21:0;;12721:6;12707:21;;12651:77;:90;;;;-1:-1:-1;12733:8:0;;-1:-1:-1;;;12733:8:0;;;;12732:9;12651:90;12647:784;;;-1:-1:-1;;;;;12766:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;12802:35:0;;;;;;:31;:35;;;;;;;;12801:36;12766:71;12762:654;;;12880:20;;12870:6;:30;;12862:80;;;;-1:-1:-1;;;12862:80:0;;17616:2:1;12862:80:0;;;17598:21:1;17655:2;17635:18;;;17628:30;17694:34;17674:18;;;17667:62;-1:-1:-1;;;17745:18:1;;;17738:35;17790:19;;12862:80:0;17414:401:1;12862:80:0;12999:9;;-1:-1:-1;;;;;10780:18:0;;10753:7;10780:18;;;:9;:18;;;;;;12973:22;;:6;:22;:::i;:::-;:35;;12965:67;;;;-1:-1:-1;;;12965:67:0;;18022:2:1;12965:67:0;;;18004:21:1;18061:2;18041:18;;;18034:30;-1:-1:-1;;;18080:18:1;;;18073:49;18139:18;;12965:67:0;17820:343:1;12965:67:0;12762:654;;;-1:-1:-1;;;;;13062:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;13096:37:0;;;;;;:31;:37;;;;;;;;13095:38;13062:71;13058:358;;;13176:20;;13166:6;:30;;13158:80;;;;-1:-1:-1;;;13158:80:0;;18370:2:1;13158:80:0;;;18352:21:1;18409:2;18389:18;;;18382:30;18448:34;18428:18;;;18421:62;-1:-1:-1;;;18499:18:1;;;18492:36;18545:19;;13158:80:0;18168:402:1;13058:358:0;-1:-1:-1;;;;;13269:35:0;;;;;;:31;:35;;;;;;;;13264:152;;13363:9;;-1:-1:-1;;;;;10780:18:0;;10753:7;10780:18;;;:9;:18;;;;;;13337:22;;:6;:22;:::i;:::-;:35;;13329:67;;;;-1:-1:-1;;;13329:67:0;;18022:2:1;13329:67:0;;;18004:21:1;18061:2;18041:18;;;18034:30;-1:-1:-1;;;18080:18:1;;;18073:49;18139:18;;13329:67:0;17820:343:1;13329:67:0;13497:18;;13487:4;13454:12;10780:18;;;:9;:18;;;;;;-1:-1:-1;13469:46:0;;;;;13532:20;;-1:-1:-1;13544:8:0;;-1:-1:-1;;;13544:8:0;;;;13543:9;13532:20;:56;;;;-1:-1:-1;;;;;;13557:31:0;;;;;;:25;:31;;;;;;;;13556:32;13532:56;:86;;;;-1:-1:-1;;;;;;13593:25:0;;;;;;:19;:25;;;;;;;;13592:26;13532:86;:114;;;;-1:-1:-1;;;;;;13623:23:0;;;;;;:19;:23;;;;;;;;13622:24;13532:114;13528:218;;;13663:8;:15;;-1:-1:-1;;;;13663:15:0;-1:-1:-1;;;13663:15:0;;;13693:10;:8;:10::i;:::-;13718:8;:16;;-1:-1:-1;;;;13718:16:0;;;13528:218;13774:8;;-1:-1:-1;;;;;13799:25:0;;13758:12;13799:25;;;:19;:25;;;;;;13774:8;-1:-1:-1;;;13774:8:0;;;;;13773:9;;13799:25;;:52;;-1:-1:-1;;;;;;13828:23:0;;;;;;:19;:23;;;;;;;;13799:52;13795:100;;;-1:-1:-1;13878:5:0;13795:100;-1:-1:-1;;;;;13931:15:0;;13907:21;13931:15;;;:9;:15;;;;;;13965:23;;;;13957:74;;;;-1:-1:-1;;;13957:74:0;;;;;;;:::i;:::-;14044:12;14075:7;14071:600;;;-1:-1:-1;;;;;14103:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;14136:13:0;;-1:-1:-1;;;14136:13:0;;;;:17;;14103:50;14099:262;;;14191:13;;14208:3;;14182:22;;-1:-1:-1;;;14191:13:0;;;;14182:6;:22;:::i;:::-;14181:30;;;;:::i;:::-;14174:37;;14099:262;;;-1:-1:-1;;;;;14237:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;14272:12:0;;-1:-1:-1;;;14272:12:0;;;;:16;;14237:51;14233:128;;;14326:12;;14342:3;;14317:21;;-1:-1:-1;;;14326:12:0;;;;14317:6;:21;:::i;:::-;14316:29;;;;:::i;:::-;14309:36;;14233:128;14381:8;;14377:283;;-1:-1:-1;;;;;14488:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;14552:4;14534:24;;;;;;;:32;;;;;;14609:35;1679:25:1;;;14452:13:0;;;;;14552:4;;14488:15;14609:35;;1652:18:1;14609:35:0;;;;;;;14377:283;-1:-1:-1;;;;;14706:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;14746:13;;;;;;;;;;:23;;;;;;14796:26;;;;;;14725:6;1679:25:1;;1667:2;1652:18;;1533:177;14796:26:0;;;;;;;;12224:2606;;;;12155:2675;;;:::o;5714:320::-;5845:59;;;-1:-1:-1;;;;;18767:32:1;;;5845:59:0;;;18749:51:1;18816:18;;;;18809:34;;;5845:59:0;;;;;;;;;;18722:18:1;;;;5845:59:0;;;;;;;-1:-1:-1;;;;;5845:59:0;-1:-1:-1;;;5845:59:0;;;5834:71;;-1:-1:-1;;;;5834:10:0;;;;:71;;5845:59;5834:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5798:107;;;;5924:7;:57;;;;-1:-1:-1;5936:11:0;;:16;;:44;;;5967:4;5956:24;;;;;;;;;;;;:::i;:::-;5916:110;;;;-1:-1:-1;;;5916:110:0;;19598:2:1;5916:110:0;;;19580:21:1;19637:2;19617:18;;;19610:30;19676:34;19656:18;;;19649:62;-1:-1:-1;;;19727:18:1;;;19720:38;19775:19;;5916:110:0;19396:404:1;5916:110:0;5787:247;;5714:320;;;:::o;19148:1117::-;19211:18;;19187:21;19296:23;19211:18;19317:2;19296:23;:::i;:::-;19287:4;10753:7;10780:18;;;:9;:18;;;;;;19269:50;19265:122;;;19352:18;;:23;;19373:2;19352:23;:::i;:::-;19336:39;;19265:122;19423:16;;;19437:1;19423:16;;;;;;;;19399:21;;19423:16;;;;;;;;;;-1:-1:-1;19423:16:0;19399:40;;19468:4;19450;19455:1;19450:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19450:23:0;;;-1:-1:-1;;;;;19450:23:0;;;;;7549:42;19484:4;19489:1;19484:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19484:14:0;;;:7;;;;;;;;;;;:14;19511:122;;-1:-1:-1;;;19511:122:0;;8538:42;;19511:66;;:122;;19578:13;;19593:1;;19596:4;;19610;;19617:15;;19511:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19667:21:0;;-1:-1:-1;;19703:14:0;;;-1:-1:-1;19699:559:0;;19768:6;;19734:17;;19778:3;;19755:19;;-1:-1:-1;;;19768:6:0;;;;19755:10;:19;:::i;:::-;19754:27;;;;:::i;:::-;19831:7;;19734:47;;-1:-1:-1;19796:18:0;;19842:3;;19818:20;;-1:-1:-1;;;19831:7:0;;;;19818:10;:20;:::i;:::-;19817:28;;;;:::i;:::-;19796:49;-1:-1:-1;19860:22:0;19796:49;19885:22;19898:9;19885:10;:22;:::i;:::-;:35;;;;:::i;:::-;19959:10;;19951:47;;19860:60;;-1:-1:-1;;;;;;19959:10:0;;19983;;19951:47;;;;19983:10;19959;19951:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20035:14:0;;20027:55;;19937:61;;-1:-1:-1;;;;;;20035:14:0;;20063;;20027:55;;;;20063:14;20035;20027:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20119:9:0;;20111:45;;20013:69;;-1:-1:-1;;;;;;20119:9:0;;20142;;20111:45;;;;20142:9;20119;20111:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20178:68:0;;;21021:25:1;;;21077:2;21062:18;;21055:34;;;21105:18;;;21098:34;;;21163:2;21148:18;;21141:34;;;20097:59:0;;-1:-1:-1;20178:68:0;;21008:3:1;20993:19;20178:68:0;;;;;;;19719:539;;;19699:559;19176:1089;;;;19148:1117::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:254::-;916:6;924;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:29;1035:9;1016:29;:::i;:::-;1006:39;1092:2;1077:18;;;;1064:32;;-1:-1:-1;;;848:254:1:o;1904:328::-;1981:6;1989;1997;2050:2;2038:9;2029:7;2025:23;2021:32;2018:52;;;2066:1;2063;2056:12;2018:52;2089:29;2108:9;2089:29;:::i;:::-;2079:39;;2137:38;2171:2;2160:9;2156:18;2137:38;:::i;:::-;2127:48;;2222:2;2211:9;2207:18;2194:32;2184:42;;1904:328;;;;;:::o;2237:180::-;2296:6;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;-1:-1:-1;2388:23:1;;2237:180;-1:-1:-1;2237:180:1:o;2422:156::-;2488:20;;2548:4;2537:16;;2527:27;;2517:55;;2568:1;2565;2558:12;2583:322;2654:6;2662;2670;2723:2;2711:9;2702:7;2698:23;2694:32;2691:52;;;2739:1;2736;2729:12;2691:52;2762:27;2779:9;2762:27;:::i;:::-;2752:37;;2808:36;2840:2;2829:9;2825:18;2808:36;:::i;:::-;2798:46;;2863:36;2895:2;2884:9;2880:18;2863:36;:::i;:::-;2853:46;;2583:322;;;;;:::o;3118:252::-;3182:6;3190;3243:2;3231:9;3222:7;3218:23;3214:32;3211:52;;;3259:1;3256;3249:12;3211:52;3282:27;3299:9;3282:27;:::i;:::-;3272:37;;3328:36;3360:2;3349:9;3345:18;3328:36;:::i;:::-;3318:46;;3118:252;;;;;:::o;3375:118::-;3461:5;3454:13;3447:21;3440:5;3437:32;3427:60;;3483:1;3480;3473:12;3427:60;3375:118;:::o;3498:315::-;3563:6;3571;3624:2;3612:9;3603:7;3599:23;3595:32;3592:52;;;3640:1;3637;3630:12;3592:52;3663:29;3682:9;3663:29;:::i;:::-;3653:39;;3742:2;3731:9;3727:18;3714:32;3755:28;3777:5;3755:28;:::i;:::-;3802:5;3792:15;;;3498:315;;;;;:::o;3818:186::-;3877:6;3930:2;3918:9;3909:7;3905:23;3901:32;3898:52;;;3946:1;3943;3936:12;3898:52;3969:29;3988:9;3969:29;:::i;:::-;3959:39;3818:186;-1:-1:-1;;;3818:186:1:o;4009:260::-;4077:6;4085;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4177:29;4196:9;4177:29;:::i;:::-;4167:39;;4225:38;4259:2;4248:9;4244:18;4225:38;:::i;4274:127::-;4335:10;4330:3;4326:20;4323:1;4316:31;4366:4;4363:1;4356:15;4390:4;4387:1;4380:15;4406:275;4477:2;4471:9;4542:2;4523:13;;-1:-1:-1;;4519:27:1;4507:40;;4577:18;4562:34;;4598:22;;;4559:62;4556:88;;;4624:18;;:::i;:::-;4660:2;4653:22;4406:275;;-1:-1:-1;4406:275:1:o;4686:183::-;4746:4;4779:18;4771:6;4768:30;4765:56;;;4801:18;;:::i;:::-;-1:-1:-1;4846:1:1;4842:14;4858:4;4838:25;;4686:183::o;4874:662::-;4928:5;4981:3;4974:4;4966:6;4962:17;4958:27;4948:55;;4999:1;4996;4989:12;4948:55;5035:6;5022:20;5061:4;5085:60;5101:43;5141:2;5101:43;:::i;:::-;5085:60;:::i;:::-;5179:15;;;5265:1;5261:10;;;;5249:23;;5245:32;;;5210:12;;;;5289:15;;;5286:35;;;5317:1;5314;5307:12;5286:35;5353:2;5345:6;5341:15;5365:142;5381:6;5376:3;5373:15;5365:142;;;5447:17;;5435:30;;5485:12;;;;5398;;5365:142;;;-1:-1:-1;5525:5:1;4874:662;-1:-1:-1;;;;;;4874:662:1:o;5541:1146::-;5659:6;5667;5720:2;5708:9;5699:7;5695:23;5691:32;5688:52;;;5736:1;5733;5726:12;5688:52;5776:9;5763:23;5805:18;5846:2;5838:6;5835:14;5832:34;;;5862:1;5859;5852:12;5832:34;5900:6;5889:9;5885:22;5875:32;;5945:7;5938:4;5934:2;5930:13;5926:27;5916:55;;5967:1;5964;5957:12;5916:55;6003:2;5990:16;6025:4;6049:60;6065:43;6105:2;6065:43;:::i;6049:60::-;6143:15;;;6225:1;6221:10;;;;6213:19;;6209:28;;;6174:12;;;;6249:19;;;6246:39;;;6281:1;6278;6271:12;6246:39;6305:11;;;;6325:148;6341:6;6336:3;6333:15;6325:148;;;6407:23;6426:3;6407:23;:::i;:::-;6395:36;;6358:12;;;;6451;;;;6325:148;;;6492:5;-1:-1:-1;;6535:18:1;;6522:32;;-1:-1:-1;;6566:16:1;;;6563:36;;;6595:1;6592;6585:12;6563:36;;6618:63;6673:7;6662:8;6651:9;6647:24;6618:63;:::i;:::-;6608:73;;;5541:1146;;;;;:::o;7101:356::-;7303:2;7285:21;;;7322:18;;;7315:30;7381:34;7376:2;7361:18;;7354:62;7448:2;7433:18;;7101:356::o;7462:127::-;7523:10;7518:3;7514:20;7511:1;7504:31;7554:4;7551:1;7544:15;7578:4;7575:1;7568:15;7594:168;7667:9;;;7698;;7715:15;;;7709:22;;7695:37;7685:71;;7736:18;;:::i;7767:217::-;7807:1;7833;7823:132;;7877:10;7872:3;7868:20;7865:1;7858:31;7912:4;7909:1;7902:15;7940:4;7937:1;7930:15;7823:132;-1:-1:-1;7969:9:1;;7767:217::o;8395:148::-;8483:4;8462:12;;;8476;;;8458:31;;8501:13;;8498:39;;;8517:18;;:::i;11033:346::-;11235:2;11217:21;;;11274:2;11254:18;;;11247:30;-1:-1:-1;;;11308:2:1;11293:18;;11286:52;11370:2;11355:18;;11033:346::o;11739:340::-;11941:2;11923:21;;;11980:2;11960:18;;;11953:30;-1:-1:-1;;;12014:2:1;11999:18;;11992:46;12070:2;12055:18;;11739:340::o;12696:306::-;12784:6;12792;12800;12853:2;12841:9;12832:7;12828:23;12824:32;12821:52;;;12869:1;12866;12859:12;12821:52;12898:9;12892:16;12882:26;;12948:2;12937:9;12933:18;12927:25;12917:35;;12992:2;12981:9;12977:18;12971:25;12961:35;;12696:306;;;;;:::o;13007:184::-;13077:6;13130:2;13118:9;13109:7;13105:23;13101:32;13098:52;;;13146:1;13143;13136:12;13098:52;-1:-1:-1;13169:16:1;;13007:184;-1:-1:-1;13007:184:1:o;14096:127::-;14157:10;14152:3;14148:20;14145:1;14138:31;14188:4;14185:1;14178:15;14212:4;14209:1;14202:15;14228:402;14430:2;14412:21;;;14469:2;14449:18;;;14442:30;14508:34;14503:2;14488:18;;14481:62;-1:-1:-1;;;14574:2:1;14559:18;;14552:36;14620:3;14605:19;;14228:402::o;14635:125::-;14700:9;;;14721:10;;;14718:36;;;14734:18;;:::i;14765:128::-;14832:9;;;14853:11;;;14850:37;;;14867:18;;:::i;14898:135::-;14937:3;14958:17;;;14955:43;;14978:18;;:::i;:::-;-1:-1:-1;15025:1:1;15014:13;;14898:135::o;18854:287::-;18983:3;19021:6;19015:13;19037:66;19096:6;19091:3;19084:4;19076:6;19072:17;19037:66;:::i;:::-;19119:16;;;;;18854:287;-1:-1:-1;;18854:287:1:o;19146:245::-;19213:6;19266:2;19254:9;19245:7;19241:23;19237:32;19234:52;;;19282:1;19279;19272:12;19234:52;19314:9;19308:16;19333:28;19355:5;19333:28;:::i;19805:980::-;20067:4;20115:3;20104:9;20100:19;20146:6;20135:9;20128:25;20172:2;20210:6;20205:2;20194:9;20190:18;20183:34;20253:3;20248:2;20237:9;20233:18;20226:31;20277:6;20312;20306:13;20343:6;20335;20328:22;20381:3;20370:9;20366:19;20359:26;;20420:2;20412:6;20408:15;20394:29;;20441:1;20451:195;20465:6;20462:1;20459:13;20451:195;;;20530:13;;-1:-1:-1;;;;;20526:39:1;20514:52;;20621:15;;;;20586:12;;;;20562:1;20480:9;20451:195;;;-1:-1:-1;;;;;;;20702:32:1;;;;20697:2;20682:18;;20675:60;-1:-1:-1;;;20766:3:1;20751:19;20744:35;20663:3;19805:980;-1:-1:-1;;;19805:980:1:o

Swarm Source

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