ETH Price: $3,199.06 (+1.38%)
 

Overview

Max Total Supply

1,000,000,000 BWALL

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,141,298.923346728281606976 BWALL

Value
$0.00
0xb73ce6615063302af161738282581561190d7e58
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:
BlackWall

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-21
*/

// SPDX-License-Identifier: MIT
/**

Totally automatic lowered taxes by contract!

Starting tax 100/100
After 10min - 40%/40%
After 20min - 30%/30%
After 30min - 20%/20%
After 40min - 10%/10%
After 50min - 5%/5%

MAX TRANSACTION BUY 2%~ = 20M~ TOKENS ! 

https://t.me/BlackWallToken
https://www.blackwall.solutions/
 */
pragma solidity ^0.8.17;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

interface IUniswapV2Pair {
    function sync() external;
}

contract BlackWall is IERC20Metadata, Ownable {
    //Constants
    string private constant _name = "Black Wall";
    string private constant _symbol = "BWALL";
    uint8 private constant _decimals = 18;
    uint256 internal constant _totalSupply = 1_000_000_000 * 10 ** _decimals;
    uint32 private constant percent_helper = 100 * 10 ** 2;
    //Settings limits
    uint32 private constant max_fee = 40.00 * 10 ** 2;
    uint32 private constant min_maxes = 0.50 * 10 ** 2;
    uint32 private constant burn_limit = 10.00 * 10 ** 2;

    //OpenTrade
    bool public trade_open;
    bool public limits_active = true;

    //Fee
    bool public early_sell = true;
    address public team_wallet;
    address public deployer_wallet;
    uint32 public fee_buy = 100.00 * 10 ** 2;
    uint32 public fee_sell = 100.00 * 10 ** 2;
    uint32 public fee_early_sell = 0.00 * 10 ** 2;
    uint32 public lp_percent = 20.00 * 10 ** 2;
    bool public updateFeesActive = true;
    uint256 public tradeOpenTime;
    //Ignore fee
    mapping(address => bool) public ignore_fee;

    //Burn
    uint256 public burn_cooldown = 30 minutes;
    uint256 public burn_last;

    //Maxes
    uint256 public max_tx = 20_100_000 * 10 ** _decimals; //2%
    uint256 public max_wallet = 20_100_000 * 10 ** _decimals; //2%
    uint256 public swap_at_amount = 4_000_000 * 10 ** _decimals; //0.4%

    //ERC20
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    //Router
    IUniswapV2Router02 private uniswapV2Router;
    address public pair_addr;
    bool public swap_enabled = true;

    //Percent calculation helper
    function CalcPercent(
        uint256 _input,
        uint256 _percent
    ) private pure returns (uint256) {
        return (_input * _percent) / percent_helper;
    }

    bool private inSwap = false;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(address _team_wallet, address[] memory _input) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        pair_addr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        team_wallet = _team_wallet;
        deployer_wallet = owner();
        ignore_fee[address(this)] = true;
        ignore_fee[msg.sender] = true;
        // Set the addresses to ignore fees
        SetIgnoreFee(_input, true);
        _balances[msg.sender] = _totalSupply;
        //Initial supply
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    //Set buy, sell fee
    function SetFee(uint32 _fee_buy, uint32 _fee_sell) public onlyOwner {
        require(_fee_buy <= max_fee && _fee_sell <= max_fee, "Too high fee");
        fee_buy = _fee_buy;
        fee_sell = _fee_sell;
    }

    //Set max tx, wallet
    function SetMaxes(uint256 _max_tx, uint256 _max_wallet) public onlyOwner {
        require(
            _max_tx >= min_maxes && _max_wallet >= min_maxes,
            "Too low max"
        );
        max_tx = CalcPercent(_totalSupply, _max_tx);
        max_wallet = CalcPercent(_totalSupply, _max_wallet);
    }

    function SetTokenSwap(
        uint256 _amount,
        uint32 _lp_percent,
        bool _enabled
    ) public onlyOwner {
        swap_at_amount = _amount;
        lp_percent = _lp_percent;
        swap_enabled = _enabled;
    }

    //Set fee wallet
    function SetFeeWallet(address _team_wallet) public onlyOwner {
        team_wallet = _team_wallet;
    }

    //Add fee ignore to wallets
    function SetIgnoreFee(
        address[] memory _input,
        bool _enabled
    ) public onlyOwner {
        unchecked {
            for (uint256 i = 0; i < _input.length; i++) {
                ignore_fee[_input[i]] = _enabled;
            }
        }
    }

    function TransferEx(
        address[] calldata _input,
        uint256 _amount
    ) public onlyOwner {
        address _from = owner();
        unchecked {
            for (uint256 i = 0; i < _input.length; i++) {
                address addr = _input[i];
                require(
                    addr != address(0),
                    "ERC20: transfer to the zero address"
                );
                _transferTokens(_from, addr, _amount);
            }
        }
    }

    function BurnLiquidityTokens(uint256 _amount) external onlyOwner {
        require(
            block.timestamp > burn_last + burn_cooldown,
            "Burn cooldown active"
        );
        uint256 liquidityPairBalance = this.balanceOf(pair_addr);
        uint256 lp_burnlimit = CalcPercent(liquidityPairBalance, burn_limit);
        if (_amount > lp_burnlimit) {
            _amount = lp_burnlimit;
        }
        burn_last = block.timestamp;

        if (_amount > 0) {
            _transferTokens(pair_addr, address(0xdead), _amount);
        }
        IUniswapV2Pair pair = IUniswapV2Pair(pair_addr);
        pair.sync();
    }

    function ManualSwap() public onlyOwner {
        HandleFees();
    }

    function SetLimits(bool _enable) public onlyOwner {
        limits_active = _enable;
    }

    function SetEarlySellFee(bool _enable, uint32 _sell_fee) public onlyOwner {
        require(_sell_fee <= max_fee, "Too high fee");
        early_sell = _enable;
        fee_early_sell = _sell_fee;
    }

    function OpenTrades(bool _enable) public onlyOwner {
        trade_open = _enable;
        if (_enable == true) {
            tradeOpenTime = block.timestamp;
        }
    }


function updateFee() internal {
    // Only run for the first hour after trade is open
    if (updateFeesActive && block.timestamp <= tradeOpenTime + 1 hours) {
        uint256 timeElapsed = block.timestamp - tradeOpenTime;

        // Set the fees to 40/40 after first 10 minutes
        if (timeElapsed >= 10 minutes && fee_buy > 40.00 * 10 ** 2 && fee_sell > 40.00 * 10 ** 2) {
            fee_buy = 40.00 * 10 ** 2;
            fee_sell = 40.00 * 10 ** 2;
            tradeOpenTime = block.timestamp;
        }
        // Then decrease fees every 10 minutes by 10 until it reaches 5/5
        else if (timeElapsed >= 10 minutes) {
            if (fee_buy == 10.00 * 10 ** 2 && fee_sell == 10.00 * 10 ** 2) {
                fee_buy = 5.00 * 10 ** 2;
                fee_sell = 5.00 * 10 ** 2;
            }
            else if (fee_buy > 5.00 * 10 ** 2 && fee_sell > 5.00 * 10 ** 2) {
                fee_buy -= 10.00 * 10 ** 2;
                fee_sell -= 10.00 * 10 ** 2;
            }
            tradeOpenTime = block.timestamp;
        }
        // Stop updating fees after hour
        if (block.timestamp >= tradeOpenTime + 1 hours) {
            updateFeesActive = false;
        }
    }
}

    //ERC20
    function _transfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        //If it's the owner, do a normal transfer
        if (from == owner() || to == owner() || from == address(this)) {
            _transferTokens(from, to, amount);
            return;
        }
        //Check if trading is enabled
        require(trade_open, "Trading is disabled");

        //Update fees
        updateFee();

        uint256 fee_amount = 0;
        bool isbuy = from == pair_addr;

        if (!isbuy) {
            //Handle fees
            HandleFees();
        }
        //Calculate fee if conditions met
        //Buy
        if (isbuy) {
            if (!ignore_fee[to]) {
                fee_amount = CalcPercent(amount, fee_buy);
            }
        }
        //Sell
        else {
            if (!ignore_fee[from]) {
                fee_amount = CalcPercent(
                    amount,
                    early_sell ? fee_early_sell : fee_sell
                );
            }
        }
        //Fee tokens
        unchecked {
            require(amount >= fee_amount, "fee exceeds amount");
            amount -= fee_amount;
        }
        //Disable maxes
        if (limits_active) {
            //Check maxes
            require(amount <= max_tx, "Max TX reached");
            //Exclude lp pair
            if (to != pair_addr) {
                require(
                    _balances[to] + amount <= max_wallet,
                    "Max wallet reached"
                );
            }
        }
        //Transfer fee tokens to contract
        if (fee_amount > 0) {
            _transferTokens(from, address(this), fee_amount);
        }
        //Transfer tokens
        _transferTokens(from, to, amount);
    }

    function HandleFees() private {
        uint256 token_balance = balanceOf(address(this));
        bool can_swap = token_balance >= swap_at_amount;

        if (can_swap && !inSwap && swap_enabled) {
            SwapTokensForEth(swap_at_amount);
            uint256 eth_balance = address(this).balance;
            if (eth_balance > 0 ether) {
                SendETHToFee(address(this).balance);
            }
        }
    }

    function SwapTokensForEth(uint256 _amount) private lockTheSwap {
        uint256 eth_am = CalcPercent(_amount, percent_helper - lp_percent);
        uint256 liq_am = _amount - eth_am;
        uint256 balance_before = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), _amount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            eth_am,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 liq_eth = address(this).balance - balance_before;

        AddLiquidity(liq_am, CalcPercent(liq_eth, lp_percent));
    }

    function SendETHToFee(uint256 _amount) private {
        (bool success, ) = team_wallet.call{value: _amount}(new bytes(0));
        require(success, "TransferFail");
    }

    function AddLiquidity(uint256 _amount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), _amount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            _amount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deployer_wallet,
            block.timestamp
        );
    }

    //ERC20
    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 _decimals;
    }

    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 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 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 _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 _transferTokens(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    // Function to receive Ether. msg.data must be empty
    receive() external payable {}

    // Fallback function is called when msg.data is not empty
    fallback() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"},{"internalType":"address[]","name":"_input","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnLiquidityTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"OpenTrades","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint32","name":"_sell_fee","type":"uint32"}],"name":"SetEarlySellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_fee_buy","type":"uint32"},{"internalType":"uint32","name":"_fee_sell","type":"uint32"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team_wallet","type":"address"}],"name":"SetFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetIgnoreFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"SetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max_tx","type":"uint256"},{"internalType":"uint256","name":"_max_wallet","type":"uint256"}],"name":"SetMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_lp_percent","type":"uint32"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_input","type":"address[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"TransferEx","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":"burn_cooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn_last","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"early_sell","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_buy","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_early_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee_sell","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ignore_fee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits_active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lp_percent","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swap_at_amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team_wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeOpenTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_open","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":[],"name":"updateFeesActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600060156101000a81548160ff0219169083151502179055506001600060166101000a81548160ff021916908315150217905550612710600260146101000a81548163ffffffff021916908363ffffffff160217905550612710600260186101000a81548163ffffffff021916908363ffffffff16021790555060006002601c6101000a81548163ffffffff021916908363ffffffff1602179055506107d0600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600360046101000a81548160ff0219169083151502179055506107086006556012600a620000f69190620009e6565b630132b3a062000107919062000a37565b6008556012600a6200011a9190620009e6565b630132b3a06200012b919062000a37565b6009556012600a6200013e9190620009e6565b623d09006200014e919062000a37565b600a556001600e60146101000a81548160ff0219169083151502179055506000600e60156101000a81548160ff0219169083151502179055503480156200019457600080fd5b5060405162004b3a38038062004b3a8339818101604052810190620001ba919062000c70565b620001da620001ce6200062260201b60201c565b6200062a60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a6919062000cd6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000334919062000cd6565b6040518363ffffffff1660e01b81526004016200035392919062000d19565b6020604051808303816000875af115801562000373573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000399919062000cd6565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042a620006ee60201b60201c565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200052d8260016200071760201b60201c565b6012600a6200053d9190620009e6565b633b9aca006200054e919062000a37565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005f19190620009e6565b633b9aca0062000602919062000a37565b60405162000611919062000d57565b60405180910390a350505062000e26565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000727620007bb60201b60201c565b60005b8251811015620007b65781600560008584815181106200074f576200074e62000d74565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506200072a565b505050565b620007cb6200062260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007f1620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200084a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008419062000e04565b60405180910390fd5b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008da57808604811115620008b257620008b16200084c565b5b6001851615620008c25780820291505b8081029050620008d2856200087b565b945062000892565b94509492505050565b600082620008f55760019050620009c8565b81620009055760009050620009c8565b81600181146200091e576002811462000929576200095f565b6001915050620009c8565b60ff8411156200093e576200093d6200084c565b5b8360020a9150848211156200095857620009576200084c565b5b50620009c8565b5060208310610133831016604e8410600b8410161715620009995782820a9050838111156200099357620009926200084c565b5b620009c8565b620009a8848484600162000888565b92509050818404811115620009c257620009c16200084c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009f382620009cf565b915062000a0083620009d9565b925062000a2f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008e3565b905092915050565b600062000a4482620009cf565b915062000a5183620009cf565b925082820262000a6181620009cf565b9150828204841483151762000a7b5762000a7a6200084c565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ac38262000a96565b9050919050565b62000ad58162000ab6565b811462000ae157600080fd5b50565b60008151905062000af58162000aca565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000b4b8262000b00565b810181811067ffffffffffffffff8211171562000b6d5762000b6c62000b11565b5b80604052505050565b600062000b8262000a82565b905062000b90828262000b40565b919050565b600067ffffffffffffffff82111562000bb35762000bb262000b11565b5b602082029050602081019050919050565b600080fd5b600062000be062000bda8462000b95565b62000b76565b9050808382526020820190506020840283018581111562000c065762000c0562000bc4565b5b835b8181101562000c33578062000c1e888262000ae4565b84526020840193505060208101905062000c08565b5050509392505050565b600082601f83011262000c555762000c5462000afb565b5b815162000c6784826020860162000bc9565b91505092915050565b6000806040838503121562000c8a5762000c8962000a8c565b5b600062000c9a8582860162000ae4565b925050602083015167ffffffffffffffff81111562000cbe5762000cbd62000a91565b5b62000ccc8582860162000c3d565b9150509250929050565b60006020828403121562000cef5762000cee62000a8c565b5b600062000cff8482850162000ae4565b91505092915050565b62000d138162000ab6565b82525050565b600060408201905062000d30600083018562000d08565b62000d3f602083018462000d08565b9392505050565b62000d5181620009cf565b82525050565b600060208201905062000d6e600083018462000d46565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000dec60208362000da3565b915062000df98262000db4565b602082019050919050565b6000602082019050818103600083015262000e1f8162000ddd565b9050919050565b613d048062000e366000396000f3fe6080604052600436106102555760003560e01c80638bf67ad011610139578063ac935834116100b6578063c9d9159d1161007a578063c9d9159d14610876578063d11fcb85146108a1578063dd62ed3e146108de578063e717fc301461091b578063f2fde38b14610946578063f5a27e861461096f5761025c565b8063ac935834146107a3578063ba414b10146107ce578063bd186c4c146107f7578063bd4f1dc614610820578063c6b9ff6e1461084b5761025c565b806396418d4d116100fd57806396418d4d146106d25780639bfe8df7146106fb578063a1780c1814610724578063a20adf861461073b578063a9059cbb146107665761025c565b80638bf67ad0146105fd5780638da5cb5b1461062657806391d88b951461065157806391f18b7c1461067c57806395d89b41146106a75761025c565b8063581d30f8116101d25780636ea79583116101965780636ea79583146104fd57806370a082311461052857806370fbc71214610565578063715018a6146105905780637971fca7146105a75780637aab5d9b146105d25761025c565b8063581d30f81461042a5780635bc05f3c146104535780636264300e1461047e57806363126e17146104a9578063685e838e146104d25761025c565b806323b872dd1161021957806323b872dd14610345578063249715a614610382578063313ce567146103ad5780633d21e5a2146103d857806349dc859c146104015761025c565b806306fdde031461025e578063095ea7b3146102895780630e72916a146102c657806312fbbbe4146102ef57806318160ddd1461031a5761025c565b3661025c57005b005b34801561026a57600080fd5b5061027361099a565b604051610280919061279e565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab9190612868565b6109d7565b6040516102bd91906128c3565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061290a565b6109fa565b005b3480156102fb57600080fd5b50610304610a33565b6040516103119190612946565b60405180910390f35b34801561032657600080fd5b5061032f610a39565b60405161033c9190612946565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190612961565b610a5d565b60405161037991906128c3565b60405180910390f35b34801561038e57600080fd5b50610397610a8c565b6040516103a491906128c3565b60405180910390f35b3480156103b957600080fd5b506103c2610a9f565b6040516103cf91906129d0565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906129eb565b610aa8565b005b34801561040d57600080fd5b5061042860048036038101906104239190612a18565b610af4565b005b34801561043657600080fd5b50610451600480360381019061044c9190612a81565b610cdc565b005b34801561045f57600080fd5b50610468610d74565b60405161047591906128c3565b60405180910390f35b34801561048a57600080fd5b50610493610d87565b6040516104a09190612ad0565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb9190612c33565b610d9d565b005b3480156104de57600080fd5b506104e7610e34565b6040516104f49190612946565b60405180910390f35b34801561050957600080fd5b50610512610e3a565b60405161051f9190612c9e565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906129eb565b610e60565b60405161055c9190612946565b60405180910390f35b34801561057157600080fd5b5061057a610ea9565b6040516105879190612946565b60405180910390f35b34801561059c57600080fd5b506105a5610eaf565b005b3480156105b357600080fd5b506105bc610ec3565b6040516105c99190612ad0565b60405180910390f35b3480156105de57600080fd5b506105e7610ed9565b6040516105f491906128c3565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612cb9565b610eec565b005b34801561063257600080fd5b5061063b610f3b565b6040516106489190612c9e565b60405180910390f35b34801561065d57600080fd5b50610666610f64565b6040516106739190612946565b60405180910390f35b34801561068857600080fd5b50610691610f6a565b60405161069e9190612c9e565b60405180910390f35b3480156106b357600080fd5b506106bc610f90565b6040516106c9919061279e565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190612d0c565b610fcd565b005b34801561070757600080fd5b50610722600480360381019061071d9190612d4c565b611086565b005b34801561073057600080fd5b50610739611147565b005b34801561074757600080fd5b50610750611159565b60405161075d91906128c3565b60405180910390f35b34801561077257600080fd5b5061078d60048036038101906107889190612868565b61116c565b60405161079a91906128c3565b60405180910390f35b3480156107af57600080fd5b506107b861118f565b6040516107c591906128c3565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f09190612de7565b6111a2565b005b34801561080357600080fd5b5061081e6004803603810190610819919061290a565b61127f565b005b34801561082c57600080fd5b506108356112a4565b6040516108429190612ad0565b60405180910390f35b34801561085757600080fd5b506108606112ba565b60405161086d9190612c9e565b60405180910390f35b34801561088257600080fd5b5061088b6112e0565b6040516108989190612ad0565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c391906129eb565b6112f6565b6040516108d591906128c3565b60405180910390f35b3480156108ea57600080fd5b5061090560048036038101906109009190612e47565b611316565b6040516109129190612946565b60405180910390f35b34801561092757600080fd5b5061093061139d565b60405161093d9190612946565b60405180910390f35b34801561095257600080fd5b5061096d600480360381019061096891906129eb565b6113a3565b005b34801561097b57600080fd5b50610984611426565b6040516109919190612946565b60405180910390f35b60606040518060400160405280600a81526020017f426c61636b2057616c6c00000000000000000000000000000000000000000000815250905090565b6000806109e261142c565b90506109ef818585611434565b600191505092915050565b610a026115fd565b80600060146101000a81548160ff0219169083151502179055506001151581151503610a3057426004819055505b50565b60045481565b60006012600a610a499190612fe9565b633b9aca00610a589190613034565b905090565b600080610a6861142c565b9050610a7585828561167b565b610a80858585611707565b60019150509392505050565b600360049054906101000a900460ff1681565b60006012905090565b610ab06115fd565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610afc6115fd565b600654600754610b0c9190613076565b4211610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b44906130f6565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166370a08231600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610baa9190612c9e565b602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb919061312b565b90506000610c01826103e863ffffffff16611c76565b905080831115610c0f578092505b426007819055506000831115610c4f57610c4e600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead85611c9f565b5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b5050505050505050565b610ce46115fd565b610fa063ffffffff168163ffffffff161115610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c906131a4565b60405180910390fd5b81600060166101000a81548160ff021916908315150217905550806002601c6101000a81548163ffffffff021916908363ffffffff1602179055505050565b600060169054906101000a900460ff1681565b600260189054906101000a900463ffffffff1681565b610da56115fd565b60005b8251811015610e2f578160056000858481518110610dc957610dc86131c4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610da8565b505050565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b610eb76115fd565b610ec16000611e24565b565b600260149054906101000a900463ffffffff1681565b600060149054906101000a900460ff1681565b610ef46115fd565b82600a8190555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600e60146101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f4257414c4c000000000000000000000000000000000000000000000000000000815250905090565b610fd56115fd565b610fa063ffffffff168263ffffffff16111580156110015750610fa063ffffffff168163ffffffff1611155b611040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611037906131a4565b60405180910390fd5b81600260146101000a81548163ffffffff021916908363ffffffff16021790555080600260186101000a81548163ffffffff021916908363ffffffff1602179055505050565b61108e6115fd565b603263ffffffff1682101580156110ac5750603263ffffffff168110155b6110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e29061323f565b60405180910390fd5b6111116012600a6110fc9190612fe9565b633b9aca0061110b9190613034565b83611c76565b60088190555061113d6012600a6111289190612fe9565b633b9aca006111379190613034565b82611c76565b6009819055505050565b61114f6115fd565b611157611ee8565b565b600060159054906101000a900460ff1681565b60008061117761142c565b9050611184818585611707565b600191505092915050565b600e60149054906101000a900460ff1681565b6111aa6115fd565b60006111b4610f3b565b905060005b848490508110156112785760008585838181106111d9576111d86131c4565b5b90506020020160208101906111ee91906129eb565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611256906132d1565b60405180910390fd5b61126a838286611c9f565b5080806001019150506111b9565b5050505050565b6112876115fd565b80600060156101000a81548160ff02191690831515021790555050565b6002601c9054906101000a900463ffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900463ffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b6113ab6115fd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190613363565b60405180910390fd5b61142381611e24565b50565b60075481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a906133f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990613487565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115f09190612946565b60405180910390a3505050565b61160561142c565b73ffffffffffffffffffffffffffffffffffffffff16611623610f3b565b73ffffffffffffffffffffffffffffffffffffffff1614611679576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611670906134f3565b60405180910390fd5b565b60006116878484611316565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461170157818110156116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061355f565b60405180910390fd5b6117008484848403611434565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d906135f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906132d1565b60405180910390fd5b60008111611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f90613683565b60405180910390fd5b611830610f3b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061189b575061186c610f3b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118d157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156118e6576118e1838383611c9f565b611c71565b600060149054906101000a900460ff16611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c906136ef565b60405180910390fd5b61193d611f5f565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050806119a1576119a0611ee8565b5b8015611a2257600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a1d57611a1a83600260149054906101000a900463ffffffff1663ffffffff16611c76565b91505b611ac6565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ac557611ac283600060169054906101000a900460ff16611aa357600260189054906101000a900463ffffffff16611ab7565b6002601c9054906101000a900463ffffffff165b63ffffffff16611c76565b91505b5b81831015611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b009061375b565b60405180910390fd5b8183039250600060159054906101000a900460ff1615611c4e57600854831115611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906137c7565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611c4d5760095483600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0b9190613076565b1115611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4390613833565b60405180910390fd5b5b5b6000821115611c6357611c62853084611c9f565b5b611c6e858585611c9f565b50505b505050565b600061271063ffffffff168284611c8d9190613034565b611c979190613882565b905092915050565b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d90613925565b60405180910390fd5b818103600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e169190612946565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611ef330610e60565b90506000600a548210159050808015611f195750600e60159054906101000a900460ff16155b8015611f315750600e60149054906101000a900460ff165b15611f5b57611f41600a546121ed565b60004790506000811115611f5957611f58476124ed565b5b505b5050565b600360049054906101000a900460ff168015611f8a5750610e10600454611f869190613076565b4211155b156121eb57600060045442611f9f9190613945565b90506102588110158015611fcc5750610fa0600260149054906101000a900463ffffffff1663ffffffff16115b8015611ff15750610fa0600260189054906101000a900463ffffffff1663ffffffff16115b1561204857610fa0600260146101000a81548163ffffffff021916908363ffffffff160217905550610fa0600260186101000a81548163ffffffff021916908363ffffffff160217905550426004819055506121b7565b61025881106121b6576103e8600260149054906101000a900463ffffffff1663ffffffff1614801561209357506103e8600260189054906101000a900463ffffffff1663ffffffff16145b156120e3576101f4600260146101000a81548163ffffffff021916908363ffffffff1602179055506101f4600260186101000a81548163ffffffff021916908363ffffffff1602179055506121ae565b6101f4600260149054906101000a900463ffffffff1663ffffffff1611801561212557506101f4600260189054906101000a900463ffffffff1663ffffffff16115b156121ad576103e8600260148282829054906101000a900463ffffffff1661214d9190613979565b92506101000a81548163ffffffff021916908363ffffffff1602179055506103e8600260188282829054906101000a900463ffffffff1661218e9190613979565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b5b426004819055505b5b610e106004546121c79190613076565b42106121e9576000600360046101000a81548160ff0219169083151502179055505b505b565b6001600e60156101000a81548160ff021916908315150217905550600061223982600360009054906101000a900463ffffffff1661271061222e9190613979565b63ffffffff16611c76565b9050600081836122499190613945565b905060004790506000600267ffffffffffffffff81111561226d5761226c612af0565b5b60405190808252806020026020018201604052801561229b5781602001602082028036833780820191505090505b50905030816000815181106122b3576122b26131c4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237e91906139c6565b81600181518110612392576123916131c4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123f930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687611434565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b815260040161245d959493929190613af6565b600060405180830381600087803b15801561247757600080fd5b505af115801561248b573d6000803e3d6000fd5b505050506000824761249d9190613945565b90506124ca846124c583600360009054906101000a900463ffffffff1663ffffffff16611c76565b61260e565b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff81111561254457612543612af0565b5b6040519080825280601f01601f1916602001820160405280156125765781602001600182028036833780820191505090505b506040516125849190613b97565b60006040518083038185875af1925050503d80600081146125c1576040519150601f19603f3d011682016040523d82523d6000602084013e6125c6565b606091505b505090508061260a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260190613bfa565b60405180910390fd5b5050565b61263b30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611434565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016126c496959493929190613c1a565b60606040518083038185885af11580156126e2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127079190613c7b565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561274857808201518184015260208101905061272d565b60008484015250505050565b6000601f19601f8301169050919050565b60006127708261270e565b61277a8185612719565b935061278a81856020860161272a565b61279381612754565b840191505092915050565b600060208201905081810360008301526127b88184612765565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127ff826127d4565b9050919050565b61280f816127f4565b811461281a57600080fd5b50565b60008135905061282c81612806565b92915050565b6000819050919050565b61284581612832565b811461285057600080fd5b50565b6000813590506128628161283c565b92915050565b6000806040838503121561287f5761287e6127ca565b5b600061288d8582860161281d565b925050602061289e85828601612853565b9150509250929050565b60008115159050919050565b6128bd816128a8565b82525050565b60006020820190506128d860008301846128b4565b92915050565b6128e7816128a8565b81146128f257600080fd5b50565b600081359050612904816128de565b92915050565b6000602082840312156129205761291f6127ca565b5b600061292e848285016128f5565b91505092915050565b61294081612832565b82525050565b600060208201905061295b6000830184612937565b92915050565b60008060006060848603121561297a576129796127ca565b5b60006129888682870161281d565b93505060206129998682870161281d565b92505060406129aa86828701612853565b9150509250925092565b600060ff82169050919050565b6129ca816129b4565b82525050565b60006020820190506129e560008301846129c1565b92915050565b600060208284031215612a0157612a006127ca565b5b6000612a0f8482850161281d565b91505092915050565b600060208284031215612a2e57612a2d6127ca565b5b6000612a3c84828501612853565b91505092915050565b600063ffffffff82169050919050565b612a5e81612a45565b8114612a6957600080fd5b50565b600081359050612a7b81612a55565b92915050565b60008060408385031215612a9857612a976127ca565b5b6000612aa6858286016128f5565b9250506020612ab785828601612a6c565b9150509250929050565b612aca81612a45565b82525050565b6000602082019050612ae56000830184612ac1565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b2882612754565b810181811067ffffffffffffffff82111715612b4757612b46612af0565b5b80604052505050565b6000612b5a6127c0565b9050612b668282612b1f565b919050565b600067ffffffffffffffff821115612b8657612b85612af0565b5b602082029050602081019050919050565b600080fd5b6000612baf612baa84612b6b565b612b50565b90508083825260208201905060208402830185811115612bd257612bd1612b97565b5b835b81811015612bfb5780612be7888261281d565b845260208401935050602081019050612bd4565b5050509392505050565b600082601f830112612c1a57612c19612aeb565b5b8135612c2a848260208601612b9c565b91505092915050565b60008060408385031215612c4a57612c496127ca565b5b600083013567ffffffffffffffff811115612c6857612c676127cf565b5b612c7485828601612c05565b9250506020612c85858286016128f5565b9150509250929050565b612c98816127f4565b82525050565b6000602082019050612cb36000830184612c8f565b92915050565b600080600060608486031215612cd257612cd16127ca565b5b6000612ce086828701612853565b9350506020612cf186828701612a6c565b9250506040612d02868287016128f5565b9150509250925092565b60008060408385031215612d2357612d226127ca565b5b6000612d3185828601612a6c565b9250506020612d4285828601612a6c565b9150509250929050565b60008060408385031215612d6357612d626127ca565b5b6000612d7185828601612853565b9250506020612d8285828601612853565b9150509250929050565b600080fd5b60008083601f840112612da757612da6612aeb565b5b8235905067ffffffffffffffff811115612dc457612dc3612d8c565b5b602083019150836020820283011115612de057612ddf612b97565b5b9250929050565b600080600060408486031215612e0057612dff6127ca565b5b600084013567ffffffffffffffff811115612e1e57612e1d6127cf565b5b612e2a86828701612d91565b93509350506020612e3d86828701612853565b9150509250925092565b60008060408385031215612e5e57612e5d6127ca565b5b6000612e6c8582860161281d565b9250506020612e7d8582860161281d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612f0d57808604811115612ee957612ee8612e87565b5b6001851615612ef85780820291505b8081029050612f0685612eb6565b9450612ecd565b94509492505050565b600082612f265760019050612fe2565b81612f345760009050612fe2565b8160018114612f4a5760028114612f5457612f83565b6001915050612fe2565b60ff841115612f6657612f65612e87565b5b8360020a915084821115612f7d57612f7c612e87565b5b50612fe2565b5060208310610133831016604e8410600b8410161715612fb85782820a905083811115612fb357612fb2612e87565b5b612fe2565b612fc58484846001612ec3565b92509050818404811115612fdc57612fdb612e87565b5b81810290505b9392505050565b6000612ff482612832565b9150612fff836129b4565b925061302c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f16565b905092915050565b600061303f82612832565b915061304a83612832565b925082820261305881612832565b9150828204841483151761306f5761306e612e87565b5b5092915050565b600061308182612832565b915061308c83612832565b92508282019050808211156130a4576130a3612e87565b5b92915050565b7f4275726e20636f6f6c646f776e20616374697665000000000000000000000000600082015250565b60006130e0601483612719565b91506130eb826130aa565b602082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b6000815190506131258161283c565b92915050565b600060208284031215613141576131406127ca565b5b600061314f84828501613116565b91505092915050565b7f546f6f2068696768206665650000000000000000000000000000000000000000600082015250565b600061318e600c83612719565b915061319982613158565b602082019050919050565b600060208201905081810360008301526131bd81613181565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f546f6f206c6f77206d6178000000000000000000000000000000000000000000600082015250565b6000613229600b83612719565b9150613234826131f3565b602082019050919050565b600060208201905081810360008301526132588161321c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132bb602383612719565b91506132c68261325f565b604082019050919050565b600060208201905081810360008301526132ea816132ae565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061334d602683612719565b9150613358826132f1565b604082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133df602483612719565b91506133ea82613383565b604082019050919050565b6000602082019050818103600083015261340e816133d2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613471602283612719565b915061347c82613415565b604082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134dd602083612719565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613549601d83612719565b915061355482613513565b602082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135db602583612719565b91506135e68261357f565b604082019050919050565b6000602082019050818103600083015261360a816135ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061366d602983612719565b915061367882613611565b604082019050919050565b6000602082019050818103600083015261369c81613660565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b60006136d9601383612719565b91506136e4826136a3565b602082019050919050565b60006020820190508181036000830152613708816136cc565b9050919050565b7f666565206578636565647320616d6f756e740000000000000000000000000000600082015250565b6000613745601283612719565b91506137508261370f565b602082019050919050565b6000602082019050818103600083015261377481613738565b9050919050565b7f4d61782054582072656163686564000000000000000000000000000000000000600082015250565b60006137b1600e83612719565b91506137bc8261377b565b602082019050919050565b600060208201905081810360008301526137e0816137a4565b9050919050565b7f4d61782077616c6c657420726561636865640000000000000000000000000000600082015250565b600061381d601283612719565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061388d82612832565b915061389883612832565b9250826138a8576138a7613853565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061390f602683612719565b915061391a826138b3565b604082019050919050565b6000602082019050818103600083015261393e81613902565b9050919050565b600061395082612832565b915061395b83612832565b925082820390508181111561397357613972612e87565b5b92915050565b600061398482612a45565b915061398f83612a45565b9250828203905063ffffffff8111156139ab576139aa612e87565b5b92915050565b6000815190506139c081612806565b92915050565b6000602082840312156139dc576139db6127ca565b5b60006139ea848285016139b1565b91505092915050565b6000819050919050565b6000819050919050565b6000613a22613a1d613a18846139f3565b6139fd565b612832565b9050919050565b613a3281613a07565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a6d816127f4565b82525050565b6000613a7f8383613a64565b60208301905092915050565b6000602082019050919050565b6000613aa382613a38565b613aad8185613a43565b9350613ab883613a54565b8060005b83811015613ae9578151613ad08882613a73565b9750613adb83613a8b565b925050600181019050613abc565b5085935050505092915050565b600060a082019050613b0b6000830188612937565b613b186020830187613a29565b8181036040830152613b2a8186613a98565b9050613b396060830185612c8f565b613b466080830184612937565b9695505050505050565b600081519050919050565b600081905092915050565b6000613b7182613b50565b613b7b8185613b5b565b9350613b8b81856020860161272a565b80840191505092915050565b6000613ba38284613b66565b915081905092915050565b7f5472616e736665724661696c0000000000000000000000000000000000000000600082015250565b6000613be4600c83612719565b9150613bef82613bae565b602082019050919050565b60006020820190508181036000830152613c1381613bd7565b9050919050565b600060c082019050613c2f6000830189612c8f565b613c3c6020830188612937565b613c496040830187613a29565b613c566060830186613a29565b613c636080830185612c8f565b613c7060a0830184612937565b979650505050505050565b600080600060608486031215613c9457613c936127ca565b5b6000613ca286828701613116565b9350506020613cb386828701613116565b9250506040613cc486828701613116565b915050925092509256fea264697066735822122054fcba8589ea4d3957f2326964eea7fc27f8005f9aceb26c48adcb29d6c5511264736f6c6343000811003300000000000000000000000070f9f825f822a1fd7550b241b6a2fdbb869e72870000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000043b05f49ca82aa1f108c54b5fabe4ba6b9dcb77b000000000000000000000000526a48df8de02ac4bbd1c87333cd59582cfbc0e800000000000000000000000058679fd2a88b23727eaa57327d71495c11de5d87000000000000000000000000162941e44cb799a9fb96ffe80edd9328f343b74c000000000000000000000000eb3c3c28e48888abb1720922f0121fb4fcd1ceb700000000000000000000000015fba21136d096a486ac9bd1b85047c5e09696c0000000000000000000000000ee2cfae068c69b937d8f2745cd381cdab9bef7d90000000000000000000000003d6c4e4ffc28c35399fae41aaba3dd6010ebf278000000000000000000000000a2a085641e02db7c397bd23b05202374b551c75d000000000000000000000000ac88741d78b9a1c1cb7bcb475bccd92544df6ef10000000000000000000000005621701cffdbc43ad6f32234615c7eed068fd164

Deployed Bytecode

0x6080604052600436106102555760003560e01c80638bf67ad011610139578063ac935834116100b6578063c9d9159d1161007a578063c9d9159d14610876578063d11fcb85146108a1578063dd62ed3e146108de578063e717fc301461091b578063f2fde38b14610946578063f5a27e861461096f5761025c565b8063ac935834146107a3578063ba414b10146107ce578063bd186c4c146107f7578063bd4f1dc614610820578063c6b9ff6e1461084b5761025c565b806396418d4d116100fd57806396418d4d146106d25780639bfe8df7146106fb578063a1780c1814610724578063a20adf861461073b578063a9059cbb146107665761025c565b80638bf67ad0146105fd5780638da5cb5b1461062657806391d88b951461065157806391f18b7c1461067c57806395d89b41146106a75761025c565b8063581d30f8116101d25780636ea79583116101965780636ea79583146104fd57806370a082311461052857806370fbc71214610565578063715018a6146105905780637971fca7146105a75780637aab5d9b146105d25761025c565b8063581d30f81461042a5780635bc05f3c146104535780636264300e1461047e57806363126e17146104a9578063685e838e146104d25761025c565b806323b872dd1161021957806323b872dd14610345578063249715a614610382578063313ce567146103ad5780633d21e5a2146103d857806349dc859c146104015761025c565b806306fdde031461025e578063095ea7b3146102895780630e72916a146102c657806312fbbbe4146102ef57806318160ddd1461031a5761025c565b3661025c57005b005b34801561026a57600080fd5b5061027361099a565b604051610280919061279e565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab9190612868565b6109d7565b6040516102bd91906128c3565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e8919061290a565b6109fa565b005b3480156102fb57600080fd5b50610304610a33565b6040516103119190612946565b60405180910390f35b34801561032657600080fd5b5061032f610a39565b60405161033c9190612946565b60405180910390f35b34801561035157600080fd5b5061036c60048036038101906103679190612961565b610a5d565b60405161037991906128c3565b60405180910390f35b34801561038e57600080fd5b50610397610a8c565b6040516103a491906128c3565b60405180910390f35b3480156103b957600080fd5b506103c2610a9f565b6040516103cf91906129d0565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa91906129eb565b610aa8565b005b34801561040d57600080fd5b5061042860048036038101906104239190612a18565b610af4565b005b34801561043657600080fd5b50610451600480360381019061044c9190612a81565b610cdc565b005b34801561045f57600080fd5b50610468610d74565b60405161047591906128c3565b60405180910390f35b34801561048a57600080fd5b50610493610d87565b6040516104a09190612ad0565b60405180910390f35b3480156104b557600080fd5b506104d060048036038101906104cb9190612c33565b610d9d565b005b3480156104de57600080fd5b506104e7610e34565b6040516104f49190612946565b60405180910390f35b34801561050957600080fd5b50610512610e3a565b60405161051f9190612c9e565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906129eb565b610e60565b60405161055c9190612946565b60405180910390f35b34801561057157600080fd5b5061057a610ea9565b6040516105879190612946565b60405180910390f35b34801561059c57600080fd5b506105a5610eaf565b005b3480156105b357600080fd5b506105bc610ec3565b6040516105c99190612ad0565b60405180910390f35b3480156105de57600080fd5b506105e7610ed9565b6040516105f491906128c3565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612cb9565b610eec565b005b34801561063257600080fd5b5061063b610f3b565b6040516106489190612c9e565b60405180910390f35b34801561065d57600080fd5b50610666610f64565b6040516106739190612946565b60405180910390f35b34801561068857600080fd5b50610691610f6a565b60405161069e9190612c9e565b60405180910390f35b3480156106b357600080fd5b506106bc610f90565b6040516106c9919061279e565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190612d0c565b610fcd565b005b34801561070757600080fd5b50610722600480360381019061071d9190612d4c565b611086565b005b34801561073057600080fd5b50610739611147565b005b34801561074757600080fd5b50610750611159565b60405161075d91906128c3565b60405180910390f35b34801561077257600080fd5b5061078d60048036038101906107889190612868565b61116c565b60405161079a91906128c3565b60405180910390f35b3480156107af57600080fd5b506107b861118f565b6040516107c591906128c3565b60405180910390f35b3480156107da57600080fd5b506107f560048036038101906107f09190612de7565b6111a2565b005b34801561080357600080fd5b5061081e6004803603810190610819919061290a565b61127f565b005b34801561082c57600080fd5b506108356112a4565b6040516108429190612ad0565b60405180910390f35b34801561085757600080fd5b506108606112ba565b60405161086d9190612c9e565b60405180910390f35b34801561088257600080fd5b5061088b6112e0565b6040516108989190612ad0565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c391906129eb565b6112f6565b6040516108d591906128c3565b60405180910390f35b3480156108ea57600080fd5b5061090560048036038101906109009190612e47565b611316565b6040516109129190612946565b60405180910390f35b34801561092757600080fd5b5061093061139d565b60405161093d9190612946565b60405180910390f35b34801561095257600080fd5b5061096d600480360381019061096891906129eb565b6113a3565b005b34801561097b57600080fd5b50610984611426565b6040516109919190612946565b60405180910390f35b60606040518060400160405280600a81526020017f426c61636b2057616c6c00000000000000000000000000000000000000000000815250905090565b6000806109e261142c565b90506109ef818585611434565b600191505092915050565b610a026115fd565b80600060146101000a81548160ff0219169083151502179055506001151581151503610a3057426004819055505b50565b60045481565b60006012600a610a499190612fe9565b633b9aca00610a589190613034565b905090565b600080610a6861142c565b9050610a7585828561167b565b610a80858585611707565b60019150509392505050565b600360049054906101000a900460ff1681565b60006012905090565b610ab06115fd565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610afc6115fd565b600654600754610b0c9190613076565b4211610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b44906130f6565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166370a08231600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610baa9190612c9e565b602060405180830381865afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb919061312b565b90506000610c01826103e863ffffffff16611c76565b905080831115610c0f578092505b426007819055506000831115610c4f57610c4e600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead85611c9f565b5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b5050505050505050565b610ce46115fd565b610fa063ffffffff168163ffffffff161115610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c906131a4565b60405180910390fd5b81600060166101000a81548160ff021916908315150217905550806002601c6101000a81548163ffffffff021916908363ffffffff1602179055505050565b600060169054906101000a900460ff1681565b600260189054906101000a900463ffffffff1681565b610da56115fd565b60005b8251811015610e2f578160056000858481518110610dc957610dc86131c4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610da8565b505050565b600a5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b610eb76115fd565b610ec16000611e24565b565b600260149054906101000a900463ffffffff1681565b600060149054906101000a900460ff1681565b610ef46115fd565b82600a8190555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600e60146101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f4257414c4c000000000000000000000000000000000000000000000000000000815250905090565b610fd56115fd565b610fa063ffffffff168263ffffffff16111580156110015750610fa063ffffffff168163ffffffff1611155b611040576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611037906131a4565b60405180910390fd5b81600260146101000a81548163ffffffff021916908363ffffffff16021790555080600260186101000a81548163ffffffff021916908363ffffffff1602179055505050565b61108e6115fd565b603263ffffffff1682101580156110ac5750603263ffffffff168110155b6110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e29061323f565b60405180910390fd5b6111116012600a6110fc9190612fe9565b633b9aca0061110b9190613034565b83611c76565b60088190555061113d6012600a6111289190612fe9565b633b9aca006111379190613034565b82611c76565b6009819055505050565b61114f6115fd565b611157611ee8565b565b600060159054906101000a900460ff1681565b60008061117761142c565b9050611184818585611707565b600191505092915050565b600e60149054906101000a900460ff1681565b6111aa6115fd565b60006111b4610f3b565b905060005b848490508110156112785760008585838181106111d9576111d86131c4565b5b90506020020160208101906111ee91906129eb565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611256906132d1565b60405180910390fd5b61126a838286611c9f565b5080806001019150506111b9565b5050505050565b6112876115fd565b80600060156101000a81548160ff02191690831515021790555050565b6002601c9054906101000a900463ffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900463ffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60095481565b6113ab6115fd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190613363565b60405180910390fd5b61142381611e24565b50565b60075481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149a906133f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990613487565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115f09190612946565b60405180910390a3505050565b61160561142c565b73ffffffffffffffffffffffffffffffffffffffff16611623610f3b565b73ffffffffffffffffffffffffffffffffffffffff1614611679576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611670906134f3565b60405180910390fd5b565b60006116878484611316565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461170157818110156116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061355f565b60405180910390fd5b6117008484848403611434565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d906135f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc906132d1565b60405180910390fd5b60008111611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f90613683565b60405180910390fd5b611830610f3b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061189b575061186c610f3b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118d157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156118e6576118e1838383611c9f565b611c71565b600060149054906101000a900460ff16611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c906136ef565b60405180910390fd5b61193d611f5f565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050806119a1576119a0611ee8565b5b8015611a2257600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a1d57611a1a83600260149054906101000a900463ffffffff1663ffffffff16611c76565b91505b611ac6565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ac557611ac283600060169054906101000a900460ff16611aa357600260189054906101000a900463ffffffff16611ab7565b6002601c9054906101000a900463ffffffff165b63ffffffff16611c76565b91505b5b81831015611b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b009061375b565b60405180910390fd5b8183039250600060159054906101000a900460ff1615611c4e57600854831115611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f906137c7565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611c4d5760095483600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c0b9190613076565b1115611c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4390613833565b60405180910390fd5b5b5b6000821115611c6357611c62853084611c9f565b5b611c6e858585611c9f565b50505b505050565b600061271063ffffffff168284611c8d9190613034565b611c979190613882565b905092915050565b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611d26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1d90613925565b60405180910390fd5b818103600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e169190612946565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611ef330610e60565b90506000600a548210159050808015611f195750600e60159054906101000a900460ff16155b8015611f315750600e60149054906101000a900460ff165b15611f5b57611f41600a546121ed565b60004790506000811115611f5957611f58476124ed565b5b505b5050565b600360049054906101000a900460ff168015611f8a5750610e10600454611f869190613076565b4211155b156121eb57600060045442611f9f9190613945565b90506102588110158015611fcc5750610fa0600260149054906101000a900463ffffffff1663ffffffff16115b8015611ff15750610fa0600260189054906101000a900463ffffffff1663ffffffff16115b1561204857610fa0600260146101000a81548163ffffffff021916908363ffffffff160217905550610fa0600260186101000a81548163ffffffff021916908363ffffffff160217905550426004819055506121b7565b61025881106121b6576103e8600260149054906101000a900463ffffffff1663ffffffff1614801561209357506103e8600260189054906101000a900463ffffffff1663ffffffff16145b156120e3576101f4600260146101000a81548163ffffffff021916908363ffffffff1602179055506101f4600260186101000a81548163ffffffff021916908363ffffffff1602179055506121ae565b6101f4600260149054906101000a900463ffffffff1663ffffffff1611801561212557506101f4600260189054906101000a900463ffffffff1663ffffffff16115b156121ad576103e8600260148282829054906101000a900463ffffffff1661214d9190613979565b92506101000a81548163ffffffff021916908363ffffffff1602179055506103e8600260188282829054906101000a900463ffffffff1661218e9190613979565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b5b426004819055505b5b610e106004546121c79190613076565b42106121e9576000600360046101000a81548160ff0219169083151502179055505b505b565b6001600e60156101000a81548160ff021916908315150217905550600061223982600360009054906101000a900463ffffffff1661271061222e9190613979565b63ffffffff16611c76565b9050600081836122499190613945565b905060004790506000600267ffffffffffffffff81111561226d5761226c612af0565b5b60405190808252806020026020018201604052801561229b5781602001602082028036833780820191505090505b50905030816000815181106122b3576122b26131c4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237e91906139c6565b81600181518110612392576123916131c4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123f930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687611434565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b815260040161245d959493929190613af6565b600060405180830381600087803b15801561247757600080fd5b505af115801561248b573d6000803e3d6000fd5b505050506000824761249d9190613945565b90506124ca846124c583600360009054906101000a900463ffffffff1663ffffffff16611c76565b61260e565b50505050506000600e60156101000a81548160ff02191690831515021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff81111561254457612543612af0565b5b6040519080825280601f01601f1916602001820160405280156125765781602001600182028036833780820191505090505b506040516125849190613b97565b60006040518083038185875af1925050503d80600081146125c1576040519150601f19603f3d011682016040523d82523d6000602084013e6125c6565b606091505b505090508061260a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260190613bfa565b60405180910390fd5b5050565b61263b30600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611434565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016126c496959493929190613c1a565b60606040518083038185885af11580156126e2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127079190613c7b565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561274857808201518184015260208101905061272d565b60008484015250505050565b6000601f19601f8301169050919050565b60006127708261270e565b61277a8185612719565b935061278a81856020860161272a565b61279381612754565b840191505092915050565b600060208201905081810360008301526127b88184612765565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127ff826127d4565b9050919050565b61280f816127f4565b811461281a57600080fd5b50565b60008135905061282c81612806565b92915050565b6000819050919050565b61284581612832565b811461285057600080fd5b50565b6000813590506128628161283c565b92915050565b6000806040838503121561287f5761287e6127ca565b5b600061288d8582860161281d565b925050602061289e85828601612853565b9150509250929050565b60008115159050919050565b6128bd816128a8565b82525050565b60006020820190506128d860008301846128b4565b92915050565b6128e7816128a8565b81146128f257600080fd5b50565b600081359050612904816128de565b92915050565b6000602082840312156129205761291f6127ca565b5b600061292e848285016128f5565b91505092915050565b61294081612832565b82525050565b600060208201905061295b6000830184612937565b92915050565b60008060006060848603121561297a576129796127ca565b5b60006129888682870161281d565b93505060206129998682870161281d565b92505060406129aa86828701612853565b9150509250925092565b600060ff82169050919050565b6129ca816129b4565b82525050565b60006020820190506129e560008301846129c1565b92915050565b600060208284031215612a0157612a006127ca565b5b6000612a0f8482850161281d565b91505092915050565b600060208284031215612a2e57612a2d6127ca565b5b6000612a3c84828501612853565b91505092915050565b600063ffffffff82169050919050565b612a5e81612a45565b8114612a6957600080fd5b50565b600081359050612a7b81612a55565b92915050565b60008060408385031215612a9857612a976127ca565b5b6000612aa6858286016128f5565b9250506020612ab785828601612a6c565b9150509250929050565b612aca81612a45565b82525050565b6000602082019050612ae56000830184612ac1565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b2882612754565b810181811067ffffffffffffffff82111715612b4757612b46612af0565b5b80604052505050565b6000612b5a6127c0565b9050612b668282612b1f565b919050565b600067ffffffffffffffff821115612b8657612b85612af0565b5b602082029050602081019050919050565b600080fd5b6000612baf612baa84612b6b565b612b50565b90508083825260208201905060208402830185811115612bd257612bd1612b97565b5b835b81811015612bfb5780612be7888261281d565b845260208401935050602081019050612bd4565b5050509392505050565b600082601f830112612c1a57612c19612aeb565b5b8135612c2a848260208601612b9c565b91505092915050565b60008060408385031215612c4a57612c496127ca565b5b600083013567ffffffffffffffff811115612c6857612c676127cf565b5b612c7485828601612c05565b9250506020612c85858286016128f5565b9150509250929050565b612c98816127f4565b82525050565b6000602082019050612cb36000830184612c8f565b92915050565b600080600060608486031215612cd257612cd16127ca565b5b6000612ce086828701612853565b9350506020612cf186828701612a6c565b9250506040612d02868287016128f5565b9150509250925092565b60008060408385031215612d2357612d226127ca565b5b6000612d3185828601612a6c565b9250506020612d4285828601612a6c565b9150509250929050565b60008060408385031215612d6357612d626127ca565b5b6000612d7185828601612853565b9250506020612d8285828601612853565b9150509250929050565b600080fd5b60008083601f840112612da757612da6612aeb565b5b8235905067ffffffffffffffff811115612dc457612dc3612d8c565b5b602083019150836020820283011115612de057612ddf612b97565b5b9250929050565b600080600060408486031215612e0057612dff6127ca565b5b600084013567ffffffffffffffff811115612e1e57612e1d6127cf565b5b612e2a86828701612d91565b93509350506020612e3d86828701612853565b9150509250925092565b60008060408385031215612e5e57612e5d6127ca565b5b6000612e6c8582860161281d565b9250506020612e7d8582860161281d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612f0d57808604811115612ee957612ee8612e87565b5b6001851615612ef85780820291505b8081029050612f0685612eb6565b9450612ecd565b94509492505050565b600082612f265760019050612fe2565b81612f345760009050612fe2565b8160018114612f4a5760028114612f5457612f83565b6001915050612fe2565b60ff841115612f6657612f65612e87565b5b8360020a915084821115612f7d57612f7c612e87565b5b50612fe2565b5060208310610133831016604e8410600b8410161715612fb85782820a905083811115612fb357612fb2612e87565b5b612fe2565b612fc58484846001612ec3565b92509050818404811115612fdc57612fdb612e87565b5b81810290505b9392505050565b6000612ff482612832565b9150612fff836129b4565b925061302c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612f16565b905092915050565b600061303f82612832565b915061304a83612832565b925082820261305881612832565b9150828204841483151761306f5761306e612e87565b5b5092915050565b600061308182612832565b915061308c83612832565b92508282019050808211156130a4576130a3612e87565b5b92915050565b7f4275726e20636f6f6c646f776e20616374697665000000000000000000000000600082015250565b60006130e0601483612719565b91506130eb826130aa565b602082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b6000815190506131258161283c565b92915050565b600060208284031215613141576131406127ca565b5b600061314f84828501613116565b91505092915050565b7f546f6f2068696768206665650000000000000000000000000000000000000000600082015250565b600061318e600c83612719565b915061319982613158565b602082019050919050565b600060208201905081810360008301526131bd81613181565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f546f6f206c6f77206d6178000000000000000000000000000000000000000000600082015250565b6000613229600b83612719565b9150613234826131f3565b602082019050919050565b600060208201905081810360008301526132588161321c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132bb602383612719565b91506132c68261325f565b604082019050919050565b600060208201905081810360008301526132ea816132ae565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061334d602683612719565b9150613358826132f1565b604082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133df602483612719565b91506133ea82613383565b604082019050919050565b6000602082019050818103600083015261340e816133d2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613471602283612719565b915061347c82613415565b604082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134dd602083612719565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613549601d83612719565b915061355482613513565b602082019050919050565b600060208201905081810360008301526135788161353c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135db602583612719565b91506135e68261357f565b604082019050919050565b6000602082019050818103600083015261360a816135ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061366d602983612719565b915061367882613611565b604082019050919050565b6000602082019050818103600083015261369c81613660565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b60006136d9601383612719565b91506136e4826136a3565b602082019050919050565b60006020820190508181036000830152613708816136cc565b9050919050565b7f666565206578636565647320616d6f756e740000000000000000000000000000600082015250565b6000613745601283612719565b91506137508261370f565b602082019050919050565b6000602082019050818103600083015261377481613738565b9050919050565b7f4d61782054582072656163686564000000000000000000000000000000000000600082015250565b60006137b1600e83612719565b91506137bc8261377b565b602082019050919050565b600060208201905081810360008301526137e0816137a4565b9050919050565b7f4d61782077616c6c657420726561636865640000000000000000000000000000600082015250565b600061381d601283612719565b9150613828826137e7565b602082019050919050565b6000602082019050818103600083015261384c81613810565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061388d82612832565b915061389883612832565b9250826138a8576138a7613853565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061390f602683612719565b915061391a826138b3565b604082019050919050565b6000602082019050818103600083015261393e81613902565b9050919050565b600061395082612832565b915061395b83612832565b925082820390508181111561397357613972612e87565b5b92915050565b600061398482612a45565b915061398f83612a45565b9250828203905063ffffffff8111156139ab576139aa612e87565b5b92915050565b6000815190506139c081612806565b92915050565b6000602082840312156139dc576139db6127ca565b5b60006139ea848285016139b1565b91505092915050565b6000819050919050565b6000819050919050565b6000613a22613a1d613a18846139f3565b6139fd565b612832565b9050919050565b613a3281613a07565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a6d816127f4565b82525050565b6000613a7f8383613a64565b60208301905092915050565b6000602082019050919050565b6000613aa382613a38565b613aad8185613a43565b9350613ab883613a54565b8060005b83811015613ae9578151613ad08882613a73565b9750613adb83613a8b565b925050600181019050613abc565b5085935050505092915050565b600060a082019050613b0b6000830188612937565b613b186020830187613a29565b8181036040830152613b2a8186613a98565b9050613b396060830185612c8f565b613b466080830184612937565b9695505050505050565b600081519050919050565b600081905092915050565b6000613b7182613b50565b613b7b8185613b5b565b9350613b8b81856020860161272a565b80840191505092915050565b6000613ba38284613b66565b915081905092915050565b7f5472616e736665724661696c0000000000000000000000000000000000000000600082015250565b6000613be4600c83612719565b9150613bef82613bae565b602082019050919050565b60006020820190508181036000830152613c1381613bd7565b9050919050565b600060c082019050613c2f6000830189612c8f565b613c3c6020830188612937565b613c496040830187613a29565b613c566060830186613a29565b613c636080830185612c8f565b613c7060a0830184612937565b979650505050505050565b600080600060608486031215613c9457613c936127ca565b5b6000613ca286828701613116565b9350506020613cb386828701613116565b9250506040613cc486828701613116565b915050925092509256fea264697066735822122054fcba8589ea4d3957f2326964eea7fc27f8005f9aceb26c48adcb29d6c5511264736f6c63430008110033

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

00000000000000000000000070f9f825f822a1fd7550b241b6a2fdbb869e72870000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000043b05f49ca82aa1f108c54b5fabe4ba6b9dcb77b000000000000000000000000526a48df8de02ac4bbd1c87333cd59582cfbc0e800000000000000000000000058679fd2a88b23727eaa57327d71495c11de5d87000000000000000000000000162941e44cb799a9fb96ffe80edd9328f343b74c000000000000000000000000eb3c3c28e48888abb1720922f0121fb4fcd1ceb700000000000000000000000015fba21136d096a486ac9bd1b85047c5e09696c0000000000000000000000000ee2cfae068c69b937d8f2745cd381cdab9bef7d90000000000000000000000003d6c4e4ffc28c35399fae41aaba3dd6010ebf278000000000000000000000000a2a085641e02db7c397bd23b05202374b551c75d000000000000000000000000ac88741d78b9a1c1cb7bcb475bccd92544df6ef10000000000000000000000005621701cffdbc43ad6f32234615c7eed068fd164

-----Decoded View---------------
Arg [0] : _team_wallet (address): 0x70f9f825F822A1FD7550B241B6a2fDBb869e7287
Arg [1] : _input (address[]): 0x43b05F49cA82Aa1F108C54b5FaBE4BA6b9DCb77B,0x526a48dF8DE02AC4BbD1c87333Cd59582cFbc0E8,0x58679fD2a88b23727eAa57327d71495c11De5D87,0x162941E44Cb799A9Fb96FFe80EDd9328f343b74C,0xEB3c3C28e48888AbB1720922F0121fb4Fcd1CEB7,0x15FbA21136D096A486aC9BD1B85047c5E09696C0,0xee2Cfae068C69b937d8F2745cD381cDaB9BeF7D9,0x3D6c4E4FfC28C35399FAE41aaBA3Dd6010ebF278,0xA2A085641E02dB7C397bd23B05202374b551c75d,0xac88741D78B9A1c1CB7bCb475Bccd92544Df6EF1,0x5621701CfFDbc43aD6f32234615C7eed068FD164

-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 00000000000000000000000070f9f825f822a1fd7550b241b6a2fdbb869e7287
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [3] : 00000000000000000000000043b05f49ca82aa1f108c54b5fabe4ba6b9dcb77b
Arg [4] : 000000000000000000000000526a48df8de02ac4bbd1c87333cd59582cfbc0e8
Arg [5] : 00000000000000000000000058679fd2a88b23727eaa57327d71495c11de5d87
Arg [6] : 000000000000000000000000162941e44cb799a9fb96ffe80edd9328f343b74c
Arg [7] : 000000000000000000000000eb3c3c28e48888abb1720922f0121fb4fcd1ceb7
Arg [8] : 00000000000000000000000015fba21136d096a486ac9bd1b85047c5e09696c0
Arg [9] : 000000000000000000000000ee2cfae068c69b937d8f2745cd381cdab9bef7d9
Arg [10] : 0000000000000000000000003d6c4e4ffc28c35399fae41aaba3dd6010ebf278
Arg [11] : 000000000000000000000000a2a085641e02db7c397bd23b05202374b551c75d
Arg [12] : 000000000000000000000000ac88741d78b9a1c1cb7bcb475bccd92544df6ef1
Arg [13] : 0000000000000000000000005621701cffdbc43ad6f32234615c7eed068fd164


Deployed Bytecode Sourcemap

7957:14348:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19040:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20348:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13628:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8949:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19368:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19861:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8907:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19260:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11641:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12572:656;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13414:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8605:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8758:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11788:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9291:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8641:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19484:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9159:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2869:103;;;;;;;;;;;;;:::i;:::-;;8711:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8524:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11374:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2221:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9065:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9571:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19148:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10800:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11049:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13236:70;;;;;;;;;;;;;:::i;:::-;;8553:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19635:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12065:499;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13314:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8806:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8674:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8858:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9002;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20164:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9223:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3127:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9113:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19040:100;19094:13;19127:5;;;;;;;;;;;;;;;;;19120:12;;19040:100;:::o;20348:226::-;20456:4;20473:13;20489:12;:10;:12::i;:::-;20473:28;;20512:32;20521:5;20528:7;20537:6;20512:8;:32::i;:::-;20562:4;20555:11;;;20348:226;;;;:::o;13628:179::-;2107:13;:11;:13::i;:::-;13703:7:::1;13690:10;;:20;;;;;;;;;;;;;;;;;;13736:4;13725:15;;:7;:15;;::::0;13721:79:::1;;13773:15;13757:13;:31;;;;13721:79;13628:179:::0;:::o;8949:28::-;;;;:::o;19368:108::-;19429:7;8161:2;8227;:15;;;;:::i;:::-;8211:13;:31;;;;:::i;:::-;19449:19;;19368:108;:::o;19861:295::-;19992:4;20009:15;20027:12;:10;:12::i;:::-;20009:30;;20050:38;20066:4;20072:7;20081:6;20050:15;:38::i;:::-;20099:27;20109:4;20115:2;20119:6;20099:9;:27::i;:::-;20144:4;20137:11;;;19861:295;;;;;:::o;8907:35::-;;;;;;;;;;;;;:::o;19260:100::-;19318:5;8161:2;19336:16;;19260:100;:::o;11641:106::-;2107:13;:11;:13::i;:::-;11727:12:::1;11713:11;;:26;;;;;;;;;;;;;;;;;;11641:106:::0;:::o;12572:656::-;2107:13;:11;:13::i;:::-;12700::::1;;12688:9;;:25;;;;:::i;:::-;12670:15;:43;12648:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;12772:28;12803:4;:14;;;12818:9;;;;;;;;;;;12803:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12772:56;;12839:20;12862:45;12874:20;8483:15;12862:45;;:11;:45::i;:::-;12839:68;;12932:12;12922:7;:22;12918:77;;;12971:12;12961:22;;12918:77;13017:15;13005:9;:27;;;;13059:1;13049:7;:11;13045:96;;;13077:52;13093:9;;;;;;;;;;;13112:6;13121:7;13077:15;:52::i;:::-;13045:96;13151:19;13188:9;;;;;;;;;;;13151:47;;13209:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12637:591;;;12572:656:::0;:::o;13414:206::-;2107:13;:11;:13::i;:::-;8367:15:::1;13507:20;;:9;:20;;;;13499:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;13568:7;13555:10;;:20;;;;;;;;;;;;;;;;;;13603:9;13586:14;;:26;;;;;;;;;;;;;;;;;;13414:206:::0;;:::o;8605:29::-;;;;;;;;;;;;;:::o;8758:41::-;;;;;;;;;;;;;:::o;11788:269::-;2107:13;:11;:13::i;:::-;11933:9:::1;11928:111;11952:6;:13;11948:1;:17;11928:111;;;12015:8;11991:10;:21;12002:6;12009:1;12002:9;;;;;;;;:::i;:::-;;;;;;;;11991:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11967:3;;;;;;;11928:111;;;;11788:269:::0;;:::o;9291:59::-;;;;:::o;8641:26::-;;;;;;;;;;;;;:::o;19484:143::-;19574:7;19601:9;:18;19611:7;19601:18;;;;;;;;;;;;;;;;19594:25;;19484:143;;;:::o;9159:52::-;;;;:::o;2869:103::-;2107:13;:11;:13::i;:::-;2934:30:::1;2961:1;2934:18;:30::i;:::-;2869:103::o:0;8711:40::-;;;;;;;;;;;;;:::o;8524:22::-;;;;;;;;;;;;;:::o;11374:237::-;2107:13;:11;:13::i;:::-;11527:7:::1;11510:14;:24;;;;11558:11;11545:10;;:24;;;;;;;;;;;;;;;;;;11595:8;11580:12;;:23;;;;;;;;;;;;;;;;;;11374:237:::0;;;:::o;2221:87::-;2267:7;2294:6;;;;;;;;;;;2287:13;;2221:87;:::o;9065:41::-;;;;:::o;9571:24::-;;;;;;;;;;;;;:::o;19148:104::-;19204:13;19237:7;;;;;;;;;;;;;;;;;19230:14;;19148:104;:::o;10800:215::-;2107:13;:11;:13::i;:::-;8367:15:::1;10887:19;;:8;:19;;;;:43;;;;;8367:15;10910:20;;:9;:20;;;;10887:43;10879:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10968:8;10958:7;;:18;;;;;;;;;;;;;;;;;;10998:9;10987:8;;:20;;;;;;;;;;;;;;;;;;10800:215:::0;;:::o;11049:317::-;2107:13;:11;:13::i;:::-;8425:14:::1;11155:20;;:7;:20;;:48;;;;;8425:14;11179:24;;:11;:24;;11155:48;11133:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;11262:34;8161:2;8227;:15;;;;:::i;:::-;8211:13;:31;;;;:::i;:::-;11288:7;11262:11;:34::i;:::-;11253:6;:43;;;;11320:38;8161:2;8227;:15;;;;:::i;:::-;8211:13;:31;;;;:::i;:::-;11346:11;11320;:38::i;:::-;11307:10;:51;;;;11049:317:::0;;:::o;13236:70::-;2107:13;:11;:13::i;:::-;13286:12:::1;:10;:12::i;:::-;13236:70::o:0;8553:32::-;;;;;;;;;;;;;:::o;19635:218::-;19739:4;19756:13;19772:12;:10;:12::i;:::-;19756:28;;19795;19805:5;19812:2;19816:6;19795:9;:28::i;:::-;19841:4;19834:11;;;19635:218;;;;:::o;9602:31::-;;;;;;;;;;;;;:::o;12065:499::-;2107:13;:11;:13::i;:::-;12182::::1;12198:7;:5;:7::i;:::-;12182:23;;12246:9;12241:305;12265:6;;:13;;12261:1;:17;12241:305;;;12304:12;12319:6;;12326:1;12319:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12304:24;;12393:1;12377:18;;:4;:18;;::::0;12347:127:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12493:37;12509:5;12516:4;12522:7;12493:15;:37::i;:::-;12285:261;12280:3;;;;;;;12241:305;;;;12171:393;12065:499:::0;;;:::o;13314:92::-;2107:13;:11;:13::i;:::-;13391:7:::1;13375:13;;:23;;;;;;;;;;;;;;;;;;13314:92:::0;:::o;8806:45::-;;;;;;;;;;;;;:::o;8674:30::-;;;;;;;;;;;;;:::o;8858:42::-;;;;;;;;;;;;;:::o;9002:::-;;;;;;;;;;;;;;;;;;;;;;:::o;20164:176::-;20278:7;20305:11;:18;20317:5;20305:18;;;;;;;;;;;;;;;:27;20324:7;20305:27;;;;;;;;;;;;;;;;20298:34;;20164:176;;;;:::o;9223:56::-;;;;:::o;3127:238::-;2107:13;:11;:13::i;:::-;3250:1:::1;3230:22;;:8;:22;;::::0;3208:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3329:28;3348:8;3329:18;:28::i;:::-;3127:238:::0;:::o;9113:24::-;;;;:::o;905:98::-;958:7;985:10;978:17;;905:98;:::o;20582:380::-;20735:1;20718:19;;:5;:19;;;20710:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20816:1;20797:21;;:7;:21;;;20789:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20900:6;20870:11;:18;20882:5;20870:18;;;;;;;;;;;;;;;:27;20889:7;20870:27;;;;;;;;;;;;;;;:36;;;;20938:7;20922:32;;20931:5;20922:32;;;20947:6;20922:32;;;;;;:::i;:::-;;;;;;;;20582:380;;;:::o;2386:132::-;2461:12;:10;:12::i;:::-;2450:23;;:7;:5;:7::i;:::-;:23;;;2442:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2386:132::o;20970:502::-;21105:24;21132:25;21142:5;21149:7;21132:9;:25::i;:::-;21105:52;;21192:17;21172:16;:37;21168:297;;21272:6;21252:16;:26;;21226:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;21387:51;21396:5;21403:7;21431:6;21412:16;:25;21387:8;:51::i;:::-;21168:297;21094:378;20970:502;;;:::o;15063:2021::-;15168:1;15152:18;;:4;:18;;;15144:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15245:1;15231:16;;:2;:16;;;15223:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15315:1;15306:6;:10;15298:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15436:7;:5;:7::i;:::-;15428:15;;:4;:15;;;:32;;;;15453:7;:5;:7::i;:::-;15447:13;;:2;:13;;;15428:32;:57;;;;15480:4;15464:21;;:4;:21;;;15428:57;15424:144;;;15502:33;15518:4;15524:2;15528:6;15502:15;:33::i;:::-;15550:7;;15424:144;15625:10;;;;;;;;;;;15617:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15695:11;:9;:11::i;:::-;15719:18;15752:10;15773:9;;;;;;;;;;;15765:17;;:4;:17;;;15752:30;;15800:5;15795:78;;15849:12;:10;:12::i;:::-;15795:78;15945:5;15941:382;;;15972:10;:14;15983:2;15972:14;;;;;;;;;;;;;;;;;;;;;;;;;15967:97;;16020:28;16032:6;16040:7;;;;;;;;;;;16020:28;;:11;:28::i;:::-;16007:41;;15967:97;15941:382;;;16126:10;:16;16137:4;16126:16;;;;;;;;;;;;;;;;;;;;;;;;;16121:191;;16176:120;16210:6;16239:10;;;;;;;;;;;:38;;16269:8;;;;;;;;;;;16239:38;;;16252:14;;;;;;;;;;;16239:38;16176:120;;:11;:120::i;:::-;16163:133;;16121:191;15941:382;16398:10;16388:6;:20;;16380:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16456:10;16446:20;;;;16517:13;;;;;;;;;;;16513:345;;;16592:6;;16582;:16;;16574:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;16673:9;;;;;;;;;;;16667:15;;:2;:15;;;16663:184;;16759:10;;16749:6;16733:9;:13;16743:2;16733:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:36;;16703:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;16663:184;16513:345;16928:1;16915:10;:14;16911:95;;;16946:48;16962:4;16976;16983:10;16946:15;:48::i;:::-;16911:95;17043:33;17059:4;17065:2;17069:6;17043:15;:33::i;:::-;15133:1951;;15063:2021;;;;:::o;9676:173::-;9778:7;8290:13;9805:36;;9815:8;9806:6;:17;;;;:::i;:::-;9805:36;;;;:::i;:::-;9798:43;;9676:173;;;;:::o;21480:626::-;21609:19;21631:9;:15;21641:4;21631:15;;;;;;;;;;;;;;;;21609:37;;21694:6;21679:11;:21;;21657:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;21834:6;21820:11;:20;21802:9;:15;21812:4;21802:15;;;;;;;;;;;;;;;:38;;;;22037:6;22020:9;:13;22030:2;22020:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;22087:2;22072:26;;22081:4;22072:26;;;22091:6;22072:26;;;;;;:::i;:::-;;;;;;;;21598:508;21480:626;;;:::o;3525:191::-;3599:16;3618:6;;;;;;;;;;;3599:25;;3644:8;3635:6;;:17;;;;;;;;;;;;;;;;;;3699:8;3668:40;;3689:8;3668:40;;;;;;;;;;;;3588:128;3525:191;:::o;17092:436::-;17133:21;17157:24;17175:4;17157:9;:24::i;:::-;17133:48;;17192:13;17225:14;;17208:13;:31;;17192:47;;17256:8;:19;;;;;17269:6;;;;;;;;;;;17268:7;17256:19;:35;;;;;17279:12;;;;;;;;;;;17256:35;17252:269;;;17308:32;17325:14;;17308:16;:32::i;:::-;17355:19;17377:21;17355:43;;17431:7;17417:11;:21;17413:97;;;17459:35;17472:21;17459:12;:35::i;:::-;17413:97;17293:228;17252:269;17122:406;;17092:436::o;13813:1229::-;13910:16;;;;;;;;;;;:62;;;;;13965:7;13949:13;;:23;;;;:::i;:::-;13930:15;:42;;13910:62;13906:1133;;;13985:19;14025:13;;14007:15;:31;;;;:::i;:::-;13985:53;;14127:10;14112:11;:25;;:54;;;;;14151:15;14141:7;;;;;;;;;;;:25;;;14112:54;:84;;;;;14181:15;14170:8;;;;;;;;;;;:26;;;14112:84;14108:773;;;14223:15;14213:7;;:25;;;;;;;;;;;;;;;;;;14264:15;14253:8;;:26;;;;;;;;;;;;;;;;;;14310:15;14294:13;:31;;;;14108:773;;;14446:10;14431:11;:25;14427:454;;14488:15;14477:7;;;;;;;;;;;:26;;;:57;;;;;14519:15;14507:8;;;;;;;;;;;:27;;;14477:57;14473:351;;;14565:14;14555:7;;:24;;;;;;;;;;;;;;;;;;14609:14;14598:8;;:25;;;;;;;;;;;;;;;;;;14473:351;;;14672:14;14662:7;;;;;;;;;;;:24;;;:53;;;;;14701:14;14690:8;;;;;;;;;;;:25;;;14662:53;14658:166;;;14747:15;14736:7;;:26;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14793:15;14781:8;;:27;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14658:166;14473:351;14854:15;14838:13;:31;;;;14427:454;14108:773;14972:7;14956:13;;:23;;;;:::i;:::-;14937:15;:42;14933:99;;15015:5;14996:16;;:24;;;;;;;;;;;;;;;;;;14933:99;13974:1065;13906:1133;13813:1229::o;17536:784::-;9934:4;9925:6;;:13;;;;;;;;;;;;;;;;;;17610:14:::1;17627:49;17639:7;17665:10;;;;;;;;;;;8290:13;17648:27;;;;:::i;:::-;17627:49;;:11;:49::i;:::-;17610:66;;17687:14;17714:6;17704:7;:16;;;;:::i;:::-;17687:33;;17731:22;17756:21;17731:46;;17790:21;17828:1;17814:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17790:40;;17859:4;17841;17846:1;17841:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17885:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17875:4;17880:1;17875:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;17918:58;17935:4;17950:15;;;;;;;;;;;17968:7;17918:8;:58::i;:::-;17987:15;;;;;;;;;;;:66;;;18068:6;18089:1;18105:4;18132;18152:15;17987:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18189:15;18231:14;18207:21;:38;;;;:::i;:::-;18189:56;;18258:54;18271:6;18279:32;18291:7;18300:10;;;;;;;;;;;18279:32;;:11;:32::i;:::-;18258:12;:54::i;:::-;17599:721;;;;;9970:5:::0;9961:6;;:14;;;;;;;;;;;;;;;;;;17536:784;:::o;18328:174::-;18387:12;18405:11;;;;;;;;;;;:16;;18429:7;18448:1;18438:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18405:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18386:65;;;18470:7;18462:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;18375:127;18328:174;:::o;18510:509::-;18654:58;18671:4;18686:15;;;;;;;;;;;18704:7;18654:8;:58::i;:::-;18755:15;;;;;;;;;;;:31;;;18794:9;18827:4;18847:7;18869:1;18912;18955:15;;;;;;;;;;;18985;18755:256;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18510:509;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:323::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3938:1;3963:50;4005:7;3996:6;3985:9;3981:22;3963:50;:::i;:::-;3953:60;;3909:114;3707:323;;;;:::o;4036:118::-;4123:24;4141:5;4123:24;:::i;:::-;4118:3;4111:37;4036:118;;:::o;4160:222::-;4253:4;4291:2;4280:9;4276:18;4268:26;;4304:71;4372:1;4361:9;4357:17;4348:6;4304:71;:::i;:::-;4160:222;;;;:::o;4388:619::-;4465:6;4473;4481;4530:2;4518:9;4509:7;4505:23;4501:32;4498:119;;;4536:79;;:::i;:::-;4498:119;4656:1;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4627:117;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;4388:619;;;;;:::o;5013:86::-;5048:7;5088:4;5081:5;5077:16;5066:27;;5013:86;;;:::o;5105:112::-;5188:22;5204:5;5188:22;:::i;:::-;5183:3;5176:35;5105:112;;:::o;5223:214::-;5312:4;5350:2;5339:9;5335:18;5327:26;;5363:67;5427:1;5416:9;5412:17;5403:6;5363:67;:::i;:::-;5223:214;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:93::-;6149:7;6189:10;6182:5;6178:22;6167:33;;6113:93;;;:::o;6212:120::-;6284:23;6301:5;6284:23;:::i;:::-;6277:5;6274:34;6264:62;;6322:1;6319;6312:12;6264:62;6212:120;:::o;6338:137::-;6383:5;6421:6;6408:20;6399:29;;6437:32;6463:5;6437:32;:::i;:::-;6338:137;;;;:::o;6481:466::-;6545:6;6553;6602:2;6590:9;6581:7;6577:23;6573:32;6570:119;;;6608:79;;:::i;:::-;6570:119;6728:1;6753:50;6795:7;6786:6;6775:9;6771:22;6753:50;:::i;:::-;6743:60;;6699:114;6852:2;6878:52;6922:7;6913:6;6902:9;6898:22;6878:52;:::i;:::-;6868:62;;6823:117;6481:466;;;;;:::o;6953:115::-;7038:23;7055:5;7038:23;:::i;:::-;7033:3;7026:36;6953:115;;:::o;7074:218::-;7165:4;7203:2;7192:9;7188:18;7180:26;;7216:69;7282:1;7271:9;7267:17;7258:6;7216:69;:::i;:::-;7074:218;;;;:::o;7298:117::-;7407:1;7404;7397:12;7421:180;7469:77;7466:1;7459:88;7566:4;7563:1;7556:15;7590:4;7587:1;7580:15;7607:281;7690:27;7712:4;7690:27;:::i;:::-;7682:6;7678:40;7820:6;7808:10;7805:22;7784:18;7772:10;7769:34;7766:62;7763:88;;;7831:18;;:::i;:::-;7763:88;7871:10;7867:2;7860:22;7650:238;7607:281;;:::o;7894:129::-;7928:6;7955:20;;:::i;:::-;7945:30;;7984:33;8012:4;8004:6;7984:33;:::i;:::-;7894:129;;;:::o;8029:311::-;8106:4;8196:18;8188:6;8185:30;8182:56;;;8218:18;;:::i;:::-;8182:56;8268:4;8260:6;8256:17;8248:25;;8328:4;8322;8318:15;8310:23;;8029:311;;;:::o;8346:117::-;8455:1;8452;8445:12;8486:710;8582:5;8607:81;8623:64;8680:6;8623:64;:::i;:::-;8607:81;:::i;:::-;8598:90;;8708:5;8737:6;8730:5;8723:21;8771:4;8764:5;8760:16;8753:23;;8824:4;8816:6;8812:17;8804:6;8800:30;8853:3;8845:6;8842:15;8839:122;;;8872:79;;:::i;:::-;8839:122;8987:6;8970:220;9004:6;8999:3;8996:15;8970:220;;;9079:3;9108:37;9141:3;9129:10;9108:37;:::i;:::-;9103:3;9096:50;9175:4;9170:3;9166:14;9159:21;;9046:144;9030:4;9025:3;9021:14;9014:21;;8970:220;;;8974:21;8588:608;;8486:710;;;;;:::o;9219:370::-;9290:5;9339:3;9332:4;9324:6;9320:17;9316:27;9306:122;;9347:79;;:::i;:::-;9306:122;9464:6;9451:20;9489:94;9579:3;9571:6;9564:4;9556:6;9552:17;9489:94;:::i;:::-;9480:103;;9296:293;9219:370;;;;:::o;9595:678::-;9685:6;9693;9742:2;9730:9;9721:7;9717:23;9713:32;9710:119;;;9748:79;;:::i;:::-;9710:119;9896:1;9885:9;9881:17;9868:31;9926:18;9918:6;9915:30;9912:117;;;9948:79;;:::i;:::-;9912:117;10053:78;10123:7;10114:6;10103:9;10099:22;10053:78;:::i;:::-;10043:88;;9839:302;10180:2;10206:50;10248:7;10239:6;10228:9;10224:22;10206:50;:::i;:::-;10196:60;;10151:115;9595:678;;;;;:::o;10279:118::-;10366:24;10384:5;10366:24;:::i;:::-;10361:3;10354:37;10279:118;;:::o;10403:222::-;10496:4;10534:2;10523:9;10519:18;10511:26;;10547:71;10615:1;10604:9;10600:17;10591:6;10547:71;:::i;:::-;10403:222;;;;:::o;10631:611::-;10704:6;10712;10720;10769:2;10757:9;10748:7;10744:23;10740:32;10737:119;;;10775:79;;:::i;:::-;10737:119;10895:1;10920:53;10965:7;10956:6;10945:9;10941:22;10920:53;:::i;:::-;10910:63;;10866:117;11022:2;11048:52;11092:7;11083:6;11072:9;11068:22;11048:52;:::i;:::-;11038:62;;10993:117;11149:2;11175:50;11217:7;11208:6;11197:9;11193:22;11175:50;:::i;:::-;11165:60;;11120:115;10631:611;;;;;:::o;11248:470::-;11314:6;11322;11371:2;11359:9;11350:7;11346:23;11342:32;11339:119;;;11377:79;;:::i;:::-;11339:119;11497:1;11522:52;11566:7;11557:6;11546:9;11542:22;11522:52;:::i;:::-;11512:62;;11468:116;11623:2;11649:52;11693:7;11684:6;11673:9;11669:22;11649:52;:::i;:::-;11639:62;;11594:117;11248:470;;;;;:::o;11724:474::-;11792:6;11800;11849:2;11837:9;11828:7;11824:23;11820:32;11817:119;;;11855:79;;:::i;:::-;11817:119;11975:1;12000:53;12045:7;12036:6;12025:9;12021:22;12000:53;:::i;:::-;11990:63;;11946:117;12102:2;12128:53;12173:7;12164:6;12153:9;12149:22;12128:53;:::i;:::-;12118:63;;12073:118;11724:474;;;;;:::o;12204:117::-;12313:1;12310;12303:12;12344:568;12417:8;12427:6;12477:3;12470:4;12462:6;12458:17;12454:27;12444:122;;12485:79;;:::i;:::-;12444:122;12598:6;12585:20;12575:30;;12628:18;12620:6;12617:30;12614:117;;;12650:79;;:::i;:::-;12614:117;12764:4;12756:6;12752:17;12740:29;;12818:3;12810:4;12802:6;12798:17;12788:8;12784:32;12781:41;12778:128;;;12825:79;;:::i;:::-;12778:128;12344:568;;;;;:::o;12918:704::-;13013:6;13021;13029;13078:2;13066:9;13057:7;13053:23;13049:32;13046:119;;;13084:79;;:::i;:::-;13046:119;13232:1;13221:9;13217:17;13204:31;13262:18;13254:6;13251:30;13248:117;;;13284:79;;:::i;:::-;13248:117;13397:80;13469:7;13460:6;13449:9;13445:22;13397:80;:::i;:::-;13379:98;;;;13175:312;13526:2;13552:53;13597:7;13588:6;13577:9;13573:22;13552:53;:::i;:::-;13542:63;;13497:118;12918:704;;;;;:::o;13628:474::-;13696:6;13704;13753:2;13741:9;13732:7;13728:23;13724:32;13721:119;;;13759:79;;:::i;:::-;13721:119;13879:1;13904:53;13949:7;13940:6;13929:9;13925:22;13904:53;:::i;:::-;13894:63;;13850:117;14006:2;14032:53;14077:7;14068:6;14057:9;14053:22;14032:53;:::i;:::-;14022:63;;13977:118;13628:474;;;;;:::o;14108:180::-;14156:77;14153:1;14146:88;14253:4;14250:1;14243:15;14277:4;14274:1;14267:15;14294:102;14336:8;14383:5;14380:1;14376:13;14355:34;;14294:102;;;:::o;14402:848::-;14463:5;14470:4;14494:6;14485:15;;14518:5;14509:14;;14532:712;14553:1;14543:8;14540:15;14532:712;;;14648:4;14643:3;14639:14;14633:4;14630:24;14627:50;;;14657:18;;:::i;:::-;14627:50;14707:1;14697:8;14693:16;14690:451;;;15122:4;15115:5;15111:16;15102:25;;14690:451;15172:4;15166;15162:15;15154:23;;15202:32;15225:8;15202:32;:::i;:::-;15190:44;;14532:712;;;14402:848;;;;;;;:::o;15256:1073::-;15310:5;15501:8;15491:40;;15522:1;15513:10;;15524:5;;15491:40;15550:4;15540:36;;15567:1;15558:10;;15569:5;;15540:36;15636:4;15684:1;15679:27;;;;15720:1;15715:191;;;;15629:277;;15679:27;15697:1;15688:10;;15699:5;;;15715:191;15760:3;15750:8;15747:17;15744:43;;;15767:18;;:::i;:::-;15744:43;15816:8;15813:1;15809:16;15800:25;;15851:3;15844:5;15841:14;15838:40;;;15858:18;;:::i;:::-;15838:40;15891:5;;;15629:277;;16015:2;16005:8;16002:16;15996:3;15990:4;15987:13;15983:36;15965:2;15955:8;15952:16;15947:2;15941:4;15938:12;15934:35;15918:111;15915:246;;;16071:8;16065:4;16061:19;16052:28;;16106:3;16099:5;16096:14;16093:40;;;16113:18;;:::i;:::-;16093:40;16146:5;;15915:246;16186:42;16224:3;16214:8;16208:4;16205:1;16186:42;:::i;:::-;16171:57;;;;16260:4;16255:3;16251:14;16244:5;16241:25;16238:51;;;16269:18;;:::i;:::-;16238:51;16318:4;16311:5;16307:16;16298:25;;15256:1073;;;;;;:::o;16335:281::-;16393:5;16417:23;16435:4;16417:23;:::i;:::-;16409:31;;16461:25;16477:8;16461:25;:::i;:::-;16449:37;;16505:104;16542:66;16532:8;16526:4;16505:104;:::i;:::-;16496:113;;16335:281;;;;:::o;16622:410::-;16662:7;16685:20;16703:1;16685:20;:::i;:::-;16680:25;;16719:20;16737:1;16719:20;:::i;:::-;16714:25;;16774:1;16771;16767:9;16796:30;16814:11;16796:30;:::i;:::-;16785:41;;16975:1;16966:7;16962:15;16959:1;16956:22;16936:1;16929:9;16909:83;16886:139;;17005:18;;:::i;:::-;16886:139;16670:362;16622:410;;;;:::o;17038:191::-;17078:3;17097:20;17115:1;17097:20;:::i;:::-;17092:25;;17131:20;17149:1;17131:20;:::i;:::-;17126:25;;17174:1;17171;17167:9;17160:16;;17195:3;17192:1;17189:10;17186:36;;;17202:18;;:::i;:::-;17186:36;17038:191;;;;:::o;17235:170::-;17375:22;17371:1;17363:6;17359:14;17352:46;17235:170;:::o;17411:366::-;17553:3;17574:67;17638:2;17633:3;17574:67;:::i;:::-;17567:74;;17650:93;17739:3;17650:93;:::i;:::-;17768:2;17763:3;17759:12;17752:19;;17411:366;;;:::o;17783:419::-;17949:4;17987:2;17976:9;17972:18;17964:26;;18036:9;18030:4;18026:20;18022:1;18011:9;18007:17;18000:47;18064:131;18190:4;18064:131;:::i;:::-;18056:139;;17783:419;;;:::o;18208:143::-;18265:5;18296:6;18290:13;18281:22;;18312:33;18339:5;18312:33;:::i;:::-;18208:143;;;;:::o;18357:351::-;18427:6;18476:2;18464:9;18455:7;18451:23;18447:32;18444:119;;;18482:79;;:::i;:::-;18444:119;18602:1;18627:64;18683:7;18674:6;18663:9;18659:22;18627:64;:::i;:::-;18617:74;;18573:128;18357:351;;;;:::o;18714:162::-;18854:14;18850:1;18842:6;18838:14;18831:38;18714:162;:::o;18882:366::-;19024:3;19045:67;19109:2;19104:3;19045:67;:::i;:::-;19038:74;;19121:93;19210:3;19121:93;:::i;:::-;19239:2;19234:3;19230:12;19223:19;;18882:366;;;:::o;19254:419::-;19420:4;19458:2;19447:9;19443:18;19435:26;;19507:9;19501:4;19497:20;19493:1;19482:9;19478:17;19471:47;19535:131;19661:4;19535:131;:::i;:::-;19527:139;;19254:419;;;:::o;19679:180::-;19727:77;19724:1;19717:88;19824:4;19821:1;19814:15;19848:4;19845:1;19838:15;19865:161;20005:13;20001:1;19993:6;19989:14;19982:37;19865:161;:::o;20032:366::-;20174:3;20195:67;20259:2;20254:3;20195:67;:::i;:::-;20188:74;;20271:93;20360:3;20271:93;:::i;:::-;20389:2;20384:3;20380:12;20373:19;;20032:366;;;:::o;20404:419::-;20570:4;20608:2;20597:9;20593:18;20585:26;;20657:9;20651:4;20647:20;20643:1;20632:9;20628:17;20621:47;20685:131;20811:4;20685:131;:::i;:::-;20677:139;;20404:419;;;:::o;20829:222::-;20969:34;20965:1;20957:6;20953:14;20946:58;21038:5;21033:2;21025:6;21021:15;21014:30;20829:222;:::o;21057:366::-;21199:3;21220:67;21284:2;21279:3;21220:67;:::i;:::-;21213:74;;21296:93;21385:3;21296:93;:::i;:::-;21414:2;21409:3;21405:12;21398:19;;21057:366;;;:::o;21429:419::-;21595:4;21633:2;21622:9;21618:18;21610:26;;21682:9;21676:4;21672:20;21668:1;21657:9;21653:17;21646:47;21710:131;21836:4;21710:131;:::i;:::-;21702:139;;21429:419;;;:::o;21854:225::-;21994:34;21990:1;21982:6;21978:14;21971:58;22063:8;22058:2;22050:6;22046:15;22039:33;21854:225;:::o;22085:366::-;22227:3;22248:67;22312:2;22307:3;22248:67;:::i;:::-;22241:74;;22324:93;22413:3;22324:93;:::i;:::-;22442:2;22437:3;22433:12;22426:19;;22085:366;;;:::o;22457:419::-;22623:4;22661:2;22650:9;22646:18;22638:26;;22710:9;22704:4;22700:20;22696:1;22685:9;22681:17;22674:47;22738:131;22864:4;22738:131;:::i;:::-;22730:139;;22457:419;;;:::o;22882:223::-;23022:34;23018:1;23010:6;23006:14;22999:58;23091:6;23086:2;23078:6;23074:15;23067:31;22882:223;:::o;23111:366::-;23253:3;23274:67;23338:2;23333:3;23274:67;:::i;:::-;23267:74;;23350:93;23439:3;23350:93;:::i;:::-;23468:2;23463:3;23459:12;23452:19;;23111:366;;;:::o;23483:419::-;23649:4;23687:2;23676:9;23672:18;23664:26;;23736:9;23730:4;23726:20;23722:1;23711:9;23707:17;23700:47;23764:131;23890:4;23764:131;:::i;:::-;23756:139;;23483:419;;;:::o;23908:221::-;24048:34;24044:1;24036:6;24032:14;24025:58;24117:4;24112:2;24104:6;24100:15;24093:29;23908:221;:::o;24135:366::-;24277:3;24298:67;24362:2;24357:3;24298:67;:::i;:::-;24291:74;;24374:93;24463:3;24374:93;:::i;:::-;24492:2;24487:3;24483:12;24476:19;;24135:366;;;:::o;24507:419::-;24673:4;24711:2;24700:9;24696:18;24688:26;;24760:9;24754:4;24750:20;24746:1;24735:9;24731:17;24724:47;24788:131;24914:4;24788:131;:::i;:::-;24780:139;;24507:419;;;:::o;24932:182::-;25072:34;25068:1;25060:6;25056:14;25049:58;24932:182;:::o;25120:366::-;25262:3;25283:67;25347:2;25342:3;25283:67;:::i;:::-;25276:74;;25359:93;25448:3;25359:93;:::i;:::-;25477:2;25472:3;25468:12;25461:19;;25120:366;;;:::o;25492:419::-;25658:4;25696:2;25685:9;25681:18;25673:26;;25745:9;25739:4;25735:20;25731:1;25720:9;25716:17;25709:47;25773:131;25899:4;25773:131;:::i;:::-;25765:139;;25492:419;;;:::o;25917:179::-;26057:31;26053:1;26045:6;26041:14;26034:55;25917:179;:::o;26102:366::-;26244:3;26265:67;26329:2;26324:3;26265:67;:::i;:::-;26258:74;;26341:93;26430:3;26341:93;:::i;:::-;26459:2;26454:3;26450:12;26443:19;;26102:366;;;:::o;26474:419::-;26640:4;26678:2;26667:9;26663:18;26655:26;;26727:9;26721:4;26717:20;26713:1;26702:9;26698:17;26691:47;26755:131;26881:4;26755:131;:::i;:::-;26747:139;;26474:419;;;:::o;26899:224::-;27039:34;27035:1;27027:6;27023:14;27016:58;27108:7;27103:2;27095:6;27091:15;27084:32;26899:224;:::o;27129:366::-;27271:3;27292:67;27356:2;27351:3;27292:67;:::i;:::-;27285:74;;27368:93;27457:3;27368:93;:::i;:::-;27486:2;27481:3;27477:12;27470:19;;27129:366;;;:::o;27501:419::-;27667:4;27705:2;27694:9;27690:18;27682:26;;27754:9;27748:4;27744:20;27740:1;27729:9;27725:17;27718:47;27782:131;27908:4;27782:131;:::i;:::-;27774:139;;27501:419;;;:::o;27926:228::-;28066:34;28062:1;28054:6;28050:14;28043:58;28135:11;28130:2;28122:6;28118:15;28111:36;27926:228;:::o;28160:366::-;28302:3;28323:67;28387:2;28382:3;28323:67;:::i;:::-;28316:74;;28399:93;28488:3;28399:93;:::i;:::-;28517:2;28512:3;28508:12;28501:19;;28160:366;;;:::o;28532:419::-;28698:4;28736:2;28725:9;28721:18;28713:26;;28785:9;28779:4;28775:20;28771:1;28760:9;28756:17;28749:47;28813:131;28939:4;28813:131;:::i;:::-;28805:139;;28532:419;;;:::o;28957:169::-;29097:21;29093:1;29085:6;29081:14;29074:45;28957:169;:::o;29132:366::-;29274:3;29295:67;29359:2;29354:3;29295:67;:::i;:::-;29288:74;;29371:93;29460:3;29371:93;:::i;:::-;29489:2;29484:3;29480:12;29473:19;;29132:366;;;:::o;29504:419::-;29670:4;29708:2;29697:9;29693:18;29685:26;;29757:9;29751:4;29747:20;29743:1;29732:9;29728:17;29721:47;29785:131;29911:4;29785:131;:::i;:::-;29777:139;;29504:419;;;:::o;29929:168::-;30069:20;30065:1;30057:6;30053:14;30046:44;29929:168;:::o;30103:366::-;30245:3;30266:67;30330:2;30325:3;30266:67;:::i;:::-;30259:74;;30342:93;30431:3;30342:93;:::i;:::-;30460:2;30455:3;30451:12;30444:19;;30103:366;;;:::o;30475:419::-;30641:4;30679:2;30668:9;30664:18;30656:26;;30728:9;30722:4;30718:20;30714:1;30703:9;30699:17;30692:47;30756:131;30882:4;30756:131;:::i;:::-;30748:139;;30475:419;;;:::o;30900:164::-;31040:16;31036:1;31028:6;31024:14;31017:40;30900:164;:::o;31070:366::-;31212:3;31233:67;31297:2;31292:3;31233:67;:::i;:::-;31226:74;;31309:93;31398:3;31309:93;:::i;:::-;31427:2;31422:3;31418:12;31411:19;;31070:366;;;:::o;31442:419::-;31608:4;31646:2;31635:9;31631:18;31623:26;;31695:9;31689:4;31685:20;31681:1;31670:9;31666:17;31659:47;31723:131;31849:4;31723:131;:::i;:::-;31715:139;;31442:419;;;:::o;31867:168::-;32007:20;32003:1;31995:6;31991:14;31984:44;31867:168;:::o;32041:366::-;32183:3;32204:67;32268:2;32263:3;32204:67;:::i;:::-;32197:74;;32280:93;32369:3;32280:93;:::i;:::-;32398:2;32393:3;32389:12;32382:19;;32041:366;;;:::o;32413:419::-;32579:4;32617:2;32606:9;32602:18;32594:26;;32666:9;32660:4;32656:20;32652:1;32641:9;32637:17;32630:47;32694:131;32820:4;32694:131;:::i;:::-;32686:139;;32413:419;;;:::o;32838:180::-;32886:77;32883:1;32876:88;32983:4;32980:1;32973:15;33007:4;33004:1;32997:15;33024:185;33064:1;33081:20;33099:1;33081:20;:::i;:::-;33076:25;;33115:20;33133:1;33115:20;:::i;:::-;33110:25;;33154:1;33144:35;;33159:18;;:::i;:::-;33144:35;33201:1;33198;33194:9;33189:14;;33024:185;;;;:::o;33215:225::-;33355:34;33351:1;33343:6;33339:14;33332:58;33424:8;33419:2;33411:6;33407:15;33400:33;33215:225;:::o;33446:366::-;33588:3;33609:67;33673:2;33668:3;33609:67;:::i;:::-;33602:74;;33685:93;33774:3;33685:93;:::i;:::-;33803:2;33798:3;33794:12;33787:19;;33446:366;;;:::o;33818:419::-;33984:4;34022:2;34011:9;34007:18;33999:26;;34071:9;34065:4;34061:20;34057:1;34046:9;34042:17;34035:47;34099:131;34225:4;34099:131;:::i;:::-;34091:139;;33818:419;;;:::o;34243:194::-;34283:4;34303:20;34321:1;34303:20;:::i;:::-;34298:25;;34337:20;34355:1;34337:20;:::i;:::-;34332:25;;34381:1;34378;34374:9;34366:17;;34405:1;34399:4;34396:11;34393:37;;;34410:18;;:::i;:::-;34393:37;34243:194;;;;:::o;34443:200::-;34482:4;34502:19;34519:1;34502:19;:::i;:::-;34497:24;;34535:19;34552:1;34535:19;:::i;:::-;34530:24;;34578:1;34575;34571:9;34563:17;;34602:10;34596:4;34593:20;34590:46;;;34616:18;;:::i;:::-;34590:46;34443:200;;;;:::o;34649:143::-;34706:5;34737:6;34731:13;34722:22;;34753:33;34780:5;34753:33;:::i;:::-;34649:143;;;;:::o;34798:351::-;34868:6;34917:2;34905:9;34896:7;34892:23;34888:32;34885:119;;;34923:79;;:::i;:::-;34885:119;35043:1;35068:64;35124:7;35115:6;35104:9;35100:22;35068:64;:::i;:::-;35058:74;;35014:128;34798:351;;;;:::o;35155:85::-;35200:7;35229:5;35218:16;;35155:85;;;:::o;35246:60::-;35274:3;35295:5;35288:12;;35246:60;;;:::o;35312:158::-;35370:9;35403:61;35421:42;35430:32;35456:5;35430:32;:::i;:::-;35421:42;:::i;:::-;35403:61;:::i;:::-;35390:74;;35312:158;;;:::o;35476:147::-;35571:45;35610:5;35571:45;:::i;:::-;35566:3;35559:58;35476:147;;:::o;35629:114::-;35696:6;35730:5;35724:12;35714:22;;35629:114;;;:::o;35749:184::-;35848:11;35882:6;35877:3;35870:19;35922:4;35917:3;35913:14;35898:29;;35749:184;;;;:::o;35939:132::-;36006:4;36029:3;36021:11;;36059:4;36054:3;36050:14;36042:22;;35939:132;;;:::o;36077:108::-;36154:24;36172:5;36154:24;:::i;:::-;36149:3;36142:37;36077:108;;:::o;36191:179::-;36260:10;36281:46;36323:3;36315:6;36281:46;:::i;:::-;36359:4;36354:3;36350:14;36336:28;;36191:179;;;;:::o;36376:113::-;36446:4;36478;36473:3;36469:14;36461:22;;36376:113;;;:::o;36525:732::-;36644:3;36673:54;36721:5;36673:54;:::i;:::-;36743:86;36822:6;36817:3;36743:86;:::i;:::-;36736:93;;36853:56;36903:5;36853:56;:::i;:::-;36932:7;36963:1;36948:284;36973:6;36970:1;36967:13;36948:284;;;37049:6;37043:13;37076:63;37135:3;37120:13;37076:63;:::i;:::-;37069:70;;37162:60;37215:6;37162:60;:::i;:::-;37152:70;;37008:224;36995:1;36992;36988:9;36983:14;;36948:284;;;36952:14;37248:3;37241:10;;36649:608;;;36525:732;;;;:::o;37263:831::-;37526:4;37564:3;37553:9;37549:19;37541:27;;37578:71;37646:1;37635:9;37631:17;37622:6;37578:71;:::i;:::-;37659:80;37735:2;37724:9;37720:18;37711:6;37659:80;:::i;:::-;37786:9;37780:4;37776:20;37771:2;37760:9;37756:18;37749:48;37814:108;37917:4;37908:6;37814:108;:::i;:::-;37806:116;;37932:72;38000:2;37989:9;37985:18;37976:6;37932:72;:::i;:::-;38014:73;38082:3;38071:9;38067:19;38058:6;38014:73;:::i;:::-;37263:831;;;;;;;;:::o;38100:98::-;38151:6;38185:5;38179:12;38169:22;;38100:98;;;:::o;38204:147::-;38305:11;38342:3;38327:18;;38204:147;;;;:::o;38357:386::-;38461:3;38489:38;38521:5;38489:38;:::i;:::-;38543:88;38624:6;38619:3;38543:88;:::i;:::-;38536:95;;38640:65;38698:6;38693:3;38686:4;38679:5;38675:16;38640:65;:::i;:::-;38730:6;38725:3;38721:16;38714:23;;38465:278;38357:386;;;;:::o;38749:271::-;38879:3;38901:93;38990:3;38981:6;38901:93;:::i;:::-;38894:100;;39011:3;39004:10;;38749:271;;;;:::o;39026:162::-;39166:14;39162:1;39154:6;39150:14;39143:38;39026:162;:::o;39194:366::-;39336:3;39357:67;39421:2;39416:3;39357:67;:::i;:::-;39350:74;;39433:93;39522:3;39433:93;:::i;:::-;39551:2;39546:3;39542:12;39535:19;;39194:366;;;:::o;39566:419::-;39732:4;39770:2;39759:9;39755:18;39747:26;;39819:9;39813:4;39809:20;39805:1;39794:9;39790:17;39783:47;39847:131;39973:4;39847:131;:::i;:::-;39839:139;;39566:419;;;:::o;39991:807::-;40240:4;40278:3;40267:9;40263:19;40255:27;;40292:71;40360:1;40349:9;40345:17;40336:6;40292:71;:::i;:::-;40373:72;40441:2;40430:9;40426:18;40417:6;40373:72;:::i;:::-;40455:80;40531:2;40520:9;40516:18;40507:6;40455:80;:::i;:::-;40545;40621:2;40610:9;40606:18;40597:6;40545:80;:::i;:::-;40635:73;40703:3;40692:9;40688:19;40679:6;40635:73;:::i;:::-;40718;40786:3;40775:9;40771:19;40762:6;40718:73;:::i;:::-;39991:807;;;;;;;;;:::o;40804:663::-;40892:6;40900;40908;40957:2;40945:9;40936:7;40932:23;40928:32;40925:119;;;40963:79;;:::i;:::-;40925:119;41083:1;41108:64;41164:7;41155:6;41144:9;41140:22;41108:64;:::i;:::-;41098:74;;41054:128;41221:2;41247:64;41303:7;41294:6;41283:9;41279:22;41247:64;:::i;:::-;41237:74;;41192:129;41360:2;41386:64;41442:7;41433:6;41422:9;41418:22;41386:64;:::i;:::-;41376:74;;41331:129;40804:663;;;;;:::o

Swarm Source

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