ETH Price: $3,409.07 (-0.20%)
Gas: 7 Gwei

Contract

0x612980A9770fbcB1d154728E777a231EFb22963e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202693682024-07-09 13:55:599 days ago1720533359IN
Yodatoshi: YODAI Token
0 ETH0.00041088.73933263
Approve199968012024-06-01 11:54:3547 days ago1717242875IN
Yodatoshi: YODAI Token
0 ETH0.000213014.53978453
Approve198674972024-05-14 9:56:2365 days ago1715680583IN
Yodatoshi: YODAI Token
0 ETH0.000297196.33376218
Transfer198409852024-05-10 16:59:4769 days ago1715360387IN
Yodatoshi: YODAI Token
0 ETH0.0004546.28433137
Approve195115252024-03-25 12:34:35115 days ago1711370075IN
Yodatoshi: YODAI Token
0 ETH0.0010373321.98394223
Approve194921852024-03-22 19:15:35118 days ago1711134935IN
Yodatoshi: YODAI Token
0 ETH0.0010967923.34506642
Approve193764352024-03-06 13:29:47134 days ago1709731787IN
Yodatoshi: YODAI Token
0 ETH0.0034444373.40758462
Approve192071262024-02-11 20:14:59158 days ago1707682499IN
Yodatoshi: YODAI Token
0 ETH0.0028645461.03354937
Approve191289872024-01-31 20:57:23168 days ago1706734643IN
Yodatoshi: YODAI Token
0 ETH0.00099121.00209616
Approve191141862024-01-29 19:11:47171 days ago1706555507IN
Yodatoshi: YODAI Token
0 ETH0.0008729218.49957028
Approve189944012024-01-13 0:29:59187 days ago1705105799IN
Yodatoshi: YODAI Token
0 ETH0.0007525815.94932794
Approve189806852024-01-11 2:21:47189 days ago1704939707IN
Yodatoshi: YODAI Token
0 ETH0.0007834531.46167865
Approve188162612023-12-18 23:51:35212 days ago1702943495IN
Yodatoshi: YODAI Token
0 ETH0.002090244.47802979
Transfer188162332023-12-18 23:45:59212 days ago1702943159IN
Yodatoshi: YODAI Token
0 ETH0.0039910362.56526181
Approve187616962023-12-11 8:13:11220 days ago1702282391IN
Yodatoshi: YODAI Token
0 ETH0.0008133832.66345722
Approve187583172023-12-10 20:53:47220 days ago1702241627IN
Yodatoshi: YODAI Token
0 ETH0.0019837442.0409958
Approve187504292023-12-09 18:23:59222 days ago1702146239IN
Yodatoshi: YODAI Token
0 ETH0.0008160932.77224734
Approve186871962023-11-30 21:48:23230 days ago1701380903IN
Yodatoshi: YODAI Token
0 ETH0.0038841682.31602617
Transfer186619682023-11-27 9:04:11234 days ago1701075851IN
Yodatoshi: YODAI Token
0 ETH0.0012800921.37195735
Approve186317032023-11-23 3:18:47238 days ago1700709527IN
Yodatoshi: YODAI Token
0 ETH0.0007663928.42514966
Approve186317002023-11-23 3:18:11238 days ago1700709491IN
Yodatoshi: YODAI Token
0 ETH0.0008051529.86262091
Approve186316862023-11-23 3:15:23238 days ago1700709323IN
Yodatoshi: YODAI Token
0 ETH0.000799332.02097526
Approve185982622023-11-18 10:54:59243 days ago1700304899IN
Yodatoshi: YODAI Token
0 ETH0.0009004919.19138092
Approve185578612023-11-12 19:17:11249 days ago1699816631IN
Yodatoshi: YODAI Token
0 ETH0.0013245928.07180209
Approve185043022023-11-05 7:24:23256 days ago1699169063IN
Yodatoshi: YODAI Token
0 ETH0.0007382715.70988284
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
192071652024-02-11 20:22:59158 days ago1707682979
Yodatoshi: YODAI Token
0.01791465 ETH
192071652024-02-11 20:22:59158 days ago1707682979
Yodatoshi: YODAI Token
0.00597155 ETH
192071652024-02-11 20:22:59158 days ago1707682979
Yodatoshi: YODAI Token
0.0238862 ETH
191141882024-01-29 19:12:11171 days ago1706555531
Yodatoshi: YODAI Token
0.01825569 ETH
191141882024-01-29 19:12:11171 days ago1706555531
Yodatoshi: YODAI Token
0.00608523 ETH
191141882024-01-29 19:12:11171 days ago1706555531
Yodatoshi: YODAI Token
0.02434092 ETH
190959042024-01-27 5:42:23173 days ago1706334143
Yodatoshi: YODAI Token
0.01860894 ETH
190959042024-01-27 5:42:23173 days ago1706334143
Yodatoshi: YODAI Token
0.00620298 ETH
190959042024-01-27 5:42:23173 days ago1706334143
Yodatoshi: YODAI Token
0.02481192 ETH
182864092023-10-05 19:31:59287 days ago1696534319
Yodatoshi: YODAI Token
0.07436293 ETH
182864092023-10-05 19:31:59287 days ago1696534319
Yodatoshi: YODAI Token
0.02478764 ETH
182864092023-10-05 19:31:59287 days ago1696534319
Yodatoshi: YODAI Token
0.09915058 ETH
179349692023-08-17 13:54:59336 days ago1692280499
Yodatoshi: YODAI Token
0.14054681 ETH
179349692023-08-17 13:54:59336 days ago1692280499
Yodatoshi: YODAI Token
0.04684893 ETH
179349692023-08-17 13:54:59336 days ago1692280499
Yodatoshi: YODAI Token
0.18739574 ETH
178291622023-08-02 18:40:23351 days ago1691001623
Yodatoshi: YODAI Token
0.22885014 ETH
178291622023-08-02 18:40:23351 days ago1691001623
Yodatoshi: YODAI Token
0.07628338 ETH
178291622023-08-02 18:40:23351 days ago1691001623
Yodatoshi: YODAI Token
0.30513352 ETH
178263402023-08-02 9:12:23351 days ago1690967543
Yodatoshi: YODAI Token
0.30513352 ETH
177206022023-07-18 14:07:11366 days ago1689689231
Yodatoshi: YODAI Token
0.39110455 ETH
177206022023-07-18 14:07:11366 days ago1689689231
Yodatoshi: YODAI Token
0.13036818 ETH
177206022023-07-18 14:07:11366 days ago1689689231
Yodatoshi: YODAI Token
0.52147274 ETH
177070162023-07-16 16:23:59368 days ago1689524639
Yodatoshi: YODAI Token
0.40561562 ETH
177070162023-07-16 16:23:59368 days ago1689524639
Yodatoshi: YODAI Token
0.1352052 ETH
177070162023-07-16 16:23:59368 days ago1689524639
Yodatoshi: YODAI Token
0.54082083 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Yodatoshi

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-05-30
*/

// SPDX-License-Identifier: MIT
/**
MAX TRANSACTION BUY 2%~ = 20M~ $YODAI TOKENS ! 

Totally automatic lowering taxes!

Starting tax 70/70
After 8min 60/60
After 16min 50/50
After 24min 40/40
After 32min 30/30
After 40min 20/20
After 48min 10/10
After 56min 4/4

25% - auto liquidity / 75% - marketing/dev team

http://t.me/YodaiToken    
http://yodatoshi.com/
http://twitter.com/Yodai_erc
https://twitter.com/YodatoshiGuide
https://medium.com/@yodatoshi/when-master-yoda-meets-blockchain-7e3c2c6ac137
 */
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 Yodatoshi is IERC20Metadata, Ownable {
    //Constants
    string private constant _name = "Yodatoshi";
    string private constant _symbol = "YODAI";
    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 = 20.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;
    uint32 public fee_buy = 70.00 * 10 ** 2;
    uint32 public fee_sell = 70.00 * 10 ** 2;
    uint32 public fee_early_sell = 30.00 * 10 ** 2;
    uint32 public lp_percent = 25.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 = 5_000_000 * 10 ** _decimals; //0.5%

    //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;
        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 OpenTrade(bool _enable) public onlyOwner {
        trade_open = _enable;
        if (_enable == true) {
            tradeOpenTime = block.timestamp;
        }
    }

    function updateFees() internal {
        // Only run for the first hour after trade is open
        if (updateFeesActive && block.timestamp <= tradeOpenTime + 1 hours) {
            // Decrease fees every 8 minutes
            if (block.timestamp >= tradeOpenTime + 8 minutes) {
                fee_buy = fee_buy > 10.00 * 10 ** 2
                    ? fee_buy - 10.00 * 10 ** 2
                    : 4.00 * 10 ** 2;
                fee_sell = fee_sell > 10.00 * 10 ** 2
                    ? fee_sell - 10.00 * 10 ** 2
                    : 4.00 * 10 ** 2;
                tradeOpenTime += 8 minutes;
            }
            // 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
        updateFees();

        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
            address(0),
            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":"OpenTrade","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":"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"}]

60806040526001600060156101000a81548160ff0219169083151502179055506001600060166101000a81548160ff021916908315150217905550611b58600160146101000a81548163ffffffff021916908363ffffffff160217905550611b58600160186101000a81548163ffffffff021916908363ffffffff160217905550610bb86001601c6101000a81548163ffffffff021916908363ffffffff1602179055506109c4600260006101000a81548163ffffffff021916908363ffffffff1602179055506001600260046101000a81548160ff0219169083151502179055506107086005556012600a620000f7919062000997565b630132b3a0620001089190620009e8565b6007556012600a6200011b919062000997565b630132b3a06200012c9190620009e8565b6008556012600a6200013f919062000997565b624c4b406200014f9190620009e8565b6009556001600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055503480156200019557600080fd5b506040516200494b3803806200494b8339818101604052810190620001bb919062000c21565b620001db620001cf620005d360201b60201c565b620005db60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000281573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000c87565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000335919062000c87565b6040518363ffffffff1660e01b81526004016200035492919062000cca565b6020604051808303816000875af115801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a919062000c87565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004de8260016200069f60201b60201c565b6012600a620004ee919062000997565b633b9aca00620004ff9190620009e8565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005a2919062000997565b633b9aca00620005b39190620009e8565b604051620005c2919062000d08565b60405180910390a350505062000dd7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006af6200074360201b60201c565b60005b82518110156200073e578160046000858481518110620006d757620006d662000d25565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050620006b2565b505050565b62000753620005d360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000779620007d460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007d2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c99062000db5565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200088b57808604811115620008635762000862620007fd565b5b6001851615620008735780820291505b808102905062000883856200082c565b945062000843565b94509492505050565b600082620008a6576001905062000979565b81620008b6576000905062000979565b8160018114620008cf5760028114620008da5762000910565b600191505062000979565b60ff841115620008ef57620008ee620007fd565b5b8360020a915084821115620009095762000908620007fd565b5b5062000979565b5060208310610133831016604e8410600b84101617156200094a5782820a905083811115620009445762000943620007fd565b5b62000979565b62000959848484600162000839565b92509050818404811115620009735762000972620007fd565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009a48262000980565b9150620009b1836200098a565b9250620009e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000894565b905092915050565b6000620009f58262000980565b915062000a028362000980565b925082820262000a128162000980565b9150828204841483151762000a2c5762000a2b620007fd565b5b5092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a748262000a47565b9050919050565b62000a868162000a67565b811462000a9257600080fd5b50565b60008151905062000aa68162000a7b565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000afc8262000ab1565b810181811067ffffffffffffffff8211171562000b1e5762000b1d62000ac2565b5b80604052505050565b600062000b3362000a33565b905062000b41828262000af1565b919050565b600067ffffffffffffffff82111562000b645762000b6362000ac2565b5b602082029050602081019050919050565b600080fd5b600062000b9162000b8b8462000b46565b62000b27565b9050808382526020820190506020840283018581111562000bb75762000bb662000b75565b5b835b8181101562000be4578062000bcf888262000a95565b84526020840193505060208101905062000bb9565b5050509392505050565b600082601f83011262000c065762000c0562000aac565b5b815162000c1884826020860162000b7a565b91505092915050565b6000806040838503121562000c3b5762000c3a62000a3d565b5b600062000c4b8582860162000a95565b925050602083015167ffffffffffffffff81111562000c6f5762000c6e62000a42565b5b62000c7d8582860162000bee565b9150509250929050565b60006020828403121562000ca05762000c9f62000a3d565b5b600062000cb08482850162000a95565b91505092915050565b62000cc48162000a67565b82525050565b600060408201905062000ce1600083018562000cb9565b62000cf0602083018462000cb9565b9392505050565b62000d028162000980565b82525050565b600060208201905062000d1f600083018462000cf7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d9d60208362000d54565b915062000daa8262000d65565b602082019050919050565b6000602082019050818103600083015262000dd08162000d8e565b9050919050565b613b648062000de76000396000f3fe60806040526004361061024a5760003560e01c80638bf67ad011610139578063a9059cbb116100b6578063c9d9159d1161007a578063c9d9159d14610840578063d11fcb851461086b578063dd62ed3e146108a8578063e717fc30146108e5578063f2fde38b14610910578063f5a27e861461093957610251565b8063a9059cbb1461075b578063ac93583414610798578063ba414b10146107c3578063bd186c4c146107ec578063bd4f1dc61461081557610251565b806395d89b41116100fd57806395d89b411461069c57806396418d4d146106c75780639bfe8df7146106f0578063a1780c1814610719578063a20adf861461073057610251565b80638bf67ad0146105c95780638da5cb5b146105f25780638e26bbe41461061d57806391d88b951461064657806391f18b7c1461067157610251565b80635bc05f3c116101c757806370a082311161018b57806370a08231146104f457806370fbc71214610531578063715018a61461055c5780637971fca7146105735780637aab5d9b1461059e57610251565b80635bc05f3c1461041f5780636264300e1461044a57806363126e1714610475578063685e838e1461049e5780636ea79583146104c957610251565b8063249715a61161020e578063249715a61461034e578063313ce567146103795780633d21e5a2146103a457806349dc859c146103cd578063581d30f8146103f657610251565b806306fdde0314610253578063095ea7b31461027e57806312fbbbe4146102bb57806318160ddd146102e657806323b872dd1461031157610251565b3661025157005b005b34801561025f57600080fd5b50610268610964565b60405161027591906125fe565b60405180910390f35b34801561028a57600080fd5b506102a560048036038101906102a091906126c8565b6109a1565b6040516102b29190612723565b60405180910390f35b3480156102c757600080fd5b506102d06109c4565b6040516102dd919061274d565b60405180910390f35b3480156102f257600080fd5b506102fb6109ca565b604051610308919061274d565b60405180910390f35b34801561031d57600080fd5b5061033860048036038101906103339190612768565b6109ee565b6040516103459190612723565b60405180910390f35b34801561035a57600080fd5b50610363610a1d565b6040516103709190612723565b60405180910390f35b34801561038557600080fd5b5061038e610a30565b60405161039b91906127d7565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c691906127f2565b610a39565b005b3480156103d957600080fd5b506103f460048036038101906103ef919061281f565b610a85565b005b34801561040257600080fd5b5061041d600480360381019061041891906128b4565b610c6d565b005b34801561042b57600080fd5b50610434610d05565b6040516104419190612723565b60405180910390f35b34801561045657600080fd5b5061045f610d18565b60405161046c9190612903565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612a66565b610d2e565b005b3480156104aa57600080fd5b506104b3610dc5565b6040516104c0919061274d565b60405180910390f35b3480156104d557600080fd5b506104de610dcb565b6040516104eb9190612ad1565b60405180910390f35b34801561050057600080fd5b5061051b600480360381019061051691906127f2565b610df1565b604051610528919061274d565b60405180910390f35b34801561053d57600080fd5b50610546610e3a565b604051610553919061274d565b60405180910390f35b34801561056857600080fd5b50610571610e40565b005b34801561057f57600080fd5b50610588610e54565b6040516105959190612903565b60405180910390f35b3480156105aa57600080fd5b506105b3610e6a565b6040516105c09190612723565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb9190612aec565b610e7d565b005b3480156105fe57600080fd5b50610607610ecc565b6040516106149190612ad1565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190612b3f565b610ef5565b005b34801561065257600080fd5b5061065b610f2e565b604051610668919061274d565b60405180910390f35b34801561067d57600080fd5b50610686610f34565b6040516106939190612ad1565b60405180910390f35b3480156106a857600080fd5b506106b1610f5a565b6040516106be91906125fe565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190612b6c565b610f97565b005b3480156106fc57600080fd5b5061071760048036038101906107129190612bac565b611050565b005b34801561072557600080fd5b5061072e611111565b005b34801561073c57600080fd5b50610745611123565b6040516107529190612723565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d91906126c8565b611136565b60405161078f9190612723565b60405180910390f35b3480156107a457600080fd5b506107ad611159565b6040516107ba9190612723565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e59190612c47565b61116c565b005b3480156107f857600080fd5b50610813600480360381019061080e9190612b3f565b611249565b005b34801561082157600080fd5b5061082a61126e565b6040516108379190612903565b60405180910390f35b34801561084c57600080fd5b50610855611284565b6040516108629190612903565b60405180910390f35b34801561087757600080fd5b50610892600480360381019061088d91906127f2565b61129a565b60405161089f9190612723565b60405180910390f35b3480156108b457600080fd5b506108cf60048036038101906108ca9190612ca7565b6112ba565b6040516108dc919061274d565b60405180910390f35b3480156108f157600080fd5b506108fa611341565b604051610907919061274d565b60405180910390f35b34801561091c57600080fd5b50610937600480360381019061093291906127f2565b611347565b005b34801561094557600080fd5b5061094e6113ca565b60405161095b919061274d565b60405180910390f35b60606040518060400160405280600981526020017f596f6461746f7368690000000000000000000000000000000000000000000000815250905090565b6000806109ac6113d0565b90506109b98185856113d8565b600191505092915050565b60035481565b60006012600a6109da9190612e49565b633b9aca006109e99190612e94565b905090565b6000806109f96113d0565b9050610a068582856115a1565b610a1185858561162d565b60019150509392505050565b600260049054906101000a900460ff1681565b60006012905090565b610a41611b9c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a8d611b9c565b600554600654610a9d9190612ed6565b4211610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad590612f56565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166370a08231600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610b3b9190612ad1565b602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190612f8b565b90506000610b92826103e863ffffffff16611c1a565b905080831115610ba0578092505b426006819055506000831115610be057610bdf600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead85611c43565b5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b5050505050505050565b610c75611b9c565b6107d063ffffffff168163ffffffff161115610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd90613004565b60405180910390fd5b81600060166101000a81548160ff021916908315150217905550806001601c6101000a81548163ffffffff021916908363ffffffff1602179055505050565b600060169054906101000a900460ff1681565b600160189054906101000a900463ffffffff1681565b610d36611b9c565b60005b8251811015610dc0578160046000858481518110610d5a57610d59613024565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610d39565b505050565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b610e48611b9c565b610e526000611dc8565b565b600160149054906101000a900463ffffffff1681565b600060149054906101000a900460ff1681565b610e85611b9c565b8260098190555081600260006101000a81548163ffffffff021916908363ffffffff16021790555080600d60146101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610efd611b9c565b80600060146101000a81548160ff0219169083151502179055506001151581151503610f2b57426003819055505b50565b60055481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f594f444149000000000000000000000000000000000000000000000000000000815250905090565b610f9f611b9c565b6107d063ffffffff168263ffffffff1611158015610fcb57506107d063ffffffff168163ffffffff1611155b61100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100190613004565b60405180910390fd5b81600160146101000a81548163ffffffff021916908363ffffffff16021790555080600160186101000a81548163ffffffff021916908363ffffffff1602179055505050565b611058611b9c565b603263ffffffff1682101580156110765750603263ffffffff168110155b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac9061309f565b60405180910390fd5b6110db6012600a6110c69190612e49565b633b9aca006110d59190612e94565b83611c1a565b6007819055506111076012600a6110f29190612e49565b633b9aca006111019190612e94565b82611c1a565b6008819055505050565b611119611b9c565b611121611e8c565b565b600060159054906101000a900460ff1681565b6000806111416113d0565b905061114e81858561162d565b600191505092915050565b600d60149054906101000a900460ff1681565b611174611b9c565b600061117e610ecc565b905060005b848490508110156112425760008585838181106111a3576111a2613024565b5b90506020020160208101906111b891906127f2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613131565b60405180910390fd5b611234838286611c43565b508080600101915050611183565b5050505050565b611251611b9c565b80600060156101000a81548160ff02191690831515021790555050565b6001601c9054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b61134f611b9c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b5906131c3565b60405180910390fd5b6113c781611dc8565b50565b60065481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90613255565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906132e7565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611594919061274d565b60405180910390a3505050565b60006115ad84846112ba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116275781811015611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613353565b60405180910390fd5b61162684848484036113d8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611693906133e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613131565b60405180910390fd5b6000811161174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590613477565b60405180910390fd5b611756610ecc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117c15750611792610ecc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117f757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561180c57611807838383611c43565b611b97565b600060149054906101000a900460ff1661185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906134e3565b60405180910390fd5b611863611f03565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050806118c7576118c6611e8c565b5b801561194857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119435761194083600160149054906101000a900463ffffffff1663ffffffff16611c1a565b91505b6119ec565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119eb576119e883600060169054906101000a900460ff166119c957600160189054906101000a900463ffffffff166119dd565b6001601c9054906101000a900463ffffffff165b63ffffffff16611c1a565b91505b5b81831015611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a269061354f565b60405180910390fd5b8183039250600060159054906101000a900460ff1615611b7457600754831115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906135bb565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611b735760085483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b319190612ed6565b1115611b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6990613627565b60405180910390fd5b5b5b6000821115611b8957611b88853084611c43565b5b611b94858585611c43565b50505b505050565b611ba46113d0565b73ffffffffffffffffffffffffffffffffffffffff16611bc2610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f90613693565b60405180910390fd5b565b600061271063ffffffff168284611c319190612e94565b611c3b91906136e2565b905092915050565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190613785565b60405180910390fd5b818103600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dba919061274d565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611e9730610df1565b905060006009548210159050808015611ebd5750600d60159054906101000a900460ff16155b8015611ed55750600d60149054906101000a900460ff165b15611eff57611ee560095461206e565b60004790506000811115611efd57611efc4761236e565b5b505b5050565b600260049054906101000a900460ff168015611f2e5750610e10600354611f2a9190612ed6565b4211155b1561206c576101e0600354611f439190612ed6565b4210612039576103e8600160149054906101000a900463ffffffff1663ffffffff1611611f7257610190611f93565b6103e8600160149054906101000a900463ffffffff16611f9291906137a5565b5b600160146101000a81548163ffffffff021916908363ffffffff1602179055506103e8600160189054906101000a900463ffffffff1663ffffffff1611611fdc57610190611ffd565b6103e8600160189054906101000a900463ffffffff16611ffc91906137a5565b5b600160186101000a81548163ffffffff021916908363ffffffff1602179055506101e0600360008282546120319190612ed6565b925050819055505b610e106003546120499190612ed6565b421061206b576000600260046101000a81548160ff0219169083151502179055505b5b565b6001600d60156101000a81548160ff02191690831515021790555060006120ba82600260009054906101000a900463ffffffff166127106120af91906137a5565b63ffffffff16611c1a565b9050600081836120ca91906137dd565b905060004790506000600267ffffffffffffffff8111156120ee576120ed612923565b5b60405190808252806020026020018201604052801561211c5781602001602082028036833780820191505090505b509050308160008151811061213457612133613024565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ff9190613826565b8160018151811061221357612212613024565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876113d8565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b81526004016122de959493929190613956565b600060405180830381600087803b1580156122f857600080fd5b505af115801561230c573d6000803e3d6000fd5b505050506000824761231e91906137dd565b905061234b8461234683600260009054906101000a900463ffffffff1663ffffffff16611c1a565b61248f565b50505050506000600d60156101000a81548160ff02191690831515021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111156123c5576123c4612923565b5b6040519080825280601f01601f1916602001820160405280156123f75781602001600182028036833780820191505090505b5060405161240591906139f7565b60006040518083038185875af1925050503d8060008114612442576040519150601f19603f3d011682016040523d82523d6000602084013e612447565b606091505b505090508061248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290613a5a565b60405180910390fd5b5050565b6124bc30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d8565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b815260040161252496959493929190613a7a565b60606040518083038185885af1158015612542573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125679190613adb565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a857808201518184015260208101905061258d565b60008484015250505050565b6000601f19601f8301169050919050565b60006125d08261256e565b6125da8185612579565b93506125ea81856020860161258a565b6125f3816125b4565b840191505092915050565b6000602082019050818103600083015261261881846125c5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265f82612634565b9050919050565b61266f81612654565b811461267a57600080fd5b50565b60008135905061268c81612666565b92915050565b6000819050919050565b6126a581612692565b81146126b057600080fd5b50565b6000813590506126c28161269c565b92915050565b600080604083850312156126df576126de61262a565b5b60006126ed8582860161267d565b92505060206126fe858286016126b3565b9150509250929050565b60008115159050919050565b61271d81612708565b82525050565b60006020820190506127386000830184612714565b92915050565b61274781612692565b82525050565b6000602082019050612762600083018461273e565b92915050565b6000806000606084860312156127815761278061262a565b5b600061278f8682870161267d565b93505060206127a08682870161267d565b92505060406127b1868287016126b3565b9150509250925092565b600060ff82169050919050565b6127d1816127bb565b82525050565b60006020820190506127ec60008301846127c8565b92915050565b6000602082840312156128085761280761262a565b5b60006128168482850161267d565b91505092915050565b6000602082840312156128355761283461262a565b5b6000612843848285016126b3565b91505092915050565b61285581612708565b811461286057600080fd5b50565b6000813590506128728161284c565b92915050565b600063ffffffff82169050919050565b61289181612878565b811461289c57600080fd5b50565b6000813590506128ae81612888565b92915050565b600080604083850312156128cb576128ca61262a565b5b60006128d985828601612863565b92505060206128ea8582860161289f565b9150509250929050565b6128fd81612878565b82525050565b600060208201905061291860008301846128f4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61295b826125b4565b810181811067ffffffffffffffff8211171561297a57612979612923565b5b80604052505050565b600061298d612620565b90506129998282612952565b919050565b600067ffffffffffffffff8211156129b9576129b8612923565b5b602082029050602081019050919050565b600080fd5b60006129e26129dd8461299e565b612983565b90508083825260208201905060208402830185811115612a0557612a046129ca565b5b835b81811015612a2e5780612a1a888261267d565b845260208401935050602081019050612a07565b5050509392505050565b600082601f830112612a4d57612a4c61291e565b5b8135612a5d8482602086016129cf565b91505092915050565b60008060408385031215612a7d57612a7c61262a565b5b600083013567ffffffffffffffff811115612a9b57612a9a61262f565b5b612aa785828601612a38565b9250506020612ab885828601612863565b9150509250929050565b612acb81612654565b82525050565b6000602082019050612ae66000830184612ac2565b92915050565b600080600060608486031215612b0557612b0461262a565b5b6000612b13868287016126b3565b9350506020612b248682870161289f565b9250506040612b3586828701612863565b9150509250925092565b600060208284031215612b5557612b5461262a565b5b6000612b6384828501612863565b91505092915050565b60008060408385031215612b8357612b8261262a565b5b6000612b918582860161289f565b9250506020612ba28582860161289f565b9150509250929050565b60008060408385031215612bc357612bc261262a565b5b6000612bd1858286016126b3565b9250506020612be2858286016126b3565b9150509250929050565b600080fd5b60008083601f840112612c0757612c0661291e565b5b8235905067ffffffffffffffff811115612c2457612c23612bec565b5b602083019150836020820283011115612c4057612c3f6129ca565b5b9250929050565b600080600060408486031215612c6057612c5f61262a565b5b600084013567ffffffffffffffff811115612c7e57612c7d61262f565b5b612c8a86828701612bf1565b93509350506020612c9d868287016126b3565b9150509250925092565b60008060408385031215612cbe57612cbd61262a565b5b6000612ccc8582860161267d565b9250506020612cdd8582860161267d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d6d57808604811115612d4957612d48612ce7565b5b6001851615612d585780820291505b8081029050612d6685612d16565b9450612d2d565b94509492505050565b600082612d865760019050612e42565b81612d945760009050612e42565b8160018114612daa5760028114612db457612de3565b6001915050612e42565b60ff841115612dc657612dc5612ce7565b5b8360020a915084821115612ddd57612ddc612ce7565b5b50612e42565b5060208310610133831016604e8410600b8410161715612e185782820a905083811115612e1357612e12612ce7565b5b612e42565b612e258484846001612d23565b92509050818404811115612e3c57612e3b612ce7565b5b81810290505b9392505050565b6000612e5482612692565b9150612e5f836127bb565b9250612e8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d76565b905092915050565b6000612e9f82612692565b9150612eaa83612692565b9250828202612eb881612692565b91508282048414831517612ecf57612ece612ce7565b5b5092915050565b6000612ee182612692565b9150612eec83612692565b9250828201905080821115612f0457612f03612ce7565b5b92915050565b7f4275726e20636f6f6c646f776e20616374697665000000000000000000000000600082015250565b6000612f40601483612579565b9150612f4b82612f0a565b602082019050919050565b60006020820190508181036000830152612f6f81612f33565b9050919050565b600081519050612f858161269c565b92915050565b600060208284031215612fa157612fa061262a565b5b6000612faf84828501612f76565b91505092915050565b7f546f6f2068696768206665650000000000000000000000000000000000000000600082015250565b6000612fee600c83612579565b9150612ff982612fb8565b602082019050919050565b6000602082019050818103600083015261301d81612fe1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f546f6f206c6f77206d6178000000000000000000000000000000000000000000600082015250565b6000613089600b83612579565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311b602383612579565b9150613126826130bf565b604082019050919050565b6000602082019050818103600083015261314a8161310e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131ad602683612579565b91506131b882613151565b604082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061323f602483612579565b915061324a826131e3565b604082019050919050565b6000602082019050818103600083015261326e81613232565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132d1602283612579565b91506132dc82613275565b604082019050919050565b60006020820190508181036000830152613300816132c4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061333d601d83612579565b915061334882613307565b602082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133cf602583612579565b91506133da82613373565b604082019050919050565b600060208201905081810360008301526133fe816133c2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613461602983612579565b915061346c82613405565b604082019050919050565b6000602082019050818103600083015261349081613454565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b60006134cd601383612579565b91506134d882613497565b602082019050919050565b600060208201905081810360008301526134fc816134c0565b9050919050565b7f666565206578636565647320616d6f756e740000000000000000000000000000600082015250565b6000613539601283612579565b915061354482613503565b602082019050919050565b600060208201905081810360008301526135688161352c565b9050919050565b7f4d61782054582072656163686564000000000000000000000000000000000000600082015250565b60006135a5600e83612579565b91506135b08261356f565b602082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b7f4d61782077616c6c657420726561636865640000000000000000000000000000600082015250565b6000613611601283612579565b915061361c826135db565b602082019050919050565b6000602082019050818103600083015261364081613604565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061367d602083612579565b915061368882613647565b602082019050919050565b600060208201905081810360008301526136ac81613670565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ed82612692565b91506136f883612692565b925082613708576137076136b3565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061376f602683612579565b915061377a82613713565b604082019050919050565b6000602082019050818103600083015261379e81613762565b9050919050565b60006137b082612878565b91506137bb83612878565b9250828203905063ffffffff8111156137d7576137d6612ce7565b5b92915050565b60006137e882612692565b91506137f383612692565b925082820390508181111561380b5761380a612ce7565b5b92915050565b60008151905061382081612666565b92915050565b60006020828403121561383c5761383b61262a565b5b600061384a84828501613811565b91505092915050565b6000819050919050565b6000819050919050565b600061388261387d61387884613853565b61385d565b612692565b9050919050565b61389281613867565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138cd81612654565b82525050565b60006138df83836138c4565b60208301905092915050565b6000602082019050919050565b600061390382613898565b61390d81856138a3565b9350613918836138b4565b8060005b8381101561394957815161393088826138d3565b975061393b836138eb565b92505060018101905061391c565b5085935050505092915050565b600060a08201905061396b600083018861273e565b6139786020830187613889565b818103604083015261398a81866138f8565b90506139996060830185612ac2565b6139a6608083018461273e565b9695505050505050565b600081519050919050565b600081905092915050565b60006139d1826139b0565b6139db81856139bb565b93506139eb81856020860161258a565b80840191505092915050565b6000613a0382846139c6565b915081905092915050565b7f5472616e736665724661696c0000000000000000000000000000000000000000600082015250565b6000613a44600c83612579565b9150613a4f82613a0e565b602082019050919050565b60006020820190508181036000830152613a7381613a37565b9050919050565b600060c082019050613a8f6000830189612ac2565b613a9c602083018861273e565b613aa96040830187613889565b613ab66060830186613889565b613ac36080830185612ac2565b613ad060a083018461273e565b979650505050505050565b600080600060608486031215613af457613af361262a565b5b6000613b0286828701612f76565b9350506020613b1386828701612f76565b9250506040613b2486828701612f76565b915050925092509256fea2646970667358221220c03f2f775faaa4a4fd148f481b6b4503a486c5c1635e0a3bdfb8e35f2884806d64736f6c634300081100330000000000000000000000000e3cdf21e9bdae93052c65fb0ffc616fa08dde460000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000162941e44cb799a9fb96ffe80edd9328f343b74c00000000000000000000000058679fd2a88b23727eaa57327d71495c11de5d87000000000000000000000000362f0ddbb88f62d2c344f4a73ff7b18440d557110000000000000000000000003cdc9860d75d7f5067986d176653afb62b0c71a6000000000000000000000000b7d8d82c22c6aaeaa45724c096a0f7656a2e7672000000000000000000000000686b917b8165d355220074c272d8c5e38408e51b000000000000000000000000327c5e89843b31eccf620456f4f67a1916d7e0de0000000000000000000000002e7f18078ea1c81c8857da4035807b1bf40a0b38000000000000000000000000ff1e9cbb81683d8af3e426e24d5872dd05b0827200000000000000000000000018f55dfd5b41883bc526697fc777e3a3780c4d38000000000000000000000000dcb1f83f59e3bb2df660cf7d9eca1f1a060225fb00000000000000000000000040941ad316239ff81d5a1f0d8795d56dd906aa83000000000000000000000000526a48df8de02ac4bbd1c87333cd59582cfbc0e800000000000000000000000012066e029867d752f5f280f645fc756c8617a88b

Deployed Bytecode

0x60806040526004361061024a5760003560e01c80638bf67ad011610139578063a9059cbb116100b6578063c9d9159d1161007a578063c9d9159d14610840578063d11fcb851461086b578063dd62ed3e146108a8578063e717fc30146108e5578063f2fde38b14610910578063f5a27e861461093957610251565b8063a9059cbb1461075b578063ac93583414610798578063ba414b10146107c3578063bd186c4c146107ec578063bd4f1dc61461081557610251565b806395d89b41116100fd57806395d89b411461069c57806396418d4d146106c75780639bfe8df7146106f0578063a1780c1814610719578063a20adf861461073057610251565b80638bf67ad0146105c95780638da5cb5b146105f25780638e26bbe41461061d57806391d88b951461064657806391f18b7c1461067157610251565b80635bc05f3c116101c757806370a082311161018b57806370a08231146104f457806370fbc71214610531578063715018a61461055c5780637971fca7146105735780637aab5d9b1461059e57610251565b80635bc05f3c1461041f5780636264300e1461044a57806363126e1714610475578063685e838e1461049e5780636ea79583146104c957610251565b8063249715a61161020e578063249715a61461034e578063313ce567146103795780633d21e5a2146103a457806349dc859c146103cd578063581d30f8146103f657610251565b806306fdde0314610253578063095ea7b31461027e57806312fbbbe4146102bb57806318160ddd146102e657806323b872dd1461031157610251565b3661025157005b005b34801561025f57600080fd5b50610268610964565b60405161027591906125fe565b60405180910390f35b34801561028a57600080fd5b506102a560048036038101906102a091906126c8565b6109a1565b6040516102b29190612723565b60405180910390f35b3480156102c757600080fd5b506102d06109c4565b6040516102dd919061274d565b60405180910390f35b3480156102f257600080fd5b506102fb6109ca565b604051610308919061274d565b60405180910390f35b34801561031d57600080fd5b5061033860048036038101906103339190612768565b6109ee565b6040516103459190612723565b60405180910390f35b34801561035a57600080fd5b50610363610a1d565b6040516103709190612723565b60405180910390f35b34801561038557600080fd5b5061038e610a30565b60405161039b91906127d7565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c691906127f2565b610a39565b005b3480156103d957600080fd5b506103f460048036038101906103ef919061281f565b610a85565b005b34801561040257600080fd5b5061041d600480360381019061041891906128b4565b610c6d565b005b34801561042b57600080fd5b50610434610d05565b6040516104419190612723565b60405180910390f35b34801561045657600080fd5b5061045f610d18565b60405161046c9190612903565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190612a66565b610d2e565b005b3480156104aa57600080fd5b506104b3610dc5565b6040516104c0919061274d565b60405180910390f35b3480156104d557600080fd5b506104de610dcb565b6040516104eb9190612ad1565b60405180910390f35b34801561050057600080fd5b5061051b600480360381019061051691906127f2565b610df1565b604051610528919061274d565b60405180910390f35b34801561053d57600080fd5b50610546610e3a565b604051610553919061274d565b60405180910390f35b34801561056857600080fd5b50610571610e40565b005b34801561057f57600080fd5b50610588610e54565b6040516105959190612903565b60405180910390f35b3480156105aa57600080fd5b506105b3610e6a565b6040516105c09190612723565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb9190612aec565b610e7d565b005b3480156105fe57600080fd5b50610607610ecc565b6040516106149190612ad1565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190612b3f565b610ef5565b005b34801561065257600080fd5b5061065b610f2e565b604051610668919061274d565b60405180910390f35b34801561067d57600080fd5b50610686610f34565b6040516106939190612ad1565b60405180910390f35b3480156106a857600080fd5b506106b1610f5a565b6040516106be91906125fe565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190612b6c565b610f97565b005b3480156106fc57600080fd5b5061071760048036038101906107129190612bac565b611050565b005b34801561072557600080fd5b5061072e611111565b005b34801561073c57600080fd5b50610745611123565b6040516107529190612723565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d91906126c8565b611136565b60405161078f9190612723565b60405180910390f35b3480156107a457600080fd5b506107ad611159565b6040516107ba9190612723565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e59190612c47565b61116c565b005b3480156107f857600080fd5b50610813600480360381019061080e9190612b3f565b611249565b005b34801561082157600080fd5b5061082a61126e565b6040516108379190612903565b60405180910390f35b34801561084c57600080fd5b50610855611284565b6040516108629190612903565b60405180910390f35b34801561087757600080fd5b50610892600480360381019061088d91906127f2565b61129a565b60405161089f9190612723565b60405180910390f35b3480156108b457600080fd5b506108cf60048036038101906108ca9190612ca7565b6112ba565b6040516108dc919061274d565b60405180910390f35b3480156108f157600080fd5b506108fa611341565b604051610907919061274d565b60405180910390f35b34801561091c57600080fd5b50610937600480360381019061093291906127f2565b611347565b005b34801561094557600080fd5b5061094e6113ca565b60405161095b919061274d565b60405180910390f35b60606040518060400160405280600981526020017f596f6461746f7368690000000000000000000000000000000000000000000000815250905090565b6000806109ac6113d0565b90506109b98185856113d8565b600191505092915050565b60035481565b60006012600a6109da9190612e49565b633b9aca006109e99190612e94565b905090565b6000806109f96113d0565b9050610a068582856115a1565b610a1185858561162d565b60019150509392505050565b600260049054906101000a900460ff1681565b60006012905090565b610a41611b9c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a8d611b9c565b600554600654610a9d9190612ed6565b4211610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad590612f56565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166370a08231600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401610b3b9190612ad1565b602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c9190612f8b565b90506000610b92826103e863ffffffff16611c1a565b905080831115610ba0578092505b426006819055506000831115610be057610bdf600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead85611c43565b5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b5050505050505050565b610c75611b9c565b6107d063ffffffff168163ffffffff161115610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd90613004565b60405180910390fd5b81600060166101000a81548160ff021916908315150217905550806001601c6101000a81548163ffffffff021916908363ffffffff1602179055505050565b600060169054906101000a900460ff1681565b600160189054906101000a900463ffffffff1681565b610d36611b9c565b60005b8251811015610dc0578160046000858481518110610d5a57610d59613024565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610d39565b505050565b60095481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b610e48611b9c565b610e526000611dc8565b565b600160149054906101000a900463ffffffff1681565b600060149054906101000a900460ff1681565b610e85611b9c565b8260098190555081600260006101000a81548163ffffffff021916908363ffffffff16021790555080600d60146101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610efd611b9c565b80600060146101000a81548160ff0219169083151502179055506001151581151503610f2b57426003819055505b50565b60055481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f594f444149000000000000000000000000000000000000000000000000000000815250905090565b610f9f611b9c565b6107d063ffffffff168263ffffffff1611158015610fcb57506107d063ffffffff168163ffffffff1611155b61100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100190613004565b60405180910390fd5b81600160146101000a81548163ffffffff021916908363ffffffff16021790555080600160186101000a81548163ffffffff021916908363ffffffff1602179055505050565b611058611b9c565b603263ffffffff1682101580156110765750603263ffffffff168110155b6110b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ac9061309f565b60405180910390fd5b6110db6012600a6110c69190612e49565b633b9aca006110d59190612e94565b83611c1a565b6007819055506111076012600a6110f29190612e49565b633b9aca006111019190612e94565b82611c1a565b6008819055505050565b611119611b9c565b611121611e8c565b565b600060159054906101000a900460ff1681565b6000806111416113d0565b905061114e81858561162d565b600191505092915050565b600d60149054906101000a900460ff1681565b611174611b9c565b600061117e610ecc565b905060005b848490508110156112425760008585838181106111a3576111a2613024565b5b90506020020160208101906111b891906127f2565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122090613131565b60405180910390fd5b611234838286611c43565b508080600101915050611183565b5050505050565b611251611b9c565b80600060156101000a81548160ff02191690831515021790555050565b6001601c9054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b61134f611b9c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b5906131c3565b60405180910390fd5b6113c781611dc8565b50565b60065481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90613255565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad906132e7565b60405180910390fd5b80600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611594919061274d565b60405180910390a3505050565b60006115ad84846112ba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116275781811015611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613353565b60405180910390fd5b61162684848484036113d8565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361169c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611693906133e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613131565b60405180910390fd5b6000811161174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590613477565b60405180910390fd5b611756610ecc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117c15750611792610ecc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806117f757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561180c57611807838383611c43565b611b97565b600060149054906101000a900460ff1661185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906134e3565b60405180910390fd5b611863611f03565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16149050806118c7576118c6611e8c565b5b801561194857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119435761194083600160149054906101000a900463ffffffff1663ffffffff16611c1a565b91505b6119ec565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166119eb576119e883600060169054906101000a900460ff166119c957600160189054906101000a900463ffffffff166119dd565b6001601c9054906101000a900463ffffffff165b63ffffffff16611c1a565b91505b5b81831015611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a269061354f565b60405180910390fd5b8183039250600060159054906101000a900460ff1615611b7457600754831115611a8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a85906135bb565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611b735760085483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b319190612ed6565b1115611b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6990613627565b60405180910390fd5b5b5b6000821115611b8957611b88853084611c43565b5b611b94858585611c43565b50505b505050565b611ba46113d0565b73ffffffffffffffffffffffffffffffffffffffff16611bc2610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f90613693565b60405180910390fd5b565b600061271063ffffffff168284611c319190612e94565b611c3b91906136e2565b905092915050565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190613785565b60405180910390fd5b818103600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dba919061274d565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611e9730610df1565b905060006009548210159050808015611ebd5750600d60159054906101000a900460ff16155b8015611ed55750600d60149054906101000a900460ff165b15611eff57611ee560095461206e565b60004790506000811115611efd57611efc4761236e565b5b505b5050565b600260049054906101000a900460ff168015611f2e5750610e10600354611f2a9190612ed6565b4211155b1561206c576101e0600354611f439190612ed6565b4210612039576103e8600160149054906101000a900463ffffffff1663ffffffff1611611f7257610190611f93565b6103e8600160149054906101000a900463ffffffff16611f9291906137a5565b5b600160146101000a81548163ffffffff021916908363ffffffff1602179055506103e8600160189054906101000a900463ffffffff1663ffffffff1611611fdc57610190611ffd565b6103e8600160189054906101000a900463ffffffff16611ffc91906137a5565b5b600160186101000a81548163ffffffff021916908363ffffffff1602179055506101e0600360008282546120319190612ed6565b925050819055505b610e106003546120499190612ed6565b421061206b576000600260046101000a81548160ff0219169083151502179055505b5b565b6001600d60156101000a81548160ff02191690831515021790555060006120ba82600260009054906101000a900463ffffffff166127106120af91906137a5565b63ffffffff16611c1a565b9050600081836120ca91906137dd565b905060004790506000600267ffffffffffffffff8111156120ee576120ed612923565b5b60405190808252806020026020018201604052801561211c5781602001602082028036833780820191505090505b509050308160008151811061213457612133613024565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ff9190613826565b8160018151811061221357612212613024565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876113d8565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b81526004016122de959493929190613956565b600060405180830381600087803b1580156122f857600080fd5b505af115801561230c573d6000803e3d6000fd5b505050506000824761231e91906137dd565b905061234b8461234683600260009054906101000a900463ffffffff1663ffffffff16611c1a565b61248f565b50505050506000600d60156101000a81548160ff02191690831515021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111156123c5576123c4612923565b5b6040519080825280601f01601f1916602001820160405280156123f75781602001600182028036833780820191505090505b5060405161240591906139f7565b60006040518083038185875af1925050503d8060008114612442576040519150601f19603f3d011682016040523d82523d6000602084013e612447565b606091505b505090508061248b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248290613a5a565b60405180910390fd5b5050565b6124bc30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d8565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b815260040161252496959493929190613a7a565b60606040518083038185885af1158015612542573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125679190613adb565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a857808201518184015260208101905061258d565b60008484015250505050565b6000601f19601f8301169050919050565b60006125d08261256e565b6125da8185612579565b93506125ea81856020860161258a565b6125f3816125b4565b840191505092915050565b6000602082019050818103600083015261261881846125c5565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061265f82612634565b9050919050565b61266f81612654565b811461267a57600080fd5b50565b60008135905061268c81612666565b92915050565b6000819050919050565b6126a581612692565b81146126b057600080fd5b50565b6000813590506126c28161269c565b92915050565b600080604083850312156126df576126de61262a565b5b60006126ed8582860161267d565b92505060206126fe858286016126b3565b9150509250929050565b60008115159050919050565b61271d81612708565b82525050565b60006020820190506127386000830184612714565b92915050565b61274781612692565b82525050565b6000602082019050612762600083018461273e565b92915050565b6000806000606084860312156127815761278061262a565b5b600061278f8682870161267d565b93505060206127a08682870161267d565b92505060406127b1868287016126b3565b9150509250925092565b600060ff82169050919050565b6127d1816127bb565b82525050565b60006020820190506127ec60008301846127c8565b92915050565b6000602082840312156128085761280761262a565b5b60006128168482850161267d565b91505092915050565b6000602082840312156128355761283461262a565b5b6000612843848285016126b3565b91505092915050565b61285581612708565b811461286057600080fd5b50565b6000813590506128728161284c565b92915050565b600063ffffffff82169050919050565b61289181612878565b811461289c57600080fd5b50565b6000813590506128ae81612888565b92915050565b600080604083850312156128cb576128ca61262a565b5b60006128d985828601612863565b92505060206128ea8582860161289f565b9150509250929050565b6128fd81612878565b82525050565b600060208201905061291860008301846128f4565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61295b826125b4565b810181811067ffffffffffffffff8211171561297a57612979612923565b5b80604052505050565b600061298d612620565b90506129998282612952565b919050565b600067ffffffffffffffff8211156129b9576129b8612923565b5b602082029050602081019050919050565b600080fd5b60006129e26129dd8461299e565b612983565b90508083825260208201905060208402830185811115612a0557612a046129ca565b5b835b81811015612a2e5780612a1a888261267d565b845260208401935050602081019050612a07565b5050509392505050565b600082601f830112612a4d57612a4c61291e565b5b8135612a5d8482602086016129cf565b91505092915050565b60008060408385031215612a7d57612a7c61262a565b5b600083013567ffffffffffffffff811115612a9b57612a9a61262f565b5b612aa785828601612a38565b9250506020612ab885828601612863565b9150509250929050565b612acb81612654565b82525050565b6000602082019050612ae66000830184612ac2565b92915050565b600080600060608486031215612b0557612b0461262a565b5b6000612b13868287016126b3565b9350506020612b248682870161289f565b9250506040612b3586828701612863565b9150509250925092565b600060208284031215612b5557612b5461262a565b5b6000612b6384828501612863565b91505092915050565b60008060408385031215612b8357612b8261262a565b5b6000612b918582860161289f565b9250506020612ba28582860161289f565b9150509250929050565b60008060408385031215612bc357612bc261262a565b5b6000612bd1858286016126b3565b9250506020612be2858286016126b3565b9150509250929050565b600080fd5b60008083601f840112612c0757612c0661291e565b5b8235905067ffffffffffffffff811115612c2457612c23612bec565b5b602083019150836020820283011115612c4057612c3f6129ca565b5b9250929050565b600080600060408486031215612c6057612c5f61262a565b5b600084013567ffffffffffffffff811115612c7e57612c7d61262f565b5b612c8a86828701612bf1565b93509350506020612c9d868287016126b3565b9150509250925092565b60008060408385031215612cbe57612cbd61262a565b5b6000612ccc8582860161267d565b9250506020612cdd8582860161267d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612d6d57808604811115612d4957612d48612ce7565b5b6001851615612d585780820291505b8081029050612d6685612d16565b9450612d2d565b94509492505050565b600082612d865760019050612e42565b81612d945760009050612e42565b8160018114612daa5760028114612db457612de3565b6001915050612e42565b60ff841115612dc657612dc5612ce7565b5b8360020a915084821115612ddd57612ddc612ce7565b5b50612e42565b5060208310610133831016604e8410600b8410161715612e185782820a905083811115612e1357612e12612ce7565b5b612e42565b612e258484846001612d23565b92509050818404811115612e3c57612e3b612ce7565b5b81810290505b9392505050565b6000612e5482612692565b9150612e5f836127bb565b9250612e8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d76565b905092915050565b6000612e9f82612692565b9150612eaa83612692565b9250828202612eb881612692565b91508282048414831517612ecf57612ece612ce7565b5b5092915050565b6000612ee182612692565b9150612eec83612692565b9250828201905080821115612f0457612f03612ce7565b5b92915050565b7f4275726e20636f6f6c646f776e20616374697665000000000000000000000000600082015250565b6000612f40601483612579565b9150612f4b82612f0a565b602082019050919050565b60006020820190508181036000830152612f6f81612f33565b9050919050565b600081519050612f858161269c565b92915050565b600060208284031215612fa157612fa061262a565b5b6000612faf84828501612f76565b91505092915050565b7f546f6f2068696768206665650000000000000000000000000000000000000000600082015250565b6000612fee600c83612579565b9150612ff982612fb8565b602082019050919050565b6000602082019050818103600083015261301d81612fe1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f546f6f206c6f77206d6178000000000000000000000000000000000000000000600082015250565b6000613089600b83612579565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311b602383612579565b9150613126826130bf565b604082019050919050565b6000602082019050818103600083015261314a8161310e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131ad602683612579565b91506131b882613151565b604082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061323f602483612579565b915061324a826131e3565b604082019050919050565b6000602082019050818103600083015261326e81613232565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132d1602283612579565b91506132dc82613275565b604082019050919050565b60006020820190508181036000830152613300816132c4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061333d601d83612579565b915061334882613307565b602082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133cf602583612579565b91506133da82613373565b604082019050919050565b600060208201905081810360008301526133fe816133c2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613461602983612579565b915061346c82613405565b604082019050919050565b6000602082019050818103600083015261349081613454565b9050919050565b7f54726164696e672069732064697361626c656400000000000000000000000000600082015250565b60006134cd601383612579565b91506134d882613497565b602082019050919050565b600060208201905081810360008301526134fc816134c0565b9050919050565b7f666565206578636565647320616d6f756e740000000000000000000000000000600082015250565b6000613539601283612579565b915061354482613503565b602082019050919050565b600060208201905081810360008301526135688161352c565b9050919050565b7f4d61782054582072656163686564000000000000000000000000000000000000600082015250565b60006135a5600e83612579565b91506135b08261356f565b602082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b7f4d61782077616c6c657420726561636865640000000000000000000000000000600082015250565b6000613611601283612579565b915061361c826135db565b602082019050919050565b6000602082019050818103600083015261364081613604565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061367d602083612579565b915061368882613647565b602082019050919050565b600060208201905081810360008301526136ac81613670565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136ed82612692565b91506136f883612692565b925082613708576137076136b3565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061376f602683612579565b915061377a82613713565b604082019050919050565b6000602082019050818103600083015261379e81613762565b9050919050565b60006137b082612878565b91506137bb83612878565b9250828203905063ffffffff8111156137d7576137d6612ce7565b5b92915050565b60006137e882612692565b91506137f383612692565b925082820390508181111561380b5761380a612ce7565b5b92915050565b60008151905061382081612666565b92915050565b60006020828403121561383c5761383b61262a565b5b600061384a84828501613811565b91505092915050565b6000819050919050565b6000819050919050565b600061388261387d61387884613853565b61385d565b612692565b9050919050565b61389281613867565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138cd81612654565b82525050565b60006138df83836138c4565b60208301905092915050565b6000602082019050919050565b600061390382613898565b61390d81856138a3565b9350613918836138b4565b8060005b8381101561394957815161393088826138d3565b975061393b836138eb565b92505060018101905061391c565b5085935050505092915050565b600060a08201905061396b600083018861273e565b6139786020830187613889565b818103604083015261398a81866138f8565b90506139996060830185612ac2565b6139a6608083018461273e565b9695505050505050565b600081519050919050565b600081905092915050565b60006139d1826139b0565b6139db81856139bb565b93506139eb81856020860161258a565b80840191505092915050565b6000613a0382846139c6565b915081905092915050565b7f5472616e736665724661696c0000000000000000000000000000000000000000600082015250565b6000613a44600c83612579565b9150613a4f82613a0e565b602082019050919050565b60006020820190508181036000830152613a7381613a37565b9050919050565b600060c082019050613a8f6000830189612ac2565b613a9c602083018861273e565b613aa96040830187613889565b613ab66060830186613889565b613ac36080830185612ac2565b613ad060a083018461273e565b979650505050505050565b600080600060608486031215613af457613af361262a565b5b6000613b0286828701612f76565b9350506020613b1386828701612f76565b9250506040613b2486828701612f76565b915050925092509256fea2646970667358221220c03f2f775faaa4a4fd148f481b6b4503a486c5c1635e0a3bdfb8e35f2884806d64736f6c63430008110033

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

0000000000000000000000000e3cdf21e9bdae93052c65fb0ffc616fa08dde460000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000162941e44cb799a9fb96ffe80edd9328f343b74c00000000000000000000000058679fd2a88b23727eaa57327d71495c11de5d87000000000000000000000000362f0ddbb88f62d2c344f4a73ff7b18440d557110000000000000000000000003cdc9860d75d7f5067986d176653afb62b0c71a6000000000000000000000000b7d8d82c22c6aaeaa45724c096a0f7656a2e7672000000000000000000000000686b917b8165d355220074c272d8c5e38408e51b000000000000000000000000327c5e89843b31eccf620456f4f67a1916d7e0de0000000000000000000000002e7f18078ea1c81c8857da4035807b1bf40a0b38000000000000000000000000ff1e9cbb81683d8af3e426e24d5872dd05b0827200000000000000000000000018f55dfd5b41883bc526697fc777e3a3780c4d38000000000000000000000000dcb1f83f59e3bb2df660cf7d9eca1f1a060225fb00000000000000000000000040941ad316239ff81d5a1f0d8795d56dd906aa83000000000000000000000000526a48df8de02ac4bbd1c87333cd59582cfbc0e800000000000000000000000012066e029867d752f5f280f645fc756c8617a88b

-----Decoded View---------------
Arg [0] : _team_wallet (address): 0x0e3cDF21E9bDaE93052c65FB0ffc616Fa08dDe46
Arg [1] : _input (address[]): 0x162941E44Cb799A9Fb96FFe80EDd9328f343b74C,0x58679fD2a88b23727eAa57327d71495c11De5D87,0x362f0DdBb88f62D2c344f4a73Ff7b18440d55711,0x3cDC9860d75d7F5067986d176653aFB62b0c71a6,0xb7D8D82c22C6aaeAA45724C096A0F7656A2E7672,0x686b917b8165d355220074c272d8C5e38408E51b,0x327c5E89843b31EcCf620456F4f67A1916d7E0De,0x2E7F18078EA1C81c8857Da4035807B1BF40A0B38,0xFF1E9CBb81683D8Af3e426E24d5872DD05b08272,0x18f55dFd5b41883bc526697FC777E3A3780c4D38,0xdcB1F83f59E3bB2Df660Cf7D9eCA1f1a060225fb,0x40941AD316239FF81D5A1F0D8795D56dd906aa83,0x526a48dF8DE02AC4BbD1c87333Cd59582cFbc0E8,0x12066e029867d752f5f280f645FC756C8617A88B

-----Encoded View---------------
17 Constructor Arguments found :
Arg [0] : 0000000000000000000000000e3cdf21e9bdae93052c65fb0ffc616fa08dde46
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [3] : 000000000000000000000000162941e44cb799a9fb96ffe80edd9328f343b74c
Arg [4] : 00000000000000000000000058679fd2a88b23727eaa57327d71495c11de5d87
Arg [5] : 000000000000000000000000362f0ddbb88f62d2c344f4a73ff7b18440d55711
Arg [6] : 0000000000000000000000003cdc9860d75d7f5067986d176653afb62b0c71a6
Arg [7] : 000000000000000000000000b7d8d82c22c6aaeaa45724c096a0f7656a2e7672
Arg [8] : 000000000000000000000000686b917b8165d355220074c272d8c5e38408e51b
Arg [9] : 000000000000000000000000327c5e89843b31eccf620456f4f67a1916d7e0de
Arg [10] : 0000000000000000000000002e7f18078ea1c81c8857da4035807b1bf40a0b38
Arg [11] : 000000000000000000000000ff1e9cbb81683d8af3e426e24d5872dd05b08272
Arg [12] : 00000000000000000000000018f55dfd5b41883bc526697fc777e3a3780c4d38
Arg [13] : 000000000000000000000000dcb1f83f59e3bb2df660cf7d9eca1f1a060225fb
Arg [14] : 00000000000000000000000040941ad316239ff81d5a1f0d8795d56dd906aa83
Arg [15] : 000000000000000000000000526a48df8de02ac4bbd1c87333cd59582cfbc0e8
Arg [16] : 00000000000000000000000012066e029867d752f5f280f645fc756c8617a88b


Deployed Bytecode Sourcemap

8152:13853:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18740:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20048:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9105:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19068:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19561:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9063:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18960:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11761:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12692:656;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13534:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8799:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8914:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11908:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9447:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8835:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19184:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9315:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3064:103;;;;;;;;;;;;;:::i;:::-;;8868:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8718:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11494:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2416:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13748:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9221:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9727:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18848:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10920:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11169:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13356:70;;;;;;;;;;;;;:::i;:::-;;8747:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19335:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9758:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12185:499;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13434:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8961:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9014:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19864:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9379:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3322:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9269:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18740:100;18794:13;18827:5;;;;;;;;;;;;;;;;;18820:12;;18740:100;:::o;20048:226::-;20156:4;20173:13;20189:12;:10;:12::i;:::-;20173:28;;20212:32;20221:5;20228:7;20237:6;20212:8;:32::i;:::-;20262:4;20255:11;;;20048:226;;;;:::o;9105:28::-;;;;:::o;19068:108::-;19129:7;8355:2;8421;:15;;;;:::i;:::-;8405:13;:31;;;;:::i;:::-;19149:19;;19068:108;:::o;19561:295::-;19692:4;19709:15;19727:12;:10;:12::i;:::-;19709:30;;19750:38;19766:4;19772:7;19781:6;19750:15;:38::i;:::-;19799:27;19809:4;19815:2;19819:6;19799:9;:27::i;:::-;19844:4;19837:11;;;19561:295;;;;;:::o;9063:35::-;;;;;;;;;;;;;:::o;18960:100::-;19018:5;8355:2;19036:16;;18960:100;:::o;11761:106::-;2302:13;:11;:13::i;:::-;11847:12:::1;11833:11;;:26;;;;;;;;;;;;;;;;;;11761:106:::0;:::o;12692:656::-;2302:13;:11;:13::i;:::-;12820::::1;;12808:9;;:25;;;;:::i;:::-;12790:15;:43;12768:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;12892:28;12923:4;:14;;;12938:9;;;;;;;;;;;12923:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12892:56;;12959:20;12982:45;12994:20;8677:15;12982:45;;:11;:45::i;:::-;12959:68;;13052:12;13042:7;:22;13038:77;;;13091:12;13081:22;;13038:77;13137:15;13125:9;:27;;;;13179:1;13169:7;:11;13165:96;;;13197:52;13213:9;;;;;;;;;;;13232:6;13241:7;13197:15;:52::i;:::-;13165:96;13271:19;13308:9;;;;;;;;;;;13271:47;;13329:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12757:591;;;12692:656:::0;:::o;13534:206::-;2302:13;:11;:13::i;:::-;8561:15:::1;13627:20;;:9;:20;;;;13619:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;13688:7;13675:10;;:20;;;;;;;;;;;;;;;;;;13723:9;13706:14;;:26;;;;;;;;;;;;;;;;;;13534:206:::0;;:::o;8799:29::-;;;;;;;;;;;;;:::o;8914:40::-;;;;;;;;;;;;;:::o;11908:269::-;2302:13;:11;:13::i;:::-;12053:9:::1;12048:111;12072:6;:13;12068:1;:17;12048:111;;;12135:8;12111:10;:21;12122:6;12129:1;12122:9;;;;;;;;:::i;:::-;;;;;;;;12111:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12087:3;;;;;;;12048:111;;;;11908:269:::0;;:::o;9447:59::-;;;;:::o;8835:26::-;;;;;;;;;;;;;:::o;19184:143::-;19274:7;19301:9;:18;19311:7;19301:18;;;;;;;;;;;;;;;;19294:25;;19184:143;;;:::o;9315:52::-;;;;:::o;3064:103::-;2302:13;:11;:13::i;:::-;3129:30:::1;3156:1;3129:18;:30::i;:::-;3064:103::o:0;8868:39::-;;;;;;;;;;;;;:::o;8718:22::-;;;;;;;;;;;;;:::o;11494:237::-;2302:13;:11;:13::i;:::-;11647:7:::1;11630:14;:24;;;;11678:11;11665:10;;:24;;;;;;;;;;;;;;;;;;11715:8;11700:12;;:23;;;;;;;;;;;;;;;;;;11494:237:::0;;;:::o;2416:87::-;2462:7;2489:6;;;;;;;;;;;2482:13;;2416:87;:::o;13748:178::-;2302:13;:11;:13::i;:::-;13822:7:::1;13809:10;;:20;;;;;;;;;;;;;;;;;;13855:4;13844:15;;:7;:15;;::::0;13840:79:::1;;13892:15;13876:13;:31;;;;13840:79;13748:178:::0;:::o;9221:41::-;;;;:::o;9727:24::-;;;;;;;;;;;;;:::o;18848:104::-;18904:13;18937:7;;;;;;;;;;;;;;;;;18930:14;;18848:104;:::o;10920:215::-;2302:13;:11;:13::i;:::-;8561:15:::1;11007:19;;:8;:19;;;;:43;;;;;8561:15;11030:20;;:9;:20;;;;11007:43;10999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11088:8;11078:7;;:18;;;;;;;;;;;;;;;;;;11118:9;11107:8;;:20;;;;;;;;;;;;;;;;;;10920:215:::0;;:::o;11169:317::-;2302:13;:11;:13::i;:::-;8619:14:::1;11275:20;;:7;:20;;:48;;;;;8619:14;11299:24;;:11;:24;;11275:48;11253:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;11382:34;8355:2;8421;:15;;;;:::i;:::-;8405:13;:31;;;;:::i;:::-;11408:7;11382:11;:34::i;:::-;11373:6;:43;;;;11440:38;8355:2;8421;:15;;;;:::i;:::-;8405:13;:31;;;;:::i;:::-;11466:11;11440;:38::i;:::-;11427:10;:51;;;;11169:317:::0;;:::o;13356:70::-;2302:13;:11;:13::i;:::-;13406:12:::1;:10;:12::i;:::-;13356:70::o:0;8747:32::-;;;;;;;;;;;;;:::o;19335:218::-;19439:4;19456:13;19472:12;:10;:12::i;:::-;19456:28;;19495;19505:5;19512:2;19516:6;19495:9;:28::i;:::-;19541:4;19534:11;;;19335:218;;;;:::o;9758:31::-;;;;;;;;;;;;;:::o;12185:499::-;2302:13;:11;:13::i;:::-;12302::::1;12318:7;:5;:7::i;:::-;12302:23;;12366:9;12361:305;12385:6;;:13;;12381:1;:17;12361:305;;;12424:12;12439:6;;12446:1;12439:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12424:24;;12513:1;12497:18;;:4;:18;;::::0;12467:127:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12613:37;12629:5;12636:4;12642:7;12613:15;:37::i;:::-;12405:261;12400:3;;;;;;;12361:305;;;;12291:393;12185:499:::0;;;:::o;13434:92::-;2302:13;:11;:13::i;:::-;13511:7:::1;13495:13;;:23;;;;;;;;;;;;;;;;;;13434:92:::0;:::o;8961:46::-;;;;;;;;;;;;;:::o;9014:42::-;;;;;;;;;;;;;:::o;9158:::-;;;;;;;;;;;;;;;;;;;;;;:::o;19864:176::-;19978:7;20005:11;:18;20017:5;20005:18;;;;;;;;;;;;;;;:27;20024:7;20005:27;;;;;;;;;;;;;;;;19998:34;;19864:176;;;;:::o;9379:56::-;;;;:::o;3322:238::-;2302:13;:11;:13::i;:::-;3445:1:::1;3425:22;;:8;:22;;::::0;3403:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3524:28;3543:8;3524:18;:28::i;:::-;3322:238:::0;:::o;9269:24::-;;;;:::o;1100:98::-;1153:7;1180:10;1173:17;;1100:98;:::o;20282:380::-;20435:1;20418:19;;:5;:19;;;20410:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20516:1;20497:21;;:7;:21;;;20489:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20600:6;20570:11;:18;20582:5;20570:18;;;;;;;;;;;;;;;:27;20589:7;20570:27;;;;;;;;;;;;;;;:36;;;;20638:7;20622:32;;20631:5;20622:32;;;20647:6;20622:32;;;;;;:::i;:::-;;;;;;;;20282:380;;;:::o;20670:502::-;20805:24;20832:25;20842:5;20849:7;20832:9;:25::i;:::-;20805:52;;20892:17;20872:16;:37;20868:297;;20972:6;20952:16;:26;;20926:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;21087:51;21096:5;21103:7;21131:6;21112:16;:25;21087:8;:51::i;:::-;20868:297;20794:378;20670:502;;;:::o;14767:2022::-;14872:1;14856:18;;:4;:18;;;14848:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14949:1;14935:16;;:2;:16;;;14927:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15019:1;15010:6;:10;15002:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15140:7;:5;:7::i;:::-;15132:15;;:4;:15;;;:32;;;;15157:7;:5;:7::i;:::-;15151:13;;:2;:13;;;15132:32;:57;;;;15184:4;15168:21;;:4;:21;;;15132:57;15128:144;;;15206:33;15222:4;15228:2;15232:6;15206:15;:33::i;:::-;15254:7;;15128:144;15329:10;;;;;;;;;;;15321:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15399:12;:10;:12::i;:::-;15424:18;15457:10;15478:9;;;;;;;;;;;15470:17;;:4;:17;;;15457:30;;15505:5;15500:78;;15554:12;:10;:12::i;:::-;15500:78;15650:5;15646:382;;;15677:10;:14;15688:2;15677:14;;;;;;;;;;;;;;;;;;;;;;;;;15672:97;;15725:28;15737:6;15745:7;;;;;;;;;;;15725:28;;:11;:28::i;:::-;15712:41;;15672:97;15646:382;;;15831:10;:16;15842:4;15831:16;;;;;;;;;;;;;;;;;;;;;;;;;15826:191;;15881:120;15915:6;15944:10;;;;;;;;;;;:38;;15974:8;;;;;;;;;;;15944:38;;;15957:14;;;;;;;;;;;15944:38;15881:120;;:11;:120::i;:::-;15868:133;;15826:191;15646:382;16103:10;16093:6;:20;;16085:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16161:10;16151:20;;;;16222:13;;;;;;;;;;;16218:345;;;16297:6;;16287;:16;;16279:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;16378:9;;;;;;;;;;;16372:15;;:2;:15;;;16368:184;;16464:10;;16454:6;16438:9;:13;16448:2;16438:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:36;;16408:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;16368:184;16218:345;16633:1;16620:10;:14;16616:95;;;16651:48;16667:4;16681;16688:10;16651:15;:48::i;:::-;16616:95;16748:33;16764:4;16770:2;16774:6;16748:15;:33::i;:::-;14837:1952;;14767:2022;;;;:::o;2581:132::-;2656:12;:10;:12::i;:::-;2645:23;;:7;:5;:7::i;:::-;:23;;;2637:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2581:132::o;9832:173::-;9934:7;8484:13;9961:36;;9971:8;9962:6;:17;;;;:::i;:::-;9961:36;;;;:::i;:::-;9954:43;;9832:173;;;;:::o;21180:626::-;21309:19;21331:9;:15;21341:4;21331:15;;;;;;;;;;;;;;;;21309:37;;21394:6;21379:11;:21;;21357:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;21534:6;21520:11;:20;21502:9;:15;21512:4;21502:15;;;;;;;;;;;;;;;:38;;;;21737:6;21720:9;:13;21730:2;21720:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;21787:2;21772:26;;21781:4;21772:26;;;21791:6;21772:26;;;;;;:::i;:::-;;;;;;;;21298:508;21180:626;;;:::o;3720:191::-;3794:16;3813:6;;;;;;;;;;;3794:25;;3839:8;3830:6;;:17;;;;;;;;;;;;;;;;;;3894:8;3863:40;;3884:8;3863:40;;;;;;;;;;;;3783:128;3720:191;:::o;16797:436::-;16838:21;16862:24;16880:4;16862:9;:24::i;:::-;16838:48;;16897:13;16930:14;;16913:13;:31;;16897:47;;16961:8;:19;;;;;16974:6;;;;;;;;;;;16973:7;16961:19;:35;;;;;16984:12;;;;;;;;;;;16961:35;16957:269;;;17013:32;17030:14;;17013:16;:32::i;:::-;17060:19;17082:21;17060:43;;17136:7;17122:11;:21;17118:97;;;17164:35;17177:21;17164:12;:35::i;:::-;17118:97;16998:228;16957:269;16827:406;;16797:436::o;13934:812::-;14040:16;;;;;;;;;;;:62;;;;;14095:7;14079:13;;:23;;;;:::i;:::-;14060:15;:42;;14040:62;14036:703;;;14204:9;14188:13;;:25;;;;:::i;:::-;14169:15;:44;14165:396;;14254:15;14244:7;;;;;;;;;;;:25;;;:112;;14342:14;14244:112;;;14303:15;14293:7;;;;;;;;;;;:25;;;;:::i;:::-;14244:112;14234:7;;:122;;;;;;;;;;;;;;;;;;14397:15;14386:8;;;;;;;;;;;:26;;;:114;;14486:14;14386:114;;;14447:15;14436:8;;;;;;;;;;;:26;;;;:::i;:::-;14386:114;14375:8;;:125;;;;;;;;;;;;;;;;;;14536:9;14519:13;;:26;;;;;;;:::i;:::-;;;;;;;;14165:396;14660:7;14644:13;;:23;;;;:::i;:::-;14625:15;:42;14621:107;;14707:5;14688:16;;:24;;;;;;;;;;;;;;;;;;14621:107;14036:703;13934:812::o;17241:784::-;10090:4;10081:6;;:13;;;;;;;;;;;;;;;;;;17315:14:::1;17332:49;17344:7;17370:10;;;;;;;;;;;8484:13;17353:27;;;;:::i;:::-;17332:49;;:11;:49::i;:::-;17315:66;;17392:14;17419:6;17409:7;:16;;;;:::i;:::-;17392:33;;17436:22;17461:21;17436:46;;17495:21;17533:1;17519:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17495:40;;17564:4;17546;17551:1;17546:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;17590:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17580:4;17585:1;17580:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;17623:58;17640:4;17655:15;;;;;;;;;;;17673:7;17623:8;:58::i;:::-;17692:15;;;;;;;;;;;:66;;;17773:6;17794:1;17810:4;17837;17857:15;17692:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17894:15;17936:14;17912:21;:38;;;;:::i;:::-;17894:56;;17963:54;17976:6;17984:32;17996:7;18005:10;;;;;;;;;;;17984:32;;:11;:32::i;:::-;17963:12;:54::i;:::-;17304:721;;;;;10126:5:::0;10117:6;;:14;;;;;;;;;;;;;;;;;;17241:784;:::o;18033:174::-;18092:12;18110:11;;;;;;;;;;;:16;;18134:7;18153:1;18143:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18110:46;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18091:65;;;18175:7;18167:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;18080:127;18033:174;:::o;18215:504::-;18359:58;18376:4;18391:15;;;;;;;;;;;18409:7;18359:8;:58::i;:::-;18460:15;;;;;;;;;;;:31;;;18499:9;18532:4;18552:7;18574:1;18617;18668;18685:15;18460:251;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18215:504;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:116::-;5593:21;5608:5;5593:21;:::i;:::-;5586:5;5583:32;5573:60;;5629:1;5626;5619:12;5573:60;5523:116;:::o;5645:133::-;5688:5;5726:6;5713:20;5704:29;;5742:30;5766:5;5742:30;:::i;:::-;5645:133;;;;:::o;5784:93::-;5820:7;5860:10;5853:5;5849:22;5838:33;;5784:93;;;:::o;5883:120::-;5955:23;5972:5;5955:23;:::i;:::-;5948:5;5945:34;5935:62;;5993:1;5990;5983:12;5935:62;5883:120;:::o;6009:137::-;6054:5;6092:6;6079:20;6070:29;;6108:32;6134:5;6108:32;:::i;:::-;6009:137;;;;:::o;6152:466::-;6216:6;6224;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:50;6466:7;6457:6;6446:9;6442:22;6424:50;:::i;:::-;6414:60;;6370:114;6523:2;6549:52;6593:7;6584:6;6573:9;6569:22;6549:52;:::i;:::-;6539:62;;6494:117;6152:466;;;;;:::o;6624:115::-;6709:23;6726:5;6709:23;:::i;:::-;6704:3;6697:36;6624:115;;:::o;6745:218::-;6836:4;6874:2;6863:9;6859:18;6851:26;;6887:69;6953:1;6942:9;6938:17;6929:6;6887:69;:::i;:::-;6745:218;;;;:::o;6969:117::-;7078:1;7075;7068:12;7092:180;7140:77;7137:1;7130:88;7237:4;7234:1;7227:15;7261:4;7258:1;7251:15;7278:281;7361:27;7383:4;7361:27;:::i;:::-;7353:6;7349:40;7491:6;7479:10;7476:22;7455:18;7443:10;7440:34;7437:62;7434:88;;;7502:18;;:::i;:::-;7434:88;7542:10;7538:2;7531:22;7321:238;7278:281;;:::o;7565:129::-;7599:6;7626:20;;:::i;:::-;7616:30;;7655:33;7683:4;7675:6;7655:33;:::i;:::-;7565:129;;;:::o;7700:311::-;7777:4;7867:18;7859:6;7856:30;7853:56;;;7889:18;;:::i;:::-;7853:56;7939:4;7931:6;7927:17;7919:25;;7999:4;7993;7989:15;7981:23;;7700:311;;;:::o;8017:117::-;8126:1;8123;8116:12;8157:710;8253:5;8278:81;8294:64;8351:6;8294:64;:::i;:::-;8278:81;:::i;:::-;8269:90;;8379:5;8408:6;8401:5;8394:21;8442:4;8435:5;8431:16;8424:23;;8495:4;8487:6;8483:17;8475:6;8471:30;8524:3;8516:6;8513:15;8510:122;;;8543:79;;:::i;:::-;8510:122;8658:6;8641:220;8675:6;8670:3;8667:15;8641:220;;;8750:3;8779:37;8812:3;8800:10;8779:37;:::i;:::-;8774:3;8767:50;8846:4;8841:3;8837:14;8830:21;;8717:144;8701:4;8696:3;8692:14;8685:21;;8641:220;;;8645:21;8259:608;;8157:710;;;;;:::o;8890:370::-;8961:5;9010:3;9003:4;8995:6;8991:17;8987:27;8977:122;;9018:79;;:::i;:::-;8977:122;9135:6;9122:20;9160:94;9250:3;9242:6;9235:4;9227:6;9223:17;9160:94;:::i;:::-;9151:103;;8967:293;8890:370;;;;:::o;9266:678::-;9356:6;9364;9413:2;9401:9;9392:7;9388:23;9384:32;9381:119;;;9419:79;;:::i;:::-;9381:119;9567:1;9556:9;9552:17;9539:31;9597:18;9589:6;9586:30;9583:117;;;9619:79;;:::i;:::-;9583:117;9724:78;9794:7;9785:6;9774:9;9770:22;9724:78;:::i;:::-;9714:88;;9510:302;9851:2;9877:50;9919:7;9910:6;9899:9;9895:22;9877:50;:::i;:::-;9867:60;;9822:115;9266:678;;;;;:::o;9950:118::-;10037:24;10055:5;10037:24;:::i;:::-;10032:3;10025:37;9950:118;;:::o;10074:222::-;10167:4;10205:2;10194:9;10190:18;10182:26;;10218:71;10286:1;10275:9;10271:17;10262:6;10218:71;:::i;:::-;10074:222;;;;:::o;10302:611::-;10375:6;10383;10391;10440:2;10428:9;10419:7;10415:23;10411:32;10408:119;;;10446:79;;:::i;:::-;10408:119;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:52;10763:7;10754:6;10743:9;10739:22;10719:52;:::i;:::-;10709:62;;10664:117;10820:2;10846:50;10888:7;10879:6;10868:9;10864:22;10846:50;:::i;:::-;10836:60;;10791:115;10302:611;;;;;:::o;10919:323::-;10975:6;11024:2;11012:9;11003:7;10999:23;10995:32;10992:119;;;11030:79;;:::i;:::-;10992:119;11150:1;11175:50;11217:7;11208:6;11197:9;11193:22;11175:50;:::i;:::-;11165:60;;11121:114;10919:323;;;;:::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:179::-;25072:31;25068:1;25060:6;25056:14;25049:55;24932:179;:::o;25117:366::-;25259:3;25280:67;25344:2;25339:3;25280:67;:::i;:::-;25273:74;;25356:93;25445:3;25356:93;:::i;:::-;25474:2;25469:3;25465:12;25458:19;;25117:366;;;:::o;25489:419::-;25655:4;25693:2;25682:9;25678:18;25670:26;;25742:9;25736:4;25732:20;25728:1;25717:9;25713:17;25706:47;25770:131;25896:4;25770:131;:::i;:::-;25762:139;;25489:419;;;:::o;25914:224::-;26054:34;26050:1;26042:6;26038:14;26031:58;26123:7;26118:2;26110:6;26106:15;26099:32;25914:224;:::o;26144:366::-;26286:3;26307:67;26371:2;26366:3;26307:67;:::i;:::-;26300:74;;26383:93;26472:3;26383:93;:::i;:::-;26501:2;26496:3;26492:12;26485:19;;26144:366;;;:::o;26516:419::-;26682:4;26720:2;26709:9;26705:18;26697:26;;26769:9;26763:4;26759:20;26755:1;26744:9;26740:17;26733:47;26797:131;26923:4;26797:131;:::i;:::-;26789:139;;26516:419;;;:::o;26941:228::-;27081:34;27077:1;27069:6;27065:14;27058:58;27150:11;27145:2;27137:6;27133:15;27126:36;26941:228;:::o;27175:366::-;27317:3;27338:67;27402:2;27397:3;27338:67;:::i;:::-;27331:74;;27414:93;27503:3;27414:93;:::i;:::-;27532:2;27527:3;27523:12;27516:19;;27175:366;;;:::o;27547:419::-;27713:4;27751:2;27740:9;27736:18;27728:26;;27800:9;27794:4;27790:20;27786:1;27775:9;27771:17;27764:47;27828:131;27954:4;27828:131;:::i;:::-;27820:139;;27547:419;;;:::o;27972:169::-;28112:21;28108:1;28100:6;28096:14;28089:45;27972:169;:::o;28147:366::-;28289:3;28310:67;28374:2;28369:3;28310:67;:::i;:::-;28303:74;;28386:93;28475:3;28386:93;:::i;:::-;28504:2;28499:3;28495:12;28488:19;;28147:366;;;:::o;28519:419::-;28685:4;28723:2;28712:9;28708:18;28700:26;;28772:9;28766:4;28762:20;28758:1;28747:9;28743:17;28736:47;28800:131;28926:4;28800:131;:::i;:::-;28792:139;;28519:419;;;:::o;28944:168::-;29084:20;29080:1;29072:6;29068:14;29061:44;28944:168;:::o;29118:366::-;29260:3;29281:67;29345:2;29340:3;29281:67;:::i;:::-;29274:74;;29357:93;29446:3;29357:93;:::i;:::-;29475:2;29470:3;29466:12;29459:19;;29118:366;;;:::o;29490:419::-;29656:4;29694:2;29683:9;29679:18;29671:26;;29743:9;29737:4;29733:20;29729:1;29718:9;29714:17;29707:47;29771:131;29897:4;29771:131;:::i;:::-;29763:139;;29490:419;;;:::o;29915:164::-;30055:16;30051:1;30043:6;30039:14;30032:40;29915:164;:::o;30085:366::-;30227:3;30248:67;30312:2;30307:3;30248:67;:::i;:::-;30241:74;;30324:93;30413:3;30324:93;:::i;:::-;30442:2;30437:3;30433:12;30426:19;;30085:366;;;:::o;30457:419::-;30623:4;30661:2;30650:9;30646:18;30638:26;;30710:9;30704:4;30700:20;30696:1;30685:9;30681:17;30674:47;30738:131;30864:4;30738:131;:::i;:::-;30730:139;;30457:419;;;:::o;30882:168::-;31022:20;31018:1;31010:6;31006:14;30999:44;30882:168;:::o;31056:366::-;31198:3;31219:67;31283:2;31278:3;31219:67;:::i;:::-;31212:74;;31295:93;31384:3;31295:93;:::i;:::-;31413:2;31408:3;31404:12;31397:19;;31056:366;;;:::o;31428:419::-;31594:4;31632:2;31621:9;31617:18;31609:26;;31681:9;31675:4;31671:20;31667:1;31656:9;31652:17;31645:47;31709:131;31835:4;31709:131;:::i;:::-;31701:139;;31428:419;;;:::o;31853:182::-;31993:34;31989:1;31981:6;31977:14;31970:58;31853:182;:::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:200::-;34282:4;34302:19;34319:1;34302:19;:::i;:::-;34297:24;;34335:19;34352:1;34335:19;:::i;:::-;34330:24;;34378:1;34375;34371:9;34363:17;;34402:10;34396:4;34393:20;34390:46;;;34416:18;;:::i;:::-;34390:46;34243:200;;;;:::o;34449:194::-;34489:4;34509:20;34527:1;34509:20;:::i;:::-;34504:25;;34543:20;34561:1;34543:20;:::i;:::-;34538:25;;34587:1;34584;34580:9;34572:17;;34611:1;34605:4;34602:11;34599:37;;;34616:18;;:::i;:::-;34599:37;34449:194;;;;:::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://c03f2f775faaa4a4fd148f481b6b4503a486c5c1635e0a3bdfb8e35f2884806d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

YODAI is a utility project that offers access to an automated call channels. This channel delivers top-tier signals from lower marketcap tokens, boasting the highest efficiency in the market. We are heading to produce utilities for investors to get easy trading on lower market cap tokens.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.