ETH Price: $3,378.98 (+0.86%)
Gas: 10 Gwei

Token

Ho Le Fuk (HO_LE_FUK)
 

Overview

Max Total Supply

100,000,000,000 HO_LE_FUK

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
jetlijonny.eth
Balance
1,539,054,750.180325630888021811 HO_LE_FUK

Value
$0.00
0x8314f27666944feb78e16d5311a94d23da6e4fd5
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:
Ho_Le_Fuk

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-10
*/

// SPDX-License-Identifier: MIT

/**
Twitter: https://twitter.com/@fuk_le29871
Website: https://ho_le_fuk.me
Telegram: https://t.me/HoLeFukMain

Ho Le Fuk Token combines the popular Pepe the Frog meme with the allure of Chinese cultural elements, 
creating a unique and captivating fusion that respects tradition and embraces the future. 
Imagine a world where Pepe the Frog meets ancient Chinese wisdom – that’s Ho Le Fuk! 
This memecoin isn’t just another token; it’s a cultural phenomenon, bringing humor, history, 
and a whole lot of “WTF?” to the crypto space. Playing on one of the most famous Chinese memes, 
"Ho Le Shit," and the "Wen Moon" craze, Ho Le Fuk merges these iconic themes with the beloved Chinese Pepe. 
We're taking over alongside Pei Pei and other legendary Chinese memes, making this token destined to go viral.

⠀⠀⢀⣠⠤⠶⠖⠒⠒⠶⠦⠤⣄⠀⠀⠀⣀⡤⠤⠤⠤⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣦⠞⠁⠀⠀⠀⠀⠀⠀⠉⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡾⠁⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⣘⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⡴⠚⠉⠁⠀⠀⠀⠀⠈⠉⠙⠲⣄⣤⠤⠶⠒⠒⠲⠦⢤⣜⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀⠉⠳⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⠹⣆⠀⠀⠀⠀⠀⠀⣀⣀⣀⣹⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠞⣉⣡⠤⠴⠿⠗⠳⠶⣬⣙⠓⢦⡈⠙⢿⡀⠀⠀⢀⣼⣿⣿⣿⣿⣿⡿⣷⣤⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣾⣡⠞⣁⣀⣀⣀⣠⣤⣤⣤⣄⣭⣷⣦⣽⣦⡀⢻⡄⠰⢟⣥⣾⣿⣏⣉⡙⠓⢦⣻⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠉⠉⠙⠻⢤⣄⣼⣿⣽⣿⠟⠻⣿⠄⠀⠀⢻⡝⢿⡇⣠⣿⣿⣻⣿⠿⣿⡉⠓⠮⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠙⢦⡈⠛⠿⣾⣿⣶⣾⡿⠀⠀⠀⢀⣳⣘⢻⣇⣿⣿⣽⣿⣶⣾⠃⣀⡴⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⠲⠤⢄⣈⣉⣙⣓⣒⣒⣚⣉⣥⠟⠀⢯⣉⡉⠉⠉⠛⢉⣉⣡⡾⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣠⣤⡤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⡿⠋⠀⠀⠀⠀⠈⠻⣍⠉⠀⠺⠿⠋⠙⣦⠀⠀⠀⠀⠀⠀⠀
⠀⣀⣥⣤⠴⠆⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠖⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⠀⠀⠀⠀⠀⢸⣧⠀⠀⠀⠀⠀⠀
⠸⢫⡟⠙⣛⠲⠤⣄⣀⣀⠀⠈⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠏⣨⠇⠀⠀⠀⠀⠀
⠀⠀⠻⢦⣈⠓⠶⠤⣄⣉⠉⠉⠛⠒⠲⠦⠤⠤⣤⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣠⠴⢋⡴⠋⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠉⠓⠦⣄⡀⠈⠙⠓⠒⠶⠶⠶⠶⠤⣤⣀⣀⣀⣀⣀⣉⣉⣉⣉⣉⣀⣠⠴⠋⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠉⠓⠦⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠒⠒⠒⠒⠒⠤⠤⠤⠒⠒⠒⠒⠒⠒⠚⢉⡇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠴⠚⠛⠳⣤⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠚⠁⠀⠀⠀⠀⠘⠲⣄⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠋⠙⢷⡋⢙⡇⢀⡴⢒⡿⢶⣄⡴⠀⠙⠳⣄⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠈⠛⢻⠛⢉⡴⣋⡴⠟⠁⠀⠀⠀⠀⠈⢧⡀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡄⠀⠘⣶⢋⡞⠁⠀⠀⢀⡴⠂⠀⠀⠀⠀⠹⣄⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠈⠻⢦⡀⠀⣰⠏⠀⠀⢀⡴⠃⢀⡄⠙⣆⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡾⢷⡄⠀⠀⠀⠀⠉⠙⠯⠀⠀⡴⠋⠀⢠⠟⠀⠀⢹⡄

**/

pragma solidity ^0.8.21;
pragma experimental ABIEncoderV2;

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

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

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;

        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Ho_Le_Fuk is ERC20, Ownable {

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Ho Le Fuk";
    string private constant _symbol = "HO_LE_FUK";

    uint256 public initialTotalSupply = 100_000_000_000 * 1e18;
    uint256 public maxTransactionAmount = initialTotalSupply / 100;
    uint256 public maxWallet = initialTotalSupply / 50;
    uint256 public swapTokensAtAmount = 5000000 * 1e18;

    uint256 private blockStart;
    uint256 private blockAdd;
    uint256 private blockSnipe;

    bool public tradingOpen = false;
    bool public swapEnabled = false;
    bool public limitsInEffect = true;
    mapping(uint256 => uint256) private swapInBlock;

    uint256 public BuyFee = 0;
    uint256 public SellFee = 0;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);

        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(wallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _mint(_msgSender(), initialTotalSupply * 100 / 100);
        
    }

    receive() external payable {}

    function openTrading(uint256 openingFee, uint256 maxOpen, uint256 _blocksnipe) external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        BuyFee = openingFee;
        SellFee = openingFee;
        maxTransactionAmount = initialTotalSupply / maxOpen;
        maxWallet = initialTotalSupply / maxOpen;
        blockSnipe = _blocksnipe;
        blockStart = block.number;
        swapEnabled = true;
        tradingOpen = true;
    }
    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        uint256 blockNum = block.number;

                if (limitsInEffect) {

                   if(blockNum > (blockStart + blockSnipe))
                    {
                      BuyFee = 40;
                      SellFee = 40;

                      maxTransactionAmount = initialTotalSupply / 200;
                      maxWallet = initialTotalSupply / 100;
                    }


                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

                if (!tradingOpen) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }

                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }

                else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
          }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && (swapInBlock[blockNum] < 3)) {
            swapping = true;
            swapBack();
            ++swapInBlock[blockNum];
            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount * SellFee / 100;
            }
            else {
                fees = amount * BuyFee / 100;
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

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

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

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

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

    function clearStuckEth() external {
        require(_msgSender() == marketingWallet);
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens(uint256 amount) external {
        require(_msgSender() == marketingWallet);
        swapTokensForEth(amount * (10 ** 18));
    }

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 30 && _sellFee <= 30, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        marketingWallet = newMarketingWallet;
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
          require(addresses.length > 0 && amounts.length == addresses.length);
          address from = msg.sender;

          for (uint i = 0; i < addresses.length; i++) {

            _transfer(from, addresses[i], amounts[i] * (10**18));

          }
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 100) {
            contractBalance = swapTokensAtAmount * 100;
        }

        tokensToSwap = contractBalance;
        swapTokensForEth(tokensToSwap);

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"openingFee","type":"uint256"},{"internalType":"uint256","name":"maxOpen","type":"uint256"},{"internalType":"uint256","name":"_blocksnipe","type":"uint256"}],"name":"openTrading","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":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526c01431e0fae6d7217caa0000000600855606460085461002491906109f0565b600955603260085461003691906109f0565b600a556a0422ca8b0a00a425000000600b555f600f5f6101000a81548160ff0219169083151502179055505f600f60016101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff0219169083151502179055505f6011555f6012553480156100a9575f80fd5b5060405161464e38038061464e83398181016040528101906100cb9190610a7e565b6040518060400160405280600981526020017f486f204c652046756b00000000000000000000000000000000000000000000008152506040518060400160405280600981526020017f484f5f4c455f46554b000000000000000000000000000000000000000000000081525081600390816101469190610cda565b5080600490816101569190610cda565b50505061017561016a6104ec60201b60201c565b6104f360201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022c9190610a7e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610293573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b79190610a7e565b6040518363ffffffff1660e01b81526004016102d4929190610db8565b6020604051808303815f875af11580156102f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103149190610a7e565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061038560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016105b660201b60201c565b6103b760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161065460201b60201c565b6103ca608051600161065460201b60201c565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061042861041b6106ba60201b60201c565b60016106e260201b60201c565b6104393060016106e260201b60201c565b61044a8160016106e260201b60201c565b61045d61dead60016106e260201b60201c565b61047b61046e6106ba60201b60201c565b600161065460201b60201c565b61048c30600161065460201b60201c565b61049d81600161065460201b60201c565b6104b061dead600161065460201b60201c565b6104e66104c16104ec60201b60201c565b6064806008546104d19190610ddf565b6104db91906109f0565b61079660201b60201c565b50610f8e565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6106626108f960201b60201c565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106f06108f960201b60201c565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161078a9190610e3a565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90610ead565b60405180910390fd5b6108155f838361098360201b60201c565b8060025f8282546108269190610ecb565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108789190610ecb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108dc9190610f0d565b60405180910390a36108f55f838361098860201b60201c565b5050565b6109076104ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661092b6106ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097890610f70565b60405180910390fd5b565b505050565b505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6109fa8261098d565b9150610a058361098d565b925082610a1557610a14610996565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a4d82610a24565b9050919050565b610a5d81610a43565b8114610a67575f80fd5b50565b5f81519050610a7881610a54565b92915050565b5f60208284031215610a9357610a92610a20565b5b5f610aa084828501610a6a565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b2457607f821691505b602082108103610b3757610b36610ae0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b5e565b610ba38683610b5e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610bde610bd9610bd48461098d565b610bbb565b61098d565b9050919050565b5f819050919050565b610bf783610bc4565b610c0b610c0382610be5565b848454610b6a565b825550505050565b5f90565b610c1f610c13565b610c2a818484610bee565b505050565b5b81811015610c4d57610c425f82610c17565b600181019050610c30565b5050565b601f821115610c9257610c6381610b3d565b610c6c84610b4f565b81016020851015610c7b578190505b610c8f610c8785610b4f565b830182610c2f565b50505b505050565b5f82821c905092915050565b5f610cb25f1984600802610c97565b1980831691505092915050565b5f610cca8383610ca3565b9150826002028217905092915050565b610ce382610aa9565b67ffffffffffffffff811115610cfc57610cfb610ab3565b5b610d068254610b0d565b610d11828285610c51565b5f60209050601f831160018114610d42575f8415610d30578287015190505b610d3a8582610cbf565b865550610da1565b601f198416610d5086610b3d565b5f5b82811015610d7757848901518255600182019150602085019450602081019050610d52565b86831015610d945784890151610d90601f891682610ca3565b8355505b6001600288020188555050505b505050505050565b610db281610a43565b82525050565b5f604082019050610dcb5f830185610da9565b610dd86020830184610da9565b9392505050565b5f610de98261098d565b9150610df48361098d565b9250828202610e028161098d565b91508282048414831517610e1957610e186109c3565b5b5092915050565b5f8115159050919050565b610e3481610e20565b82525050565b5f602082019050610e4d5f830184610e2b565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610e97601f83610e53565b9150610ea282610e63565b602082019050919050565b5f6020820190508181035f830152610ec481610e8b565b9050919050565b5f610ed58261098d565b9150610ee08361098d565b9250828201905080821115610ef857610ef76109c3565b5b92915050565b610f078161098d565b82525050565b5f602082019050610f205f830184610efe565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610f5a602083610e53565b9150610f6582610f26565b602082019050919050565b5f6020820190508181035f830152610f8781610f4e565b9050919050565b608051613693610fbb5f395f8181610a800152818161202601528181612105015261212c01526136935ff3fe608060405260043610610207575f3560e01c806389291a8f11610117578063c8c8ebe41161009f578063e2f456051161006e578063e2f4560514610730578063f2fde38b1461075a578063f82d36e814610782578063f8b45b05146107aa578063ffb54a99146107d45761020e565b8063c8c8ebe414610676578063cf9522fd146106a0578063dd62ed3e146106ca578063dd854652146107065761020e565b8063a457c2d7116100e6578063a457c2d714610586578063a9059cbb146105c2578063aacebbe3146105fe578063afa4f3b214610626578063c02466681461064e5761020e565b806389291a8f146104f45780638da5cb5b1461050a57806395d89b41146105345780639a7a23d61461055e5761020e565b80634a62bb651161019a5780636ddd1713116101695780636ddd17131461043a57806370a0823114610464578063715018a6146104a0578063751039fc146104b65780637571336a146104cc5761020e565b80634a62bb651461039657806352f7c988146103c0578063583e0568146103e857806367243482146104125761020e565b8063311028af116101d6578063311028af146102de578063313ce5671461030857806334848b9a14610332578063395093511461035a5761020e565b806306fdde0314610212578063095ea7b31461023c57806318160ddd1461027857806323b872dd146102a25761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b506102266107fe565b6040516102339190612517565b60405180910390f35b348015610247575f80fd5b50610262600480360381019061025d91906125cc565b61088e565b60405161026f9190612624565b60405180910390f35b348015610283575f80fd5b5061028c6108b0565b604051610299919061264c565b60405180910390f35b3480156102ad575f80fd5b506102c860048036038101906102c39190612665565b6108b9565b6040516102d59190612624565b60405180910390f35b3480156102e9575f80fd5b506102f26108e7565b6040516102ff919061264c565b60405180910390f35b348015610313575f80fd5b5061031c6108ed565b60405161032991906126d0565b60405180910390f35b34801561033d575f80fd5b50610358600480360381019061035391906126e9565b6108f5565b005b348015610365575f80fd5b50610380600480360381019061037b91906125cc565b6109ca565b60405161038d9190612624565b60405180910390f35b3480156103a1575f80fd5b506103aa610a00565b6040516103b79190612624565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e19190612739565b610a13565b005b3480156103f3575f80fd5b506103fc610a7e565b60405161040991906127d2565b60405180910390f35b34801561041d575f80fd5b50610438600480360381019061043391906128a1565b610aa2565b005b348015610445575f80fd5b5061044e610b45565b60405161045b9190612624565b60405180910390f35b34801561046f575f80fd5b5061048a6004803603810190610485919061291f565b610b58565b604051610497919061264c565b60405180910390f35b3480156104ab575f80fd5b506104b4610b9d565b005b3480156104c1575f80fd5b506104ca610bb0565b005b3480156104d7575f80fd5b506104f260048036038101906104ed9190612974565b610bd4565b005b3480156104ff575f80fd5b50610508610c34565b005b348015610515575f80fd5b5061051e610d1b565b60405161052b91906129c1565b60405180910390f35b34801561053f575f80fd5b50610548610d43565b6040516105559190612517565b60405180910390f35b348015610569575f80fd5b50610584600480360381019061057f9190612974565b610dd3565b005b348015610591575f80fd5b506105ac60048036038101906105a791906125cc565b610e78565b6040516105b99190612624565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e391906125cc565b610eed565b6040516105f59190612624565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f919061291f565b610f0f565b005b348015610631575f80fd5b5061064c600480360381019061064791906129da565b610f5a565b005b348015610659575f80fd5b50610674600480360381019061066f9190612974565b610f7f565b005b348015610681575f80fd5b5061068a61102d565b604051610697919061264c565b60405180910390f35b3480156106ab575f80fd5b506106b4611033565b6040516106c1919061264c565b60405180910390f35b3480156106d5575f80fd5b506106f060048036038101906106eb9190612a05565b611039565b6040516106fd919061264c565b60405180910390f35b348015610711575f80fd5b5061071a6110bb565b604051610727919061264c565b60405180910390f35b34801561073b575f80fd5b506107446110c1565b604051610751919061264c565b60405180910390f35b348015610765575f80fd5b50610780600480360381019061077b919061291f565b6110c7565b005b34801561078d575f80fd5b506107a860048036038101906107a391906129da565b611149565b005b3480156107b5575f80fd5b506107be6111c7565b6040516107cb919061264c565b60405180910390f35b3480156107df575f80fd5b506107e86111cd565b6040516107f59190612624565b60405180910390f35b60606003805461080d90612a70565b80601f016020809104026020016040519081016040528092919081815260200182805461083990612a70565b80156108845780601f1061085b57610100808354040283529160200191610884565b820191905f5260205f20905b81548152906001019060200180831161086757829003601f168201915b5050505050905090565b5f806108986111df565b90506108a58185856111e6565b600191505092915050565b5f600254905090565b5f806108c36111df565b90506108d08582856113a9565b6108db858585611434565b60019150509392505050565b60085481565b5f6012905090565b6108fd611daa565b600f5f9054906101000a900460ff161561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612aea565b60405180910390fd5b8260118190555082601281905550816008546109689190612b62565b6009819055508160085461097c9190612b62565b600a8190555080600e8190555043600c819055506001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff021916908315150217905550505050565b5f806109d46111df565b90506109f58185856109e68589611039565b6109f09190612b92565b6111e6565b600191505092915050565b600f60029054906101000a900460ff1681565b610a1b611daa565b601e8211158015610a2d5750601e8111155b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612c0f565b60405180910390fd5b81601181905550806012819055505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f84849050118015610ab957508383905082829050145b610ac1575f80fd5b5f3390505f5b85859050811015610b3d57610b3082878784818110610ae957610ae8612c2d565b5b9050602002016020810190610afe919061291f565b670de0b6b3a7640000878786818110610b1a57610b19612c2d565b5b90506020020135610b2b9190612c5a565b611434565b8080600101915050610ac7565b505050505050565b600f60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ba5611daa565b610bae5f611e28565b565b610bb8611daa565b5f600f60026101000a81548160ff021916908315150217905550565b610bdc611daa565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c746111df565b73ffffffffffffffffffffffffffffffffffffffff1614610c93575f80fd5b5f4711610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612ce5565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d18573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d5290612a70565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7e90612a70565b8015610dc95780601f10610da057610100808354040283529160200191610dc9565b820191905f5260205f20905b815481529060010190602001808311610dac57829003601f168201915b5050505050905090565b610ddb611daa565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612d73565b60405180910390fd5b610e748282611eeb565b5050565b5f80610e826111df565b90505f610e8f8286611039565b905083811015610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90612e01565b60405180910390fd5b610ee182868684036111e6565b60019250505092915050565b5f80610ef76111df565b9050610f04818585611434565b600191505092915050565b610f17611daa565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f62611daa565b670de0b6b3a764000081610f769190612c5a565b600b8190555050565b610f87611daa565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110219190612624565b60405180910390a25050565b60095481565b60125481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b600b5481565b6110cf611daa565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490612e8f565b60405180910390fd5b61114681611e28565b50565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111896111df565b73ffffffffffffffffffffffffffffffffffffffff16146111a8575f80fd5b6111c4670de0b6b3a7640000826111bf9190612c5a565b611f89565b50565b600a5481565b600f5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90612f1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b990612fab565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139c919061264c565b60405180910390a3505050565b5f6113b48484611039565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461142e5781811015611420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141790613013565b60405180910390fd5b61142d84848484036111e6565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611499906130a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115079061312f565b60405180910390fd5b5f81036115275761152283835f6121dd565b611da5565b5f439050600f60029054906101000a900460ff1615611a6157600e54600c546115509190612b92565b811115611592576028601181905550602860128190555060c86008546115769190612b62565b600981905550606460085461158b9190612b62565b600a819055505b61159a610d1b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561160857506115d8610d1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561164057505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561167a575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116935750600760149054906101000a900460ff16155b15611a6057600f5f9054906101000a900460ff166117865760135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611746575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613197565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611823575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118ca5760095482111561186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186490613225565b60405180910390fd5b600a5461187984610b58565b836118849190612b92565b11156118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc9061328d565b60405180910390fd5b611a5f565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611967575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b6576009548211156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a89061331b565b60405180910390fd5b611a5e565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611a5d57600a54611a1084610b58565b83611a1b9190612b92565b1115611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a539061328d565b60405180910390fd5b5b5b5b5b5b5f611a6b30610b58565b90505f600b548210159050808015611a8f5750600f60019054906101000a900460ff165b8015611aa85750600760149054906101000a900460ff16155b8015611afb575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b4e575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ba1575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611bbe5750600360105f8581526020019081526020015f2054105b15611c25576001600760146101000a81548160ff021916908315150217905550611be6612449565b60105f8481526020019081526020015f205f8154611c0390613339565b919050819055505f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611cd4575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611cdd575f90505b5f8115611d945760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611d5457606460125487611d439190612c5a565b611d4d9190612b62565b9050611d71565b606460115487611d649190612c5a565b611d6e9190612b62565b90505b5f811115611d8557611d848830836121dd565b5b8086611d919190613380565b95505b611d9f8888886121dd565b50505050505b505050565b611db26111df565b73ffffffffffffffffffffffffffffffffffffffff16611dd0610d1b565b73ffffffffffffffffffffffffffffffffffffffff1614611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d906133fd565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff811115611fa557611fa461341b565b5b604051908082528060200260200182016040528015611fd35781602001602082028036833780820191505090505b50905030815f81518110611fea57611fe9612c2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b1919061345c565b816001815181106120c5576120c4612c2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212a307f0000000000000000000000000000000000000000000000000000000000000000846111e6565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016121ac959493929190613577565b5f604051808303815f87803b1580156121c3575f80fd5b505af11580156121d5573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361224b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612242906130a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b09061312f565b60405180910390fd5b6122c483838361249d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233e9061363f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612430919061264c565b60405180910390a36124438484846124a2565b50505050565b5f61245330610b58565b90505f80820361246457505061249b565b6064600b546124739190612c5a565b82111561248c576064600b546124899190612c5a565b91505b81905061249881611f89565b50505b565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124e9826124a7565b6124f381856124b1565b93506125038185602086016124c1565b61250c816124cf565b840191505092915050565b5f6020820190508181035f83015261252f81846124df565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125688261253f565b9050919050565b6125788161255e565b8114612582575f80fd5b50565b5f813590506125938161256f565b92915050565b5f819050919050565b6125ab81612599565b81146125b5575f80fd5b50565b5f813590506125c6816125a2565b92915050565b5f80604083850312156125e2576125e1612537565b5b5f6125ef85828601612585565b9250506020612600858286016125b8565b9150509250929050565b5f8115159050919050565b61261e8161260a565b82525050565b5f6020820190506126375f830184612615565b92915050565b61264681612599565b82525050565b5f60208201905061265f5f83018461263d565b92915050565b5f805f6060848603121561267c5761267b612537565b5b5f61268986828701612585565b935050602061269a86828701612585565b92505060406126ab868287016125b8565b9150509250925092565b5f60ff82169050919050565b6126ca816126b5565b82525050565b5f6020820190506126e35f8301846126c1565b92915050565b5f805f60608486031215612700576126ff612537565b5b5f61270d868287016125b8565b935050602061271e868287016125b8565b925050604061272f868287016125b8565b9150509250925092565b5f806040838503121561274f5761274e612537565b5b5f61275c858286016125b8565b925050602061276d858286016125b8565b9150509250929050565b5f819050919050565b5f61279a6127956127908461253f565b612777565b61253f565b9050919050565b5f6127ab82612780565b9050919050565b5f6127bc826127a1565b9050919050565b6127cc816127b2565b82525050565b5f6020820190506127e55f8301846127c3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261280c5761280b6127eb565b5b8235905067ffffffffffffffff811115612829576128286127ef565b5b602083019150836020820283011115612845576128446127f3565b5b9250929050565b5f8083601f840112612861576128606127eb565b5b8235905067ffffffffffffffff81111561287e5761287d6127ef565b5b60208301915083602082028301111561289a576128996127f3565b5b9250929050565b5f805f80604085870312156128b9576128b8612537565b5b5f85013567ffffffffffffffff8111156128d6576128d561253b565b5b6128e2878288016127f7565b9450945050602085013567ffffffffffffffff8111156129055761290461253b565b5b6129118782880161284c565b925092505092959194509250565b5f6020828403121561293457612933612537565b5b5f61294184828501612585565b91505092915050565b6129538161260a565b811461295d575f80fd5b50565b5f8135905061296e8161294a565b92915050565b5f806040838503121561298a57612989612537565b5b5f61299785828601612585565b92505060206129a885828601612960565b9150509250929050565b6129bb8161255e565b82525050565b5f6020820190506129d45f8301846129b2565b92915050565b5f602082840312156129ef576129ee612537565b5b5f6129fc848285016125b8565b91505092915050565b5f8060408385031215612a1b57612a1a612537565b5b5f612a2885828601612585565b9250506020612a3985828601612585565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a8757607f821691505b602082108103612a9a57612a99612a43565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ad46017836124b1565b9150612adf82612aa0565b602082019050919050565b5f6020820190508181035f830152612b0181612ac8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b6c82612599565b9150612b7783612599565b925082612b8757612b86612b08565b5b828204905092915050565b5f612b9c82612599565b9150612ba783612599565b9250828201905080821115612bbf57612bbe612b35565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f612bf96016836124b1565b9150612c0482612bc5565b602082019050919050565b5f6020820190508181035f830152612c2681612bed565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c6482612599565b9150612c6f83612599565b9250828202612c7d81612599565b91508282048414831517612c9457612c93612b35565b5b5092915050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612ccf6016836124b1565b9150612cda82612c9b565b602082019050919050565b5f6020820190508181035f830152612cfc81612cc3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612d5d6039836124b1565b9150612d6882612d03565b604082019050919050565b5f6020820190508181035f830152612d8a81612d51565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612deb6025836124b1565b9150612df682612d91565b604082019050919050565b5f6020820190508181035f830152612e1881612ddf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e796026836124b1565b9150612e8482612e1f565b604082019050919050565b5f6020820190508181035f830152612ea681612e6d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f076024836124b1565b9150612f1282612ead565b604082019050919050565b5f6020820190508181035f830152612f3481612efb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f956022836124b1565b9150612fa082612f3b565b604082019050919050565b5f6020820190508181035f830152612fc281612f89565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612ffd601d836124b1565b915061300882612fc9565b602082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61308b6025836124b1565b915061309682613031565b604082019050919050565b5f6020820190508181035f8301526130b88161307f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131196023836124b1565b9150613124826130bf565b604082019050919050565b5f6020820190508181035f8301526131468161310d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6131816016836124b1565b915061318c8261314d565b602082019050919050565b5f6020820190508181035f8301526131ae81613175565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61320f6035836124b1565b915061321a826131b5565b604082019050919050565b5f6020820190508181035f83015261323c81613203565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6132776013836124b1565b915061328282613243565b602082019050919050565b5f6020820190508181035f8301526132a48161326b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6133056036836124b1565b9150613310826132ab565b604082019050919050565b5f6020820190508181035f830152613332816132f9565b9050919050565b5f61334382612599565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361337557613374612b35565b5b600182019050919050565b5f61338a82612599565b915061339583612599565b92508282039050818111156133ad576133ac612b35565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6133e76020836124b1565b91506133f2826133b3565b602082019050919050565b5f6020820190508181035f830152613414816133db565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506134568161256f565b92915050565b5f6020828403121561347157613470612537565b5b5f61347e84828501613448565b91505092915050565b5f819050919050565b5f6134aa6134a56134a084613487565b612777565b612599565b9050919050565b6134ba81613490565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134f28161255e565b82525050565b5f61350383836134e9565b60208301905092915050565b5f602082019050919050565b5f613525826134c0565b61352f81856134ca565b935061353a836134da565b805f5b8381101561356a57815161355188826134f8565b975061355c8361350f565b92505060018101905061353d565b5085935050505092915050565b5f60a08201905061358a5f83018861263d565b61359760208301876134b1565b81810360408301526135a9818661351b565b90506135b860608301856129b2565b6135c5608083018461263d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6136296026836124b1565b9150613634826135cf565b604082019050919050565b5f6020820190508181035f8301526136568161361d565b905091905056fea26469706673582212202482395ce04ee00343404c30b081586a89f026e4d84ba1c88de503cd7138306864736f6c6343000819003300000000000000000000000028d709b9837b1aa763bfc2a0180c50442a4f10bc

Deployed Bytecode

0x608060405260043610610207575f3560e01c806389291a8f11610117578063c8c8ebe41161009f578063e2f456051161006e578063e2f4560514610730578063f2fde38b1461075a578063f82d36e814610782578063f8b45b05146107aa578063ffb54a99146107d45761020e565b8063c8c8ebe414610676578063cf9522fd146106a0578063dd62ed3e146106ca578063dd854652146107065761020e565b8063a457c2d7116100e6578063a457c2d714610586578063a9059cbb146105c2578063aacebbe3146105fe578063afa4f3b214610626578063c02466681461064e5761020e565b806389291a8f146104f45780638da5cb5b1461050a57806395d89b41146105345780639a7a23d61461055e5761020e565b80634a62bb651161019a5780636ddd1713116101695780636ddd17131461043a57806370a0823114610464578063715018a6146104a0578063751039fc146104b65780637571336a146104cc5761020e565b80634a62bb651461039657806352f7c988146103c0578063583e0568146103e857806367243482146104125761020e565b8063311028af116101d6578063311028af146102de578063313ce5671461030857806334848b9a14610332578063395093511461035a5761020e565b806306fdde0314610212578063095ea7b31461023c57806318160ddd1461027857806323b872dd146102a25761020e565b3661020e57005b5f80fd5b34801561021d575f80fd5b506102266107fe565b6040516102339190612517565b60405180910390f35b348015610247575f80fd5b50610262600480360381019061025d91906125cc565b61088e565b60405161026f9190612624565b60405180910390f35b348015610283575f80fd5b5061028c6108b0565b604051610299919061264c565b60405180910390f35b3480156102ad575f80fd5b506102c860048036038101906102c39190612665565b6108b9565b6040516102d59190612624565b60405180910390f35b3480156102e9575f80fd5b506102f26108e7565b6040516102ff919061264c565b60405180910390f35b348015610313575f80fd5b5061031c6108ed565b60405161032991906126d0565b60405180910390f35b34801561033d575f80fd5b50610358600480360381019061035391906126e9565b6108f5565b005b348015610365575f80fd5b50610380600480360381019061037b91906125cc565b6109ca565b60405161038d9190612624565b60405180910390f35b3480156103a1575f80fd5b506103aa610a00565b6040516103b79190612624565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e19190612739565b610a13565b005b3480156103f3575f80fd5b506103fc610a7e565b60405161040991906127d2565b60405180910390f35b34801561041d575f80fd5b50610438600480360381019061043391906128a1565b610aa2565b005b348015610445575f80fd5b5061044e610b45565b60405161045b9190612624565b60405180910390f35b34801561046f575f80fd5b5061048a6004803603810190610485919061291f565b610b58565b604051610497919061264c565b60405180910390f35b3480156104ab575f80fd5b506104b4610b9d565b005b3480156104c1575f80fd5b506104ca610bb0565b005b3480156104d7575f80fd5b506104f260048036038101906104ed9190612974565b610bd4565b005b3480156104ff575f80fd5b50610508610c34565b005b348015610515575f80fd5b5061051e610d1b565b60405161052b91906129c1565b60405180910390f35b34801561053f575f80fd5b50610548610d43565b6040516105559190612517565b60405180910390f35b348015610569575f80fd5b50610584600480360381019061057f9190612974565b610dd3565b005b348015610591575f80fd5b506105ac60048036038101906105a791906125cc565b610e78565b6040516105b99190612624565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e391906125cc565b610eed565b6040516105f59190612624565b60405180910390f35b348015610609575f80fd5b50610624600480360381019061061f919061291f565b610f0f565b005b348015610631575f80fd5b5061064c600480360381019061064791906129da565b610f5a565b005b348015610659575f80fd5b50610674600480360381019061066f9190612974565b610f7f565b005b348015610681575f80fd5b5061068a61102d565b604051610697919061264c565b60405180910390f35b3480156106ab575f80fd5b506106b4611033565b6040516106c1919061264c565b60405180910390f35b3480156106d5575f80fd5b506106f060048036038101906106eb9190612a05565b611039565b6040516106fd919061264c565b60405180910390f35b348015610711575f80fd5b5061071a6110bb565b604051610727919061264c565b60405180910390f35b34801561073b575f80fd5b506107446110c1565b604051610751919061264c565b60405180910390f35b348015610765575f80fd5b50610780600480360381019061077b919061291f565b6110c7565b005b34801561078d575f80fd5b506107a860048036038101906107a391906129da565b611149565b005b3480156107b5575f80fd5b506107be6111c7565b6040516107cb919061264c565b60405180910390f35b3480156107df575f80fd5b506107e86111cd565b6040516107f59190612624565b60405180910390f35b60606003805461080d90612a70565b80601f016020809104026020016040519081016040528092919081815260200182805461083990612a70565b80156108845780601f1061085b57610100808354040283529160200191610884565b820191905f5260205f20905b81548152906001019060200180831161086757829003601f168201915b5050505050905090565b5f806108986111df565b90506108a58185856111e6565b600191505092915050565b5f600254905090565b5f806108c36111df565b90506108d08582856113a9565b6108db858585611434565b60019150509392505050565b60085481565b5f6012905090565b6108fd611daa565b600f5f9054906101000a900460ff161561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612aea565b60405180910390fd5b8260118190555082601281905550816008546109689190612b62565b6009819055508160085461097c9190612b62565b600a8190555080600e8190555043600c819055506001600f60016101000a81548160ff0219169083151502179055506001600f5f6101000a81548160ff021916908315150217905550505050565b5f806109d46111df565b90506109f58185856109e68589611039565b6109f09190612b92565b6111e6565b600191505092915050565b600f60029054906101000a900460ff1681565b610a1b611daa565b601e8211158015610a2d5750601e8111155b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612c0f565b60405180910390fd5b81601181905550806012819055505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f84849050118015610ab957508383905082829050145b610ac1575f80fd5b5f3390505f5b85859050811015610b3d57610b3082878784818110610ae957610ae8612c2d565b5b9050602002016020810190610afe919061291f565b670de0b6b3a7640000878786818110610b1a57610b19612c2d565b5b90506020020135610b2b9190612c5a565b611434565b8080600101915050610ac7565b505050505050565b600f60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ba5611daa565b610bae5f611e28565b565b610bb8611daa565b5f600f60026101000a81548160ff021916908315150217905550565b610bdc611daa565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c746111df565b73ffffffffffffffffffffffffffffffffffffffff1614610c93575f80fd5b5f4711610cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccc90612ce5565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d18573d5f803e3d5ffd5b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d5290612a70565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7e90612a70565b8015610dc95780601f10610da057610100808354040283529160200191610dc9565b820191905f5260205f20905b815481529060010190602001808311610dac57829003601f168201915b5050505050905090565b610ddb611daa565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612d73565b60405180910390fd5b610e748282611eeb565b5050565b5f80610e826111df565b90505f610e8f8286611039565b905083811015610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90612e01565b60405180910390fd5b610ee182868684036111e6565b60019250505092915050565b5f80610ef76111df565b9050610f04818585611434565b600191505092915050565b610f17611daa565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f62611daa565b670de0b6b3a764000081610f769190612c5a565b600b8190555050565b610f87611daa565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516110219190612624565b60405180910390a25050565b60095481565b60125481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b600b5481565b6110cf611daa565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490612e8f565b60405180910390fd5b61114681611e28565b50565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111896111df565b73ffffffffffffffffffffffffffffffffffffffff16146111a8575f80fd5b6111c4670de0b6b3a7640000826111bf9190612c5a565b611f89565b50565b600a5481565b600f5f9054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90612f1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b990612fab565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139c919061264c565b60405180910390a3505050565b5f6113b48484611039565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461142e5781811015611420576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141790613013565b60405180910390fd5b61142d84848484036111e6565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611499906130a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115079061312f565b60405180910390fd5b5f81036115275761152283835f6121dd565b611da5565b5f439050600f60029054906101000a900460ff1615611a6157600e54600c546115509190612b92565b811115611592576028601181905550602860128190555060c86008546115769190612b62565b600981905550606460085461158b9190612b62565b600a819055505b61159a610d1b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561160857506115d8610d1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561164057505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561167a575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116935750600760149054906101000a900460ff16155b15611a6057600f5f9054906101000a900460ff166117865760135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611746575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613197565b60405180910390fd5b5b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611823575060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118ca5760095482111561186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186490613225565b60405180910390fd5b600a5461187984610b58565b836118849190612b92565b11156118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc9061328d565b60405180910390fd5b611a5f565b60155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611967575060145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b6576009548211156119b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a89061331b565b60405180910390fd5b611a5e565b60145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611a5d57600a54611a1084610b58565b83611a1b9190612b92565b1115611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a539061328d565b60405180910390fd5b5b5b5b5b5b5f611a6b30610b58565b90505f600b548210159050808015611a8f5750600f60019054906101000a900460ff165b8015611aa85750600760149054906101000a900460ff16155b8015611afb575060155f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b4e575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ba1575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611bbe5750600360105f8581526020019081526020015f2054105b15611c25576001600760146101000a81548160ff021916908315150217905550611be6612449565b60105f8481526020019081526020015f205f8154611c0390613339565b919050819055505f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff1615905060135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611cd4575060135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611cdd575f90505b5f8115611d945760155f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611d5457606460125487611d439190612c5a565b611d4d9190612b62565b9050611d71565b606460115487611d649190612c5a565b611d6e9190612b62565b90505b5f811115611d8557611d848830836121dd565b5b8086611d919190613380565b95505b611d9f8888886121dd565b50505050505b505050565b611db26111df565b73ffffffffffffffffffffffffffffffffffffffff16611dd0610d1b565b73ffffffffffffffffffffffffffffffffffffffff1614611e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1d906133fd565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff811115611fa557611fa461341b565b5b604051908082528060200260200182016040528015611fd35781602001602082028036833780820191505090505b50905030815f81518110611fea57611fe9612c2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b1919061345c565b816001815181106120c5576120c4612c2d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846111e6565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016121ac959493929190613577565b5f604051808303815f87803b1580156121c3575f80fd5b505af11580156121d5573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361224b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612242906130a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b09061312f565b60405180910390fd5b6122c483838361249d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233e9061363f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612430919061264c565b60405180910390a36124438484846124a2565b50505050565b5f61245330610b58565b90505f80820361246457505061249b565b6064600b546124739190612c5a565b82111561248c576064600b546124899190612c5a565b91505b81905061249881611f89565b50505b565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124e9826124a7565b6124f381856124b1565b93506125038185602086016124c1565b61250c816124cf565b840191505092915050565b5f6020820190508181035f83015261252f81846124df565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125688261253f565b9050919050565b6125788161255e565b8114612582575f80fd5b50565b5f813590506125938161256f565b92915050565b5f819050919050565b6125ab81612599565b81146125b5575f80fd5b50565b5f813590506125c6816125a2565b92915050565b5f80604083850312156125e2576125e1612537565b5b5f6125ef85828601612585565b9250506020612600858286016125b8565b9150509250929050565b5f8115159050919050565b61261e8161260a565b82525050565b5f6020820190506126375f830184612615565b92915050565b61264681612599565b82525050565b5f60208201905061265f5f83018461263d565b92915050565b5f805f6060848603121561267c5761267b612537565b5b5f61268986828701612585565b935050602061269a86828701612585565b92505060406126ab868287016125b8565b9150509250925092565b5f60ff82169050919050565b6126ca816126b5565b82525050565b5f6020820190506126e35f8301846126c1565b92915050565b5f805f60608486031215612700576126ff612537565b5b5f61270d868287016125b8565b935050602061271e868287016125b8565b925050604061272f868287016125b8565b9150509250925092565b5f806040838503121561274f5761274e612537565b5b5f61275c858286016125b8565b925050602061276d858286016125b8565b9150509250929050565b5f819050919050565b5f61279a6127956127908461253f565b612777565b61253f565b9050919050565b5f6127ab82612780565b9050919050565b5f6127bc826127a1565b9050919050565b6127cc816127b2565b82525050565b5f6020820190506127e55f8301846127c3565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261280c5761280b6127eb565b5b8235905067ffffffffffffffff811115612829576128286127ef565b5b602083019150836020820283011115612845576128446127f3565b5b9250929050565b5f8083601f840112612861576128606127eb565b5b8235905067ffffffffffffffff81111561287e5761287d6127ef565b5b60208301915083602082028301111561289a576128996127f3565b5b9250929050565b5f805f80604085870312156128b9576128b8612537565b5b5f85013567ffffffffffffffff8111156128d6576128d561253b565b5b6128e2878288016127f7565b9450945050602085013567ffffffffffffffff8111156129055761290461253b565b5b6129118782880161284c565b925092505092959194509250565b5f6020828403121561293457612933612537565b5b5f61294184828501612585565b91505092915050565b6129538161260a565b811461295d575f80fd5b50565b5f8135905061296e8161294a565b92915050565b5f806040838503121561298a57612989612537565b5b5f61299785828601612585565b92505060206129a885828601612960565b9150509250929050565b6129bb8161255e565b82525050565b5f6020820190506129d45f8301846129b2565b92915050565b5f602082840312156129ef576129ee612537565b5b5f6129fc848285016125b8565b91505092915050565b5f8060408385031215612a1b57612a1a612537565b5b5f612a2885828601612585565b9250506020612a3985828601612585565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a8757607f821691505b602082108103612a9a57612a99612a43565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ad46017836124b1565b9150612adf82612aa0565b602082019050919050565b5f6020820190508181035f830152612b0181612ac8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612b6c82612599565b9150612b7783612599565b925082612b8757612b86612b08565b5b828204905092915050565b5f612b9c82612599565b9150612ba783612599565b9250828201905080821115612bbf57612bbe612b35565b5b92915050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f612bf96016836124b1565b9150612c0482612bc5565b602082019050919050565b5f6020820190508181035f830152612c2681612bed565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c6482612599565b9150612c6f83612599565b9250828202612c7d81612599565b91508282048414831517612c9457612c93612b35565b5b5092915050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f612ccf6016836124b1565b9150612cda82612c9b565b602082019050919050565b5f6020820190508181035f830152612cfc81612cc3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f612d5d6039836124b1565b9150612d6882612d03565b604082019050919050565b5f6020820190508181035f830152612d8a81612d51565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612deb6025836124b1565b9150612df682612d91565b604082019050919050565b5f6020820190508181035f830152612e1881612ddf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e796026836124b1565b9150612e8482612e1f565b604082019050919050565b5f6020820190508181035f830152612ea681612e6d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f076024836124b1565b9150612f1282612ead565b604082019050919050565b5f6020820190508181035f830152612f3481612efb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f956022836124b1565b9150612fa082612f3b565b604082019050919050565b5f6020820190508181035f830152612fc281612f89565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612ffd601d836124b1565b915061300882612fc9565b602082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61308b6025836124b1565b915061309682613031565b604082019050919050565b5f6020820190508181035f8301526130b88161307f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131196023836124b1565b9150613124826130bf565b604082019050919050565b5f6020820190508181035f8301526131468161310d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6131816016836124b1565b915061318c8261314d565b602082019050919050565b5f6020820190508181035f8301526131ae81613175565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61320f6035836124b1565b915061321a826131b5565b604082019050919050565b5f6020820190508181035f83015261323c81613203565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6132776013836124b1565b915061328282613243565b602082019050919050565b5f6020820190508181035f8301526132a48161326b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6133056036836124b1565b9150613310826132ab565b604082019050919050565b5f6020820190508181035f830152613332816132f9565b9050919050565b5f61334382612599565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361337557613374612b35565b5b600182019050919050565b5f61338a82612599565b915061339583612599565b92508282039050818111156133ad576133ac612b35565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6133e76020836124b1565b91506133f2826133b3565b602082019050919050565b5f6020820190508181035f830152613414816133db565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f815190506134568161256f565b92915050565b5f6020828403121561347157613470612537565b5b5f61347e84828501613448565b91505092915050565b5f819050919050565b5f6134aa6134a56134a084613487565b612777565b612599565b9050919050565b6134ba81613490565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134f28161255e565b82525050565b5f61350383836134e9565b60208301905092915050565b5f602082019050919050565b5f613525826134c0565b61352f81856134ca565b935061353a836134da565b805f5b8381101561356a57815161355188826134f8565b975061355c8361350f565b92505060018101905061353d565b5085935050505092915050565b5f60a08201905061358a5f83018861263d565b61359760208301876134b1565b81810360408301526135a9818661351b565b90506135b860608301856129b2565b6135c5608083018461263d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6136296026836124b1565b9150613634826135cf565b604082019050919050565b5f6020820190508181035f8301526136568161361d565b905091905056fea26469706673582212202482395ce04ee00343404c30b081586a89f026e4d84ba1c88de503cd7138306864736f6c63430008190033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000028d709b9837b1aa763bfc2a0180c50442a4f10bc

-----Decoded View---------------
Arg [0] : wallet (address): 0x28D709B9837b1aa763Bfc2A0180c50442a4F10Bc

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000028d709b9837b1aa763bfc2a0180c50442a4f10bc


Deployed Bytecode Sourcemap

16240:8792:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11298:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12230:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11619:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12439:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16616:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11518:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18613:469;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12742:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17041:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23759:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16286:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24254:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17003:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11735:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10374:103;;;;;;;;;;;;;:::i;:::-;;23267:84;;;;;;;;;;;;;:::i;:::-;;19088:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23359:226;;;;;;;;;;;;;:::i;:::-;;10139:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11406:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19263:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12988:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11870:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23978:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24119:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19730:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16681:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17169:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12071:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17137:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16807:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10485:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23593:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16750:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16965:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11298:100;11352:13;11385:5;11378:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11298:100;:::o;12230:201::-;12313:4;12330:13;12346:12;:10;:12::i;:::-;12330:28;;12369:32;12378:5;12385:7;12394:6;12369:8;:32::i;:::-;12419:4;12412:11;;;12230:201;;;;:::o;11619:108::-;11680:7;11707:12;;11700:19;;11619:108;:::o;12439:295::-;12570:4;12587:15;12605:12;:10;:12::i;:::-;12587:30;;12628:38;12644:4;12650:7;12659:6;12628:15;:38::i;:::-;12677:27;12687:4;12693:2;12697:6;12677:9;:27::i;:::-;12722:4;12715:11;;;12439:295;;;;;:::o;16616:58::-;;;;:::o;11518:93::-;11576:5;11601:2;11594:9;;11518:93;:::o;18613:469::-;10098:13;:11;:13::i;:::-;18733:11:::1;;;;;;;;;;;18732:12;18724:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18791:10;18782:6;:19;;;;18822:10;18812:7;:20;;;;18887:7;18866:18;;:28;;;;:::i;:::-;18843:20;:51;;;;18938:7;18917:18;;:28;;;;:::i;:::-;18905:9;:40;;;;18969:11;18956:10;:24;;;;19004:12;18991:10;:25;;;;19041:4;19027:11;;:18;;;;;;;;;;;;;;;;;;19070:4;19056:11;;:18;;;;;;;;;;;;;;;;;;18613:469:::0;;;:::o;12742:238::-;12830:4;12847:13;12863:12;:10;:12::i;:::-;12847:28;;12886:64;12895:5;12902:7;12939:10;12911:25;12921:5;12928:7;12911:9;:25::i;:::-;:38;;;;:::i;:::-;12886:8;:64::i;:::-;12968:4;12961:11;;;12742:238;;;;:::o;17041:33::-;;;;;;;;;;;;;:::o;23759:211::-;10098:13;:11;:13::i;:::-;23859:2:::1;23848:7;:13;;:31;;;;;23877:2;23865:8;:14;;23848:31;23840:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23926:7;23917:6;:16;;;;23954:8;23944:7;:18;;;;23759:211:::0;;:::o;16286:52::-;;;:::o;24254:353::-;24378:1;24359:9;;:16;;:20;:58;;;;;24401:9;;:16;;24383:7;;:14;;:34;24359:58;24351:67;;;;;;24431:12;24446:10;24431:25;;24476:6;24471:129;24492:9;;:16;;24488:1;:20;24471:129;;;24532:52;24542:4;24548:9;;24558:1;24548:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24576:6;24562:7;;24570:1;24562:10;;;;;;;:::i;:::-;;;;;;;;:21;;;;:::i;:::-;24532:9;:52::i;:::-;24510:3;;;;;;;24471:129;;;;24338:269;24254:353;;;;:::o;17003:31::-;;;;;;;;;;;;;:::o;11735:127::-;11809:7;11836:9;:18;11846:7;11836:18;;;;;;;;;;;;;;;;11829:25;;11735:127;;;:::o;10374:103::-;10098:13;:11;:13::i;:::-;10439:30:::1;10466:1;10439:18;:30::i;:::-;10374:103::o:0;23267:84::-;10098:13;:11;:13::i;:::-;23338:5:::1;23321:14;;:22;;;;;;;;;;;;;;;;;;23267:84::o:0;19088:167::-;10098:13;:11;:13::i;:::-;19243:4:::1;19201:31;:39;19233:6;19201:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;19088:167:::0;;:::o;23359:226::-;23428:15;;;;;;;;;;;23412:31;;:12;:10;:12::i;:::-;:31;;;23404:40;;;;;;23487:1;23463:21;:25;23455:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;23534:10;23526:28;;:51;23555:21;23526:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23359:226::o;10139:87::-;10185:7;10212:6;;;;;;;;;;;10205:13;;10139:87;:::o;11406:104::-;11462:13;11495:7;11488:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11406:104;:::o;19263:265::-;10098:13;:11;:13::i;:::-;19393::::1;;;;;;;;;;;19385:21;;:4;:21;;::::0;19377:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19479:41;19508:4;19514:5;19479:28;:41::i;:::-;19263:265:::0;;:::o;12988:436::-;13081:4;13098:13;13114:12;:10;:12::i;:::-;13098:28;;13137:24;13164:25;13174:5;13181:7;13164:9;:25::i;:::-;13137:52;;13228:15;13208:16;:35;;13200:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13321:60;13330:5;13337:7;13365:15;13346:16;:34;13321:8;:60::i;:::-;13412:4;13405:11;;;;12988:436;;;;:::o;11870:193::-;11949:4;11966:13;11982:12;:10;:12::i;:::-;11966:28;;12005;12015:5;12022:2;12026:6;12005:9;:28::i;:::-;12051:4;12044:11;;;11870:193;;;;:::o;23978:133::-;10098:13;:11;:13::i;:::-;24085:18:::1;24067:15;;:36;;;;;;;;;;;;;;;;;;23978:133:::0;:::o;24119:127::-;10098:13;:11;:13::i;:::-;24229:8:::1;24218:7;:20;;;;:::i;:::-;24197:18;:41;;;;24119:127:::0;:::o;19730:182::-;10098:13;:11;:13::i;:::-;19846:8:::1;19815:19;:28;19835:7;19815:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19886:7;19870:34;;;19895:8;19870:34;;;;;;:::i;:::-;;;;;;;;19730:182:::0;;:::o;16681:62::-;;;;:::o;17169:26::-;;;;:::o;12071:151::-;12160:7;12187:11;:18;12199:5;12187:18;;;;;;;;;;;;;;;:27;12206:7;12187:27;;;;;;;;;;;;;;;;12180:34;;12071:151;;;;:::o;17137:25::-;;;;:::o;16807:50::-;;;;:::o;10485:201::-;10098:13;:11;:13::i;:::-;10594:1:::1;10574:22;;:8;:22;;::::0;10566:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10650:28;10669:8;10650:18;:28::i;:::-;10485:201:::0;:::o;23593:158::-;23679:15;;;;;;;;;;;23663:31;;:12;:10;:12::i;:::-;:31;;;23655:40;;;;;;23706:37;23733:8;23723:6;:19;;;;:::i;:::-;23706:16;:37::i;:::-;23593:158;:::o;16750:50::-;;;;:::o;16965:31::-;;;;;;;;;;;;;:::o;4094:98::-;4147:7;4174:10;4167:17;;4094:98;:::o;15127:380::-;15280:1;15263:19;;:5;:19;;;15255:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15361:1;15342:21;;:7;:21;;;15334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15445:6;15415:11;:18;15427:5;15415:18;;;;;;;;;;;;;;;:27;15434:7;15415:27;;;;;;;;;;;;;;;:36;;;;15483:7;15467:32;;15476:5;15467:32;;;15492:6;15467:32;;;;;;:::i;:::-;;;;;;;;15127:380;;;:::o;15515:453::-;15650:24;15677:25;15687:5;15694:7;15677:9;:25::i;:::-;15650:52;;15737:17;15717:16;:37;15713:248;;15799:6;15779:16;:26;;15771:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15883:51;15892:5;15899:7;15927:6;15908:16;:25;15883:8;:51::i;:::-;15713:248;15639:329;15515:453;;;:::o;19920:2850::-;20036:1;20020:18;;:4;:18;;;20012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20113:1;20099:16;;:2;:16;;;20091:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20182:1;20172:6;:11;20168:93;;20200:28;20216:4;20222:2;20226:1;20200:15;:28::i;:::-;20243:7;;20168:93;20273:16;20292:12;20273:31;;20329:14;;;;;;;;;;;20325:1416;;;20397:10;;20384;;:23;;;;:::i;:::-;20372:8;:36;20369:294;;;20465:2;20456:6;:11;;;;20502:2;20492:7;:12;;;;20575:3;20554:18;;:24;;;;:::i;:::-;20531:20;:47;;;;20636:3;20615:18;;:24;;;;:::i;:::-;20603:9;:36;;;;20369:294;20697:7;:5;:7::i;:::-;20689:15;;:4;:15;;;;:32;;;;;20714:7;:5;:7::i;:::-;20708:13;;:2;:13;;;;20689:32;:52;;;;;20739:1;20725:16;;:2;:16;;;;20689:52;:77;;;;;20759:6;20745:21;;:2;:21;;;;20689:77;:90;;;;;20771:8;;;;;;;;;;;20770:9;20689:90;20685:1043;;;20807:11;;;;;;;;;;;20802:148;;20851:19;:25;20871:4;20851:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20880:19;:23;20900:2;20880:23;;;;;;;;;;;;;;;;;;;;;;;;;20851:52;20843:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20802:148;20974:25;:31;21000:4;20974:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21010:31;:35;21042:2;21010:35;;;;;;;;;;;;;;;;;;;;;;;;;21009:36;20974:71;20970:743;;;21106:20;;21096:6;:30;;21088:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21241:9;;21224:13;21234:2;21224:9;:13::i;:::-;21215:6;:22;;;;:::i;:::-;:35;;21207:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20970:743;;;21323:25;:29;21349:2;21323:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21357:31;:37;21389:4;21357:37;;;;;;;;;;;;;;;;;;;;;;;;;21356:38;21323:71;21319:394;;;21437:20;;21427:6;:30;;21419:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21319:394;;;21566:31;:35;21598:2;21566:35;;;;;;;;;;;;;;;;;;;;;;;;;21561:152;;21660:9;;21643:13;21653:2;21643:9;:13::i;:::-;21634:6;:22;;;;:::i;:::-;:35;;21626:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21561:152;21319:394;20970:743;20685:1043;20325:1416;21753:28;21784:24;21802:4;21784:9;:24::i;:::-;21753:55;;21821:12;21860:18;;21836:20;:42;;21821:57;;21895:7;:22;;;;;21906:11;;;;;;;;;;;21895:22;:35;;;;;21922:8;;;;;;;;;;;21921:9;21895:35;:71;;;;;21935:25;:31;21961:4;21935:31;;;;;;;;;;;;;;;;;;;;;;;;;21934:32;21895:71;:101;;;;;21971:19;:25;21991:4;21971:25;;;;;;;;;;;;;;;;;;;;;;;;;21970:26;21895:101;:129;;;;;22001:19;:23;22021:2;22001:23;;;;;;;;;;;;;;;;;;;;;;;;;22000:24;21895:129;:160;;;;;22053:1;22029:11;:21;22041:8;22029:21;;;;;;;;;;;;:25;21895:160;21891:302;;;22083:4;22072:8;;:15;;;;;;;;;;;;;;;;;;22102:10;:8;:10::i;:::-;22129:11;:21;22141:8;22129:21;;;;;;;;;;;;22127:23;;;;;:::i;:::-;;;;;;;;22176:5;22165:8;;:16;;;;;;;;;;;;;;;;;;21891:302;22205:12;22221:8;;;;;;;;;;;22220:9;22205:24;;22246:19;:25;22266:4;22246:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22275:19;:23;22295:2;22275:23;;;;;;;;;;;;;;;;;;;;;;;;;22246:52;22242:100;;;22325:5;22315:15;;22242:100;22354:12;22387:7;22383:336;;;22415:25;:29;22441:2;22415:29;;;;;;;;;;;;;;;;;;;;;;;;;22411:181;;;22491:3;22481:7;;22472:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;22465:29;;22411:181;;;22573:3;22564:6;;22555;:15;;;;:::i;:::-;:21;;;;:::i;:::-;22548:28;;22411:181;22615:1;22608:4;:8;22604:83;;;22633:42;22649:4;22663;22670;22633:15;:42::i;:::-;22604:83;22707:4;22697:14;;;;;:::i;:::-;;;22383:336;22729:33;22745:4;22751:2;22755:6;22729:15;:33::i;:::-;19999:2771;;;;;19920:2850;;;;:::o;10234:132::-;10309:12;:10;:12::i;:::-;10298:23;;:7;:5;:7::i;:::-;:23;;;10290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10234:132::o;10694:191::-;10768:16;10787:6;;;;;;;;;;;10768:25;;10813:8;10804:6;;:17;;;;;;;;;;;;;;;;;;10868:8;10837:40;;10858:8;10837:40;;;;;;;;;;;;10757:128;10694:191;:::o;19536:186::-;19653:5;19619:25;:31;19645:4;19619:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19708:5;19674:40;;19702:4;19674:40;;;;;;;;;;;;19536:186;;:::o;22778:482::-;22846:21;22884:1;22870:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22846:40;;22915:4;22897;22902:1;22897:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22941:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22931:4;22936:1;22931:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22977:63;22994:4;23009:16;23028:11;22977:8;:63::i;:::-;23053:16;:67;;;23135:11;23161:1;23177:4;23196:15;;;;;;;;;;;23226;23053:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22833:427;22778:482;:::o;13432:675::-;13579:1;13563:18;;:4;:18;;;13555:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13656:1;13642:16;;:2;:16;;;13634:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13711:38;13732:4;13738:2;13742:6;13711:20;:38::i;:::-;13762:19;13784:9;:15;13794:4;13784:15;;;;;;;;;;;;;;;;13762:37;;13833:6;13818:11;:21;;13810:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13950:6;13936:11;:20;13918:9;:15;13928:4;13918:15;;;;;;;;;;;;;;;:38;;;;13988:6;13971:9;:13;13981:2;13971:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14038:2;14023:26;;14032:4;14023:26;;;14042:6;14023:26;;;;;;:::i;:::-;;;;;;;;14062:37;14082:4;14088:2;14092:6;14062:19;:37::i;:::-;13544:563;13432:675;;;:::o;24615:414::-;24654:23;24680:24;24698:4;24680:9;:24::i;:::-;24654:50;;24715:20;24771:1;24752:15;:20;24748:59;;24789:7;;;;24748:59;24862:3;24841:18;;:24;;;;:::i;:::-;24823:15;:42;24819:117;;;24921:3;24900:18;;:24;;;;:::i;:::-;24882:42;;24819:117;24963:15;24948:30;;24989;25006:12;24989:16;:30::i;:::-;24643:386;;24615:414;:::o;15976:125::-;;;;:::o;16109:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:619::-;4823:6;4831;4839;4888:2;4876:9;4867:7;4863:23;4859:32;4856:119;;;4894:79;;:::i;:::-;4856:119;5014:1;5039:53;5084:7;5075:6;5064:9;5060:22;5039:53;:::i;:::-;5029:63;;4985:117;5141:2;5167:53;5212:7;5203:6;5192:9;5188:22;5167:53;:::i;:::-;5157:63;;5112:118;5269:2;5295:53;5340:7;5331:6;5320:9;5316:22;5295:53;:::i;:::-;5285:63;;5240:118;4746:619;;;;;:::o;5371:474::-;5439:6;5447;5496:2;5484:9;5475:7;5471:23;5467:32;5464:119;;;5502:79;;:::i;:::-;5464:119;5622:1;5647:53;5692:7;5683:6;5672:9;5668:22;5647:53;:::i;:::-;5637:63;;5593:117;5749:2;5775:53;5820:7;5811:6;5800:9;5796:22;5775:53;:::i;:::-;5765:63;;5720:118;5371:474;;;;;:::o;5851:60::-;5879:3;5900:5;5893:12;;5851:60;;;:::o;5917:142::-;5967:9;6000:53;6018:34;6027:24;6045:5;6027:24;:::i;:::-;6018:34;:::i;:::-;6000:53;:::i;:::-;5987:66;;5917:142;;;:::o;6065:126::-;6115:9;6148:37;6179:5;6148:37;:::i;:::-;6135:50;;6065:126;;;:::o;6197:151::-;6272:9;6305:37;6336:5;6305:37;:::i;:::-;6292:50;;6197:151;;;:::o;6354:181::-;6466:62;6522:5;6466:62;:::i;:::-;6461:3;6454:75;6354:181;;:::o;6541:272::-;6659:4;6697:2;6686:9;6682:18;6674:26;;6710:96;6803:1;6792:9;6788:17;6779:6;6710:96;:::i;:::-;6541:272;;;;:::o;6819:117::-;6928:1;6925;6918:12;6942:117;7051:1;7048;7041:12;7065:117;7174:1;7171;7164:12;7205:568;7278:8;7288:6;7338:3;7331:4;7323:6;7319:17;7315:27;7305:122;;7346:79;;:::i;:::-;7305:122;7459:6;7446:20;7436:30;;7489:18;7481:6;7478:30;7475:117;;;7511:79;;:::i;:::-;7475:117;7625:4;7617:6;7613:17;7601:29;;7679:3;7671:4;7663:6;7659:17;7649:8;7645:32;7642:41;7639:128;;;7686:79;;:::i;:::-;7639:128;7205:568;;;;;:::o;7796:::-;7869:8;7879:6;7929:3;7922:4;7914:6;7910:17;7906:27;7896:122;;7937:79;;:::i;:::-;7896:122;8050:6;8037:20;8027:30;;8080:18;8072:6;8069:30;8066:117;;;8102:79;;:::i;:::-;8066:117;8216:4;8208:6;8204:17;8192:29;;8270:3;8262:4;8254:6;8250:17;8240:8;8236:32;8233:41;8230:128;;;8277:79;;:::i;:::-;8230:128;7796:568;;;;;:::o;8370:934::-;8492:6;8500;8508;8516;8565:2;8553:9;8544:7;8540:23;8536:32;8533:119;;;8571:79;;:::i;:::-;8533:119;8719:1;8708:9;8704:17;8691:31;8749:18;8741:6;8738:30;8735:117;;;8771:79;;:::i;:::-;8735:117;8884:80;8956:7;8947:6;8936:9;8932:22;8884:80;:::i;:::-;8866:98;;;;8662:312;9041:2;9030:9;9026:18;9013:32;9072:18;9064:6;9061:30;9058:117;;;9094:79;;:::i;:::-;9058:117;9207:80;9279:7;9270:6;9259:9;9255:22;9207:80;:::i;:::-;9189:98;;;;8984:313;8370:934;;;;;;;:::o;9310:329::-;9369:6;9418:2;9406:9;9397:7;9393:23;9389:32;9386:119;;;9424:79;;:::i;:::-;9386:119;9544:1;9569:53;9614:7;9605:6;9594:9;9590:22;9569:53;:::i;:::-;9559:63;;9515:117;9310:329;;;;:::o;9645:116::-;9715:21;9730:5;9715:21;:::i;:::-;9708:5;9705:32;9695:60;;9751:1;9748;9741:12;9695:60;9645:116;:::o;9767:133::-;9810:5;9848:6;9835:20;9826:29;;9864:30;9888:5;9864:30;:::i;:::-;9767:133;;;;:::o;9906:468::-;9971:6;9979;10028:2;10016:9;10007:7;10003:23;9999:32;9996:119;;;10034:79;;:::i;:::-;9996:119;10154:1;10179:53;10224:7;10215:6;10204:9;10200:22;10179:53;:::i;:::-;10169:63;;10125:117;10281:2;10307:50;10349:7;10340:6;10329:9;10325:22;10307:50;:::i;:::-;10297:60;;10252:115;9906:468;;;;;:::o;10380:118::-;10467:24;10485:5;10467:24;:::i;:::-;10462:3;10455:37;10380:118;;:::o;10504:222::-;10597:4;10635:2;10624:9;10620:18;10612:26;;10648:71;10716:1;10705:9;10701:17;10692:6;10648:71;:::i;:::-;10504:222;;;;:::o;10732:329::-;10791:6;10840:2;10828:9;10819:7;10815:23;10811:32;10808:119;;;10846:79;;:::i;:::-;10808:119;10966:1;10991:53;11036:7;11027:6;11016:9;11012:22;10991:53;:::i;:::-;10981:63;;10937:117;10732:329;;;;:::o;11067:474::-;11135:6;11143;11192:2;11180:9;11171:7;11167:23;11163:32;11160:119;;;11198:79;;:::i;:::-;11160:119;11318:1;11343:53;11388:7;11379:6;11368:9;11364:22;11343:53;:::i;:::-;11333:63;;11289:117;11445:2;11471:53;11516:7;11507:6;11496:9;11492:22;11471:53;:::i;:::-;11461:63;;11416:118;11067:474;;;;;:::o;11547:180::-;11595:77;11592:1;11585:88;11692:4;11689:1;11682:15;11716:4;11713:1;11706:15;11733:320;11777:6;11814:1;11808:4;11804:12;11794:22;;11861:1;11855:4;11851:12;11882:18;11872:81;;11938:4;11930:6;11926:17;11916:27;;11872:81;12000:2;11992:6;11989:14;11969:18;11966:38;11963:84;;12019:18;;:::i;:::-;11963:84;11784:269;11733:320;;;:::o;12059:173::-;12199:25;12195:1;12187:6;12183:14;12176:49;12059:173;:::o;12238:366::-;12380:3;12401:67;12465:2;12460:3;12401:67;:::i;:::-;12394:74;;12477:93;12566:3;12477:93;:::i;:::-;12595:2;12590:3;12586:12;12579:19;;12238:366;;;:::o;12610:419::-;12776:4;12814:2;12803:9;12799:18;12791:26;;12863:9;12857:4;12853:20;12849:1;12838:9;12834:17;12827:47;12891:131;13017:4;12891:131;:::i;:::-;12883:139;;12610:419;;;:::o;13035:180::-;13083:77;13080:1;13073:88;13180:4;13177:1;13170:15;13204:4;13201:1;13194:15;13221:180;13269:77;13266:1;13259:88;13366:4;13363:1;13356:15;13390:4;13387:1;13380:15;13407:185;13447:1;13464:20;13482:1;13464:20;:::i;:::-;13459:25;;13498:20;13516:1;13498:20;:::i;:::-;13493:25;;13537:1;13527:35;;13542:18;;:::i;:::-;13527:35;13584:1;13581;13577:9;13572:14;;13407:185;;;;:::o;13598:191::-;13638:3;13657:20;13675:1;13657:20;:::i;:::-;13652:25;;13691:20;13709:1;13691:20;:::i;:::-;13686:25;;13734:1;13731;13727:9;13720:16;;13755:3;13752:1;13749:10;13746:36;;;13762:18;;:::i;:::-;13746:36;13598:191;;;;:::o;13795:172::-;13935:24;13931:1;13923:6;13919:14;13912:48;13795:172;:::o;13973:366::-;14115:3;14136:67;14200:2;14195:3;14136:67;:::i;:::-;14129:74;;14212:93;14301:3;14212:93;:::i;:::-;14330:2;14325:3;14321:12;14314:19;;13973:366;;;:::o;14345:419::-;14511:4;14549:2;14538:9;14534:18;14526:26;;14598:9;14592:4;14588:20;14584:1;14573:9;14569:17;14562:47;14626:131;14752:4;14626:131;:::i;:::-;14618:139;;14345:419;;;:::o;14770:180::-;14818:77;14815:1;14808:88;14915:4;14912:1;14905:15;14939:4;14936:1;14929:15;14956:410;14996:7;15019:20;15037:1;15019:20;:::i;:::-;15014:25;;15053:20;15071:1;15053:20;:::i;:::-;15048:25;;15108:1;15105;15101:9;15130:30;15148:11;15130:30;:::i;:::-;15119:41;;15309:1;15300:7;15296:15;15293:1;15290:22;15270:1;15263:9;15243:83;15220:139;;15339:18;;:::i;:::-;15220:139;15004:362;14956:410;;;;:::o;15372:172::-;15512:24;15508:1;15500:6;15496:14;15489:48;15372:172;:::o;15550:366::-;15692:3;15713:67;15777:2;15772:3;15713:67;:::i;:::-;15706:74;;15789:93;15878:3;15789:93;:::i;:::-;15907:2;15902:3;15898:12;15891:19;;15550:366;;;:::o;15922:419::-;16088:4;16126:2;16115:9;16111:18;16103:26;;16175:9;16169:4;16165:20;16161:1;16150:9;16146:17;16139:47;16203:131;16329:4;16203:131;:::i;:::-;16195:139;;15922:419;;;:::o;16347:244::-;16487:34;16483:1;16475:6;16471:14;16464:58;16556:27;16551:2;16543:6;16539:15;16532:52;16347:244;:::o;16597:366::-;16739:3;16760:67;16824:2;16819:3;16760:67;:::i;:::-;16753:74;;16836:93;16925:3;16836:93;:::i;:::-;16954:2;16949:3;16945:12;16938:19;;16597:366;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;16969:419;;;:::o;17394:224::-;17534:34;17530:1;17522:6;17518:14;17511:58;17603:7;17598:2;17590:6;17586:15;17579:32;17394:224;:::o;17624:366::-;17766:3;17787:67;17851:2;17846:3;17787:67;:::i;:::-;17780:74;;17863:93;17952:3;17863:93;:::i;:::-;17981:2;17976:3;17972:12;17965:19;;17624:366;;;:::o;17996:419::-;18162:4;18200:2;18189:9;18185:18;18177:26;;18249:9;18243:4;18239:20;18235:1;18224:9;18220:17;18213:47;18277:131;18403:4;18277:131;:::i;:::-;18269:139;;17996:419;;;:::o;18421:225::-;18561:34;18557:1;18549:6;18545:14;18538:58;18630:8;18625:2;18617:6;18613:15;18606:33;18421:225;:::o;18652:366::-;18794:3;18815:67;18879:2;18874:3;18815:67;:::i;:::-;18808:74;;18891:93;18980:3;18891:93;:::i;:::-;19009:2;19004:3;19000:12;18993:19;;18652:366;;;:::o;19024:419::-;19190:4;19228:2;19217:9;19213:18;19205:26;;19277:9;19271:4;19267:20;19263:1;19252:9;19248:17;19241:47;19305:131;19431:4;19305:131;:::i;:::-;19297:139;;19024:419;;;:::o;19449:223::-;19589:34;19585:1;19577:6;19573:14;19566:58;19658:6;19653:2;19645:6;19641:15;19634:31;19449:223;:::o;19678:366::-;19820:3;19841:67;19905:2;19900:3;19841:67;:::i;:::-;19834:74;;19917:93;20006:3;19917:93;:::i;:::-;20035:2;20030:3;20026:12;20019:19;;19678:366;;;:::o;20050:419::-;20216:4;20254:2;20243:9;20239:18;20231:26;;20303:9;20297:4;20293:20;20289:1;20278:9;20274:17;20267:47;20331:131;20457:4;20331:131;:::i;:::-;20323:139;;20050:419;;;:::o;20475:221::-;20615:34;20611:1;20603:6;20599:14;20592:58;20684:4;20679:2;20671:6;20667:15;20660:29;20475:221;:::o;20702:366::-;20844:3;20865:67;20929:2;20924:3;20865:67;:::i;:::-;20858:74;;20941:93;21030:3;20941:93;:::i;:::-;21059:2;21054:3;21050:12;21043:19;;20702:366;;;:::o;21074:419::-;21240:4;21278:2;21267:9;21263:18;21255:26;;21327:9;21321:4;21317:20;21313:1;21302:9;21298:17;21291:47;21355:131;21481:4;21355:131;:::i;:::-;21347:139;;21074:419;;;:::o;21499:179::-;21639:31;21635:1;21627:6;21623:14;21616:55;21499:179;:::o;21684:366::-;21826:3;21847:67;21911:2;21906:3;21847:67;:::i;:::-;21840:74;;21923:93;22012:3;21923:93;:::i;:::-;22041:2;22036:3;22032:12;22025:19;;21684:366;;;:::o;22056:419::-;22222:4;22260:2;22249:9;22245:18;22237:26;;22309:9;22303:4;22299:20;22295:1;22284:9;22280:17;22273:47;22337:131;22463:4;22337:131;:::i;:::-;22329:139;;22056:419;;;:::o;22481:224::-;22621:34;22617:1;22609:6;22605:14;22598:58;22690:7;22685:2;22677:6;22673:15;22666:32;22481:224;:::o;22711:366::-;22853:3;22874:67;22938:2;22933:3;22874:67;:::i;:::-;22867:74;;22950:93;23039:3;22950:93;:::i;:::-;23068:2;23063:3;23059:12;23052:19;;22711:366;;;:::o;23083:419::-;23249:4;23287:2;23276:9;23272:18;23264:26;;23336:9;23330:4;23326:20;23322:1;23311:9;23307:17;23300:47;23364:131;23490:4;23364:131;:::i;:::-;23356:139;;23083:419;;;:::o;23508:222::-;23648:34;23644:1;23636:6;23632:14;23625:58;23717:5;23712:2;23704:6;23700:15;23693:30;23508:222;:::o;23736:366::-;23878:3;23899:67;23963:2;23958:3;23899:67;:::i;:::-;23892:74;;23975:93;24064:3;23975:93;:::i;:::-;24093:2;24088:3;24084:12;24077:19;;23736:366;;;:::o;24108:419::-;24274:4;24312:2;24301:9;24297:18;24289:26;;24361:9;24355:4;24351:20;24347:1;24336:9;24332:17;24325:47;24389:131;24515:4;24389:131;:::i;:::-;24381:139;;24108:419;;;:::o;24533:172::-;24673:24;24669:1;24661:6;24657:14;24650:48;24533:172;:::o;24711:366::-;24853:3;24874:67;24938:2;24933:3;24874:67;:::i;:::-;24867:74;;24950:93;25039:3;24950:93;:::i;:::-;25068:2;25063:3;25059:12;25052:19;;24711:366;;;:::o;25083:419::-;25249:4;25287:2;25276:9;25272:18;25264:26;;25336:9;25330:4;25326:20;25322:1;25311:9;25307:17;25300:47;25364:131;25490:4;25364:131;:::i;:::-;25356:139;;25083:419;;;:::o;25508:240::-;25648:34;25644:1;25636:6;25632:14;25625:58;25717:23;25712:2;25704:6;25700:15;25693:48;25508:240;:::o;25754:366::-;25896:3;25917:67;25981:2;25976:3;25917:67;:::i;:::-;25910:74;;25993:93;26082:3;25993:93;:::i;:::-;26111:2;26106:3;26102:12;26095:19;;25754:366;;;:::o;26126:419::-;26292:4;26330:2;26319:9;26315:18;26307:26;;26379:9;26373:4;26369:20;26365:1;26354:9;26350:17;26343:47;26407:131;26533:4;26407:131;:::i;:::-;26399:139;;26126:419;;;:::o;26551:169::-;26691:21;26687:1;26679:6;26675:14;26668:45;26551:169;:::o;26726:366::-;26868:3;26889:67;26953:2;26948:3;26889:67;:::i;:::-;26882:74;;26965:93;27054:3;26965:93;:::i;:::-;27083:2;27078:3;27074:12;27067:19;;26726:366;;;:::o;27098:419::-;27264:4;27302:2;27291:9;27287:18;27279:26;;27351:9;27345:4;27341:20;27337:1;27326:9;27322:17;27315:47;27379:131;27505:4;27379:131;:::i;:::-;27371:139;;27098:419;;;:::o;27523:241::-;27663:34;27659:1;27651:6;27647:14;27640:58;27732:24;27727:2;27719:6;27715:15;27708:49;27523:241;:::o;27770:366::-;27912:3;27933:67;27997:2;27992:3;27933:67;:::i;:::-;27926:74;;28009:93;28098:3;28009:93;:::i;:::-;28127:2;28122:3;28118:12;28111:19;;27770:366;;;:::o;28142:419::-;28308:4;28346:2;28335:9;28331:18;28323:26;;28395:9;28389:4;28385:20;28381:1;28370:9;28366:17;28359:47;28423:131;28549:4;28423:131;:::i;:::-;28415:139;;28142:419;;;:::o;28567:233::-;28606:3;28629:24;28647:5;28629:24;:::i;:::-;28620:33;;28675:66;28668:5;28665:77;28662:103;;28745:18;;:::i;:::-;28662:103;28792:1;28785:5;28781:13;28774:20;;28567:233;;;:::o;28806:194::-;28846:4;28866:20;28884:1;28866:20;:::i;:::-;28861:25;;28900:20;28918:1;28900:20;:::i;:::-;28895:25;;28944:1;28941;28937:9;28929:17;;28968:1;28962:4;28959:11;28956:37;;;28973:18;;:::i;:::-;28956:37;28806:194;;;;:::o;29006:182::-;29146:34;29142:1;29134:6;29130:14;29123:58;29006:182;:::o;29194:366::-;29336:3;29357:67;29421:2;29416:3;29357:67;:::i;:::-;29350:74;;29433:93;29522:3;29433:93;:::i;:::-;29551:2;29546:3;29542:12;29535:19;;29194:366;;;:::o;29566:419::-;29732:4;29770:2;29759:9;29755:18;29747:26;;29819:9;29813:4;29809:20;29805:1;29794:9;29790:17;29783:47;29847:131;29973:4;29847:131;:::i;:::-;29839:139;;29566:419;;;:::o;29991:180::-;30039:77;30036:1;30029:88;30136:4;30133:1;30126:15;30160:4;30157:1;30150:15;30177:143;30234:5;30265:6;30259:13;30250:22;;30281:33;30308:5;30281:33;:::i;:::-;30177:143;;;;:::o;30326:351::-;30396:6;30445:2;30433:9;30424:7;30420:23;30416:32;30413:119;;;30451:79;;:::i;:::-;30413:119;30571:1;30596:64;30652:7;30643:6;30632:9;30628:22;30596:64;:::i;:::-;30586:74;;30542:128;30326:351;;;;:::o;30683:85::-;30728:7;30757:5;30746:16;;30683:85;;;:::o;30774:158::-;30832:9;30865:61;30883:42;30892:32;30918:5;30892:32;:::i;:::-;30883:42;:::i;:::-;30865:61;:::i;:::-;30852:74;;30774:158;;;:::o;30938:147::-;31033:45;31072:5;31033:45;:::i;:::-;31028:3;31021:58;30938:147;;:::o;31091:114::-;31158:6;31192:5;31186:12;31176:22;;31091:114;;;:::o;31211:184::-;31310:11;31344:6;31339:3;31332:19;31384:4;31379:3;31375:14;31360:29;;31211:184;;;;:::o;31401:132::-;31468:4;31491:3;31483:11;;31521:4;31516:3;31512:14;31504:22;;31401:132;;;:::o;31539:108::-;31616:24;31634:5;31616:24;:::i;:::-;31611:3;31604:37;31539:108;;:::o;31653:179::-;31722:10;31743:46;31785:3;31777:6;31743:46;:::i;:::-;31821:4;31816:3;31812:14;31798:28;;31653:179;;;;:::o;31838:113::-;31908:4;31940;31935:3;31931:14;31923:22;;31838:113;;;:::o;31987:732::-;32106:3;32135:54;32183:5;32135:54;:::i;:::-;32205:86;32284:6;32279:3;32205:86;:::i;:::-;32198:93;;32315:56;32365:5;32315:56;:::i;:::-;32394:7;32425:1;32410:284;32435:6;32432:1;32429:13;32410:284;;;32511:6;32505:13;32538:63;32597:3;32582:13;32538:63;:::i;:::-;32531:70;;32624:60;32677:6;32624:60;:::i;:::-;32614:70;;32470:224;32457:1;32454;32450:9;32445:14;;32410:284;;;32414:14;32710:3;32703:10;;32111:608;;;31987:732;;;;:::o;32725:831::-;32988:4;33026:3;33015:9;33011:19;33003:27;;33040:71;33108:1;33097:9;33093:17;33084:6;33040:71;:::i;:::-;33121:80;33197:2;33186:9;33182:18;33173:6;33121:80;:::i;:::-;33248:9;33242:4;33238:20;33233:2;33222:9;33218:18;33211:48;33276:108;33379:4;33370:6;33276:108;:::i;:::-;33268:116;;33394:72;33462:2;33451:9;33447:18;33438:6;33394:72;:::i;:::-;33476:73;33544:3;33533:9;33529:19;33520:6;33476:73;:::i;:::-;32725:831;;;;;;;;:::o;33562:225::-;33702:34;33698:1;33690:6;33686:14;33679:58;33771:8;33766:2;33758:6;33754:15;33747:33;33562:225;:::o;33793:366::-;33935:3;33956:67;34020:2;34015:3;33956:67;:::i;:::-;33949:74;;34032:93;34121:3;34032:93;:::i;:::-;34150:2;34145:3;34141:12;34134:19;;33793:366;;;:::o;34165:419::-;34331:4;34369:2;34358:9;34354:18;34346:26;;34418:9;34412:4;34408:20;34404:1;34393:9;34389:17;34382:47;34446:131;34572:4;34446:131;:::i;:::-;34438:139;;34165:419;;;:::o

Swarm Source

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